今天找到了陈年的实用C++小游戏,给大家分享一下。(别问我从哪里找来的!)
本作品可能侵权(有一些在网上乱找的),如有侵权请立马联系我!!!
作品的顺序是由简到难
第一个:计算器(应该谁都会)
#include<iostream>
using namespace std;
long double a,b;//小数部分
char c,n;//定义一个字符--单个的符号(不是字符串)
int main()
{
//1.一直输入输出,直到想结束,死循环--n结束
//2. 输出小数
cout<<"输入算式:"<<endl;
//while(true)//死循环
for(int i=1;i>=1;i++) //死循环
{
cin>>a>>c>>b;
if(c=='+')
{
cout<<a+b;
}
if(c=='-')
{
cout<<a-b;
}
if(c=='*')
{
cout<<a*b;
}
if(c=='/')
{
cout<<a/b;
}
cout<<endl<<"继续输入吗?Y/N"<<endl;
cin>>n;
if(n=='N')
break;//跳出循环,就是死循环结束了
}
return 0;
}
第二:石头剪刀布(人机版)
#include<iostream>
using namespace std;
int main()
{
long long n,a[10],x;
cout<<"请输入你的生日:"<<endl;
cin>>n;
a[1]=n%3+1;
cout<<"请输入第一个幸运数字,一共四个哦!:"<<endl;
cin>>x;
a[2]=(n+x)%3+1;
cout<<"请输入第二个幸运数字,一共四个哦!:"<<endl;
cin>>x;
if(x>n)
{
a[3]=(x-n)%3+1;
}
else
{
a[3]=(n-x)%3+1;
}
cout<<"请输入第三个幸运数字,一共四个哦!:"<<endl;
cin>>x;
a[4]=(n*x)%3+1;
cout<<"请输入第四个幸运数字,最后一个啦!:"<<endl;
cin>>x;
a[5]=(n/x)%3+1;
int sum0=0,sum1=0;
for(int i=1;i<=5;i++)
{
cout<<"第"<<i<<"局请输入 对应数字出拳与核桃猜拳机器人比赛 (1:代表石头 2:代表剪刀 3:代表布) "<<endl;
cin>>x;
if(x==1)
{
cout<<"你出的是:石头"<<endl;
if(a[i]==1)
{
cout<<"机器人出的是:石头"<<endl;
cout<<"打平啦!"<<endl;
}
if(a[i]==2)
{
cout<<"机器人出的是:剪刀"<<endl;
cout<<"ヾ( ̄ー ̄)X(^▽^)ゞ 胜利啦!"<<endl;
sum0++;
}
if(a[i]==3)
{
cout<<"机器人出的是:布"<<endl;
cout<<"失败了/(ㄒoㄒ)/~~"<<endl;
sum1++;
}
}
if(x==2)
{
cout<<"你出的是:剪刀"<<endl;
if(a[i]==1)
{
cout<<"机器人出的是:石头"<<endl;
cout<<"失败了/(ㄒoㄒ)/~~"<<endl;
sum1++;
}
if(a[i]==2)
{
cout<<"机器人出的是:剪刀"<<endl;
cout<<"打平啦!"<<endl;
}
if(a[i]==3)
{
cout<<"机器人出的是:布"<<endl;
cout<<"ヾ( ̄ー ̄)X(^▽^)ゞ 胜利啦!"<<endl;
sum0++;
}
}
if(x==3)
{
cout<<"你出的是:布"<<endl;
if(a[i]==1)
{
cout<<"机器人出的是:石头"<<endl;
cout<<"ヾ( ̄ー ̄)X(^▽^)ゞ 胜利啦!"<<endl;
sum0++;
}
if(a[i]==2)
{
cout<<"机器人出的是:剪刀"<<endl;
cout<<"失败了/(ㄒoㄒ)/~~"<<endl;
sum1++;
}
if(a[i]==3)
{
cout<<"机器人出的是:布"<<endl;
cout<<"打平啦!"<<endl;
}
}
cout<<"当前比分 你:"<<sum0<<" 机器:"<<sum1<<endl;
}
}
第三:怎么说呢?就叫人格测试吧!
#include<bits/stdc++.h>
#include <windows.h>
#include<stdlib.h>
using namespace std;
int n,E,I,S,N,T,F,J,P;
string a[17]={" ","ENTJ具有逻辑性、组织性、客观性、果断性。喜欢与他人一起工作,尤其从事管理工作和制定战略计划时。",
"ENTP,富于创新,具有战略眼光,多才多艺,分析型思维,具有创业能力。喜欢与他人一起从事需要非凡智慧的创始性活动。",
" INTP,讲究合理性,喜欢理论和抽象的事物,好奇心重,更喜欢构建思想,不太关注环境和人。喜欢单独工作,强调对自己的观点和方法拥有最大的自主权。",
" INTJ,独立而极具个性化,具有专一性和果断性,相信自己的眼光,漠视众人的怀疑。喜欢独自完成复杂的工程。",
"ENFJ,关注人际关系,理解、宽容和赞赏他人,是良好沟通的促进者。喜欢与他人一起工作,致力于完成与人们的发展有关的各种任务。",
"ENFP,热情,富有洞察力和创新性,多才多艺,不知疲倦地寻求新的希望和前景。喜欢在团队中工作,致力于从事能给人们带来更好的改变的事情.",
"INFP,具有开放性,是理想主义者,具有洞察力,灵活。希望自己的工作被认为是重要的。喜欢独立工作或在能发挥创造性的小团体里工作。",
"INFJ,相信自己的眼光,具有同情心和洞察力,温和地运用影响力。喜欢独立工作或与那些热衷于关注人们的成长与发展问题的小群体共同工作。",
" ESFJ,乐于助人,机智,富有同情心,注重秩序,把与他人相处和谐看得很重要,喜欢组织人们和制定计划完成眼前的任务。",
"ESFP,友好、开朗,爱开玩笑,活泼,天性喜欢与他人相处。喜欢与其他活泼、快节奏的人一起工作,同时也会根据判断做出不同选择。",
"ISFP,温和、体贴、灵活、具有开放性。富有同情心,尤其对那些需要帮助的人。喜欢在合作和充满和谐气氛的环境中工作,但常常是在完成他们自己任务的时候。",
"ISFJ,仁慈、忠诚、体谅他人、善良,不怕麻烦帮助需要帮助的人。喜欢充当后盾,提供支持和鼓励。",
"ESTJ,理智、善分析、果断、意志坚定,以系统化的方式组织具体事实。喜欢事先组织细节和操作程序与他人一起完成任务",
"ESTP,行为定向型,讲究实效、足智多谋、注重现实,以最有效的途径解决问题。喜欢事件即时发生,然后在复杂的情境中找到解决问题的方法。",
" ISTP,注重实用性,尊重事实,寻求有利方法,具有现实性,只信服被论证的结果,喜欢独立工作,依靠逻辑和足智多谋解决即时出现的组织问题。",
"ISTJ,详尽、精确、系统、勤劳,关注细节。致力于改善组织程序与过程,无论组织处在发展的顺境还是逆境,都对组织保持忠诚。"};
int main()
{
cout<<"1.当你要外出一整天,你会:1-计划你要做什么和在什么时候做,2-说去就去"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"2.你认为自己是一个:1-较为有条理的人,2-较为随兴所至的人"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"3.假如你是一位老师,你会选教:1-以事实为主的课程,2-涉及理论的课程"<<endl;
cin>>n;
if(n==1)
{
S++;
}
else if(n==2)
{
N++;
}
cout<<"4.你通常1-与人容易混熟,2-比较沉静或矜持"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"5.一般来说,你和哪些人比较合得来? 1-现实的人2-富于想象力的人"<<endl;
cin>>n;
if(n==1)
{
S++;
}
else if(n==2)
{
N++;
}
cout<<"6.你是否经常让:1-你的情感支配你的理智,2-你的理智主宰你的情感"<<endl;
cin>>n;
if(n==1)
{
F++;
}
else if(n==2)
{
T++;
}
cout<<"7.处理许多事情上,你会喜欢:1-凭兴所至行事,2-按照计划行事"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"8.你是否:1-容易让人了解,或是,2-难于让人了解"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"9.按照程序表做事, 1-合你心意, 2-令你感到束缚"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"10.当你有一份特别的任务,你会喜欢:1-开始前小心组织计划, 2-边做边找须做什么"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"11.在大多数情况下,你会选择:1-顺其自然,2-按程序表做事"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"12.大多数人会说你是一个:1-重视自我隐私的人,2-非常坦率开放的人"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"13.你宁愿被人认为是一个:1-实事求是的人,2-机灵的人"<<endl;
cin>>n;
if(n==1)
{
S++;
}
else if(n==2)
{
N++;
}
cout<<"14.在一大群人当中,通常是:1-你介绍大家认识,2-别人介绍你"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"15.你会跟哪些人做朋友?1-常提出新注意的,2-脚踏实地的"<<endl;
cin>>n;
if(n==1)
{
N++;
}
else if(n==2)
{
S++;
}
cout<<"16.你倾向:1-重视感情多于逻辑,2-重视逻辑多于感情"<<endl;
cin>>n;
if(n==1)
{
F++;
}
else if(n==2)
{
T++;
}
cout<<"17.你比较喜欢:1-坐观事情发展才作计划,2-很早就作计划"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"18.你喜欢花很多的时间:1-一个人独处,2-合别人在一起"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"19.与很多人一起会:1-令你活力培增,2-常常令你心力憔悴"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"20.你比较喜欢:1-很早便把约会、社交聚集等事情安排妥当,2-无拘无束,看当时有什么好玩就做什么"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"21.计划一个旅程时,你较喜欢:1-大部分的时间都是跟当天的感觉行事,2-事先知道大部分的日子会做什么"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"22.在社交聚会中,你:1-有时感到郁闷,2-常常乐在其中"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"23.你通常:1-和别人容易混熟,2-趋向自处一隅"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"24.哪些人会更吸引你?1- 一个思想敏捷及非常聪颖的人,2-实事求是,具丰富常识的人"<<endl;
cin>>n;
if(n==1)
{
N++;
}
else if(n==2)
{
S++;
}
cout<<"25.在日常工作中,你会 :1-颇为喜欢处理迫使你分秒必争的突发,2-通常预先计划,以免要在压力下工作"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"26.你认为别人一般:1-要花很长时间才认识你,2-用很短的时间便认识你"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"二、在下列每一对词语中,哪一个词语更合你心意?请仔细想想这些词语的意义,而不要理会他们的字形或读音。"<<endl;
Sleep(1000);
cout<<"1-注重隐私 2-坦率开放"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"1-预先安排的 2-无计划的"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"1-抽象 2-具体"<<endl;
cin>>n;
if(n==1)
{
N++;
}
else if(n==2)
{
S++;
}
cout<<"1-温柔 2-坚定"<<endl;
cin>>n;
if(n==1)
{
F++;
}
else if(n==2)
{
T++;
}
cout<<"1-思考 2-感受"<<endl;
cin>>n;
if(n==1)
{
T++;
}
else if(n==2)
{
F++;
}
cout<<"1-事实 2-意念"<<endl;
cin>>n;
if(n==1)
{
S++;
}
else if(n==2)
{
N++;
}
cout<<"1-冲动 2-决定"<<endl;
cin>>n;
if(n==1)
{
P++;
}
else if(n==2)
{
J++;
}
cout<<"1-热衷 2-文静"<<endl;
cin>>n;
if(n==1)
{
E++;
}
else if(n==2)
{
I++;
}
cout<<"1-文静 2-外向"<<endl;
cin>>n;
if(n==1)
{
I++;
}
else if(n==2)
{
E++;
}
cout<<"1-有系统 2-随意"<<endl;
cin>>n;
if(n==1)
{
J++;
}
else if(n==2)
{
P++;
}
cout<<"1-理论 2-肯定"<<endl;
cin>>n;
if(n==1)
{
N++;
}
else if(n==2)
{
S++;
}
cout<<"1-敏感 2-公正"<<endl;
cin>>n;
if(n==1)
{
F++;
}
else if(n==2)
{
T++;
}
cout<<"1-令人信服 2-感人的"<<endl;
cin>>n;
if(n==1)
{
T++;
}
else if(n==2)
{
F++;
}
cout<<"1-声明 2-概念"<<endl;
cin>>n;
if(n==1)
{
S++;
}
else if(n==2)
{
N++;
}
//以上是全部93道题目,接下来是对分数的判断
cout<<"以上是全部93道题目,接下来是对分数的判断,请稍等片刻..."<<endl;
Sleep(1000);
system("cls");
if(E>I)
{
if(S>N)
{
if(T>F)
{
if(J>P)
{
//ESTJ
cout<<a[13];
}
else
{
//ESTP
cout<<a[14];
}
}
else
{
if(J>P)
{
//ESFJ
cout<<a[9];
}
else
{
//ESFP
cout<<a[10];
}
}
}
else
{
if(T>F)
{
if(J>P)
{
cout<<a[1];
//ENTJ
}
else
{
cout<<a[2];
//ENTP
}
}
else
{
if(J>P)
{
cout<<a[5];
//ENFJ
}
else
{
cout<<a[6];
//ENFP
}
}
}
}
else
{
if(S>N)
{
if(T>F)
{
if(J>P)
{
//ISTJ
cout<<a[16];
}
else
{
//ISTP
cout<<a[15];
}
}
else
{
if(J>P)
{
//ISFJ
cout<<a[12];
}
else
{
//ISFP
cout<<a[11];
}
}
}
else
{
if(T>F)
{
if(J>P)
{
//INTJ
cout<<a[4];
}
else
{
cout<<a[3];
//INTP
}
}
else
{
if(J>P)
{
//INFJ
cout<<a[8];
}
else
{
//INFP
cout<<a[7];
}
}
}
}
return 0;
}
第四:藏宝箱(个人感觉不好玩)
#include<bits/stdc++.h>
#include <windows.h>
using namespace std;
int sum=1,cnt=10;//cnt是累计剩余次数
int index1,index2;//index用户名和密码索引值
string user,pass,p,p1,p2,p3,p4,p5;//user是用户输入名,pass用户输入密码,p输入检测字符串
//设置账号密码
string username[4]={"张三","李四","王麻子","安琪拉"};//账号
string password[4]={"123", "456", "789", "JQK"};//密码
//1. 添加日志:可以查看日志,追加日志并显示,并返回上一层
void AddLog();
//2. 功能介绍:介绍本系统的具体功能,可实现的步骤
void Study();
//3. 游戏宝库:存放一些成品代码游戏,函数放好个体,直接调用即可
void Game();
//4. 学习历程:可以存在平完成学课的level单元作业代码。
void Work();
//5. 添加用户:介绍思路和方法,虽知识能力提升实现添加角色。
void User();
//6. 扩展思路:提示完成优化方法和增加新的功能。
void New();
//7. 退出游戏:可以直接结束函数,并且显示当前时间。
void exit();
//主菜单展示:主菜单展示和排版,可以进入对应的序号并检测。
void MenuShow();
//登录验证检测:检查账号/密码是否存在,是否匹配,10次机会用完就强制退出游戏。
void yanzhen();
//退出函数:退出游戏,并有寄语,显示当前时间,年月日,时分秒,星期。
void exit();
void yanzhen(){
while(sum>0){
if(cnt==0){
cout<<"\n--->>>《输入机会已用完,藏宝箱已死锁,明天再试》<<<---\n";
return;
}
cout<<"\n--->>>请输入账号:(提示:账号密码在源代码第9行)\n";
cin>>user;
bool flag=false;
for(int i=0;i<10;i++){
if(username[i]==user){
flag=true;//账号存在
index1=i;//记录账号的索引值
break;
}
}
if(flag==false){
cnt--;
cout<<"\n!!!---检测账号不存在,请重新输入账号:---(还剩"<<cnt<<"次机会)---!!!\n";
continue;
}else{
cout<<"\n--->>>请输入密码:<<<---\n";
cin>>pass;
bool flag2=false;
for(int i=0;i<10;i++){
if(password[i]==pass){
flag2=true;//密码存在
index2=i;//记录密码索引值
break;
}
}
if(flag2==false){
cnt--;
cout<<"\n!!!---检测密码不存在,请重新开始输入:(还剩"<<cnt<<"次机会)---!!!\n";
continue;
}else{
if(index1==index2){
cout<<"\n\n****--->>>--恭喜您,用了"<<11-cnt<<"次登录成功--<<<---****\n";
cout<<"\n>>-系统当前时间: ";
SYSTEMTIME sys;//调用系统函数 <windows.h>库,这个当做直接使用即可。
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d 星期%1d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wDayOfWeek);
cout<<"--<<\n";
cout<<"\n****>>>--5秒后即将进入藏宝箱《主菜单》--<<<****\n\n";
Sleep(5000);//Sleep()是以毫秒为单位---1秒,引用头文件#include <windows.h>且S大写。
MenuShow();//进入主菜单展示
break;
}else{
cnt--;
cout<<"\n>>>!!!---账号密码不匹配,请重新开始输入:(还剩"<<cnt<<"次机会)---!!!<<<\n";
continue;
}
}
}
}
}
//文字背景图案
void back1(){
cout<<"****************************************\n";
cout<<"*--------------------------------------*\n";
}
void back2(){
cout<<"*--------------------------------------*\n";
cout<<"****************************************\n";
}
void back3(){
cout<<"*************************************************************************\n";
cout<<"*-----------------------------------------------------------------------*\n";
}
void back4(){
cout<<"*-----------------------------------------------------------------------*\n";
cout<<"*************************************************************************\n";
}
void exit(){
cout<<"\n*<<**********>>> 本轮藏宝箱游戏结束 <<<**********>>*\n";
cout<<"\n*<<系统当前时间:->>";
SYSTEMTIME sys;//调用系统函数 <windows.h>库,这个当做直接使用即可。
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d 星期%1d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wDayOfWeek);
cout<<"----->>*\n";
cout<<"\n*<<*******>>>努力学好课程--打好编程基础<<<*******>>*\n";
}
//主菜单
//1. 添加日志
string s1="*------------《日志藏宝箱》------------*\n>>每天都可以将最开心的事情记录下来!",s2;
void AddLog(){
cout<<s1;
Sleep(2000);
while(1){
cout<<("\n\n--->>>《日志目录》-->>>请输入:\n--->>>展示日志(#)\n--->>>添加信息(*)\n--->>>返回主菜单(0)\n");
cin>>p1;
if(( p1.size()!=1)||(p1!="#" && p1!="*" && p1!="0")){
cout<<"!!!---输入有误(只能#或者*或者0),请重新输入---!!!\n";
continue;
}
if(p1=="#"){
AddLog();
break;
}else if(p1=="*"){
cin>>s2;
s1=s1+"\n>>"+s2;
cout<<"--->>>添加日志成功<<<---\n\n";
cout<<s1;
Sleep(2000);
continue;
}else if(p1=="0"){
MenuShow();
return;
}
}
}
//2. 功能介绍
void Study(){
back3();
cout<<"*--------《本游戏设计功能介绍》--------*\n";
string ss="\
1. void AddLog() -添加日志:\n\t<<>>可以查看日志,追加日志并显示,可返回上一层\n\n\
2. void Study() -学习心得:\n\t<<>>介绍本系统的具体功能,可实现的步骤\n\n\
3. void Game() -游戏宝库:\n\t<<>>存放一些成品代码游戏,函数放好个体,直接调用即可\n\n\
4. void Work() -学习历程:\n\t<<>>可以存放平完成学课的level单元作业代码。\n\n\
5. void User() -添加用户:\n\t<<>>介绍思路和方法,虽知识能力提升实现添加角色。\n\n\
6. void New() -扩展思路:\n\t<<>>扩展方法,提示完成优化方法和增加新的功能。\n\n\
7. void MenuShow() -主菜单展示:\n\t<<>>主菜单展示和排版,可以进入对应的序号并检测。\n\n\
8. void yanzhen() -验证登录:\n\t<<>>检查账号/密码是否存在,是否匹配,10次机会用完就强制退出游戏。\n\n\
9. void back1() -背景图案:\n\t<<>>可以生产固定位置符号图形,可以多处调用。\n\n\
10. void exit() -退出游戏:\n\t<<>>退出函数,并有寄语,显示当前时间,年月日,时分秒,星期。。\n\n";
cout<<ss;
back4();
Sleep(5000);
while(1){
cout<<("\n\n--->>>《操作提示》-->>>请输入:\n--->>>返回主菜单(0)\n--->>>退出游戏(e)\n");
cin>>p2;
if(( p2.size()!=1)||(p2!="e" && p2!="0")){
cout<<"!!!---输入有误(只能e或者0),请重新输入---!!!\n";
continue;
}
if(p2=="e"){
exit();
return;
}else if(p2=="0"){
MenuShow();
return;
}
}
}
//3. 游戏宝库
void Game(){
back1();
cout<<"*------------《游戏藏宝箱》------------*\n\n";
string sss="\
1. \t九九乘法表 \n\n\
2. \t猜拳游戏 \n\n\
3. \tn的阶乘\n\n\
4. \t打印三角形\n\n\
5. \t猜数游戏\n\n\
6. \t直接退出游戏\n\n\
7. \t返回主菜单\n\n";
cout<<sss;
back2();
Sleep(2000);
while(1){
cin>>p3;
if(( p3.size()!=1)||(p3!="1" && p3!="2" && p3!="3"&& p3!="4"&& p3!="5"&& p3!="6"&& p3!="7")){
cout<<"!!!---输入有误(只能数字1,2,3,4,5),请重新输入---!!!\n";
continue;
}
if (p3=="1") {
cout<<"展示九九乘法表,原理一样,代码放到函数中,直接调用函数即可\n";
Sleep(1000);
Game();
break;
}else if (p3=="2") {
cout<<"展示猜拳游戏,原理一样,代码放到函数中,直接调用函数即可\n";
Sleep(1000);
Game();
break;
}else if (p3=="3") {
cout<<"展示n的阶乘,原理一样,代码放到函数中,直接调用函数即可\n";
Sleep(1000);
Game();
break;
}else if (p3=="4") {
cout<<"展示打印三角形,原理一样,代码放到函数中,直接调用函数即可\n";
Sleep(1000);
Game();
break;
}else if (p3=="5") {
cout<<"展示猜数游戏,原理一样,代码放到函数中,直接调用函数即可\n";
Sleep(1000);
Game();
break;
}else if (p3=="6") {
exit();
return;
}else if (p3=="7") {
MenuShow();
return;
}
}
}
//4. 学习历程
void Work(){
back1();
cout<<"*----------《level作业藏宝箱》---------*\n\n";
string ssss="\
1. \tL1-7作业代码 \n\n\
2. \tL2-7作业代码 \n\n\
3. \tL3-7作业代码\n\n\
4. \tL4-7作业代码\n\n\
5. \tL5-7作业代码\n\n\
6. \tL6-7作业代码\n\n\
7. \tL7-7作业代码\n\n";
cout<<ssss;
back2();
Sleep(2000);
cout<<"\n跟前面模块标签选择原理一样,可自己实现功能,4秒后自动回到主菜单\n\n";
Sleep(4000);
MenuShow();
}
//5. 添加用户
void User(){
back3();
cout<<"*----------《添加角色思路方法》---------*\n\n";
string s5="\
1. 最简单的方法就是直接在全局定义好的数组直接添加 \n\n\
2. 可以用输入字符串方法,在同一个索引值存入对应的数组\n\n\
3. 后期知识扩展足够强大,可以将用户名和密码存在文件中\n\n\
4. 扩展的存入到数据库中--以后上大学可以尝试\n\n\
5. 想要做更多有意思和创意的作品,必须学好每一节课,打好基础\n\n";
cout<<s5;
back4();
Sleep(5000);
cout<<"\n可自己实现功能,多学知识多练手,(4秒后自动回到主菜单)\n\n";
Sleep(4000);
MenuShow();
}
//6. 扩展思路
void New(){
back3();
cout<<"*----------《可扩展的地方》---------*\n\n";
string s6="\
1. \t可以实现先出现主界面,可以试完,如果要操作,就需要登录和验证 \n\n\
2. \t可以将重复的代码进行优化。实现同样的效果,尽量减少代码行数 \n\n\
3. \t在后面几个模块可以加上标签判断,以及输入错误提示和返回\n\n\
4. \t可以将自己感兴趣的模块加入到主菜单中,然后用里面的函数建立起来\n\n\
5. \t可以将自己平时收集的代码放在自己的藏宝箱中,形成一整个体系\n\n\
6. \t小项目都是所学过的知识,可一小块一小块的完成,边做边测试边改\n\n";
cout<<s6;
back4();
Sleep(2000);
cout<<"\n--->>>代码变化千千万,基础原理永不变<<<---\n -->(4秒后自动回到主菜单)\n";
Sleep(4000);
MenuShow();
}
//主菜单显示
void MenuShow(){
string menu[10]={"1. 添加日志","2. 功能介绍","3. 游戏宝库","4. 学习历程","5. 添加用户","6. 扩展思路","7. 退出游戏"," "};
back1();
cout<<"***---***----->>>藏宝箱<<<-----***---***\n";
cout<<"*--------------------------------------*\n";
for(int i=0;i<8;i++){
cout<<"*|<---> <--->|*\n";
cout<<"*|<---> "<<menu[i]<<" <--->|*\n";
}
back2();
while(1){
cout<<"\n--->>>输入对应列表序号即可进入:\n";
cin>>p;
if(( p.size()!=1)||(p!="1" && p!="2" && p!="3" && p!="4" && p!="5"&& p!="6" && p!="7")){
cout<<"!!!---输入识别有误(只能对应序号),请重新输入---!!!\n";
continue;
}
if (p=="1") {
AddLog();
break;
}else if (p=="2") {
Study();
break;
}else if (p=="3") {
Game();
break;
}else if (p=="4") {
Work();
break;
}else if (p=="5") {
User();
break;
}else if (p=="6") {
New();
break;
}else if (p=="7") {
exit();
break;
}
}
}
int main(){
//开始输入
back1();
cout<<"*<<**********>>>开始登录<<<**********>>*\n";
back2();
yanzhen();//验证函数
//结束
return 0;
}
五:推箱子(画质好差)
#include<bits/stdc++.h>
#include <conio.h>
/*地图模子
人物 ※ 5
箱子 □ 3
墙壁 ■ 1
金币1 ☆ 4
金币+箱 ★ 7
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0
*/
using namespace std;
int x,y,l,cnt,ml=3;
char mov;
int a[12][12];
int b[4][12][12]={
0,0,0,1,1,1,0,0,0,0,0,0,
0,0,0,1,4,1,0,0,0,0,0,0,
0,0,0,1,0,1,1,1,1,0,0,0,
0,1,1,1,3,0,3,4,1,0,0,0,
0,1,4,0,3,5,1,1,1,0,0,0,
0,1,1,1,1,3,1,0,0,0,0,0,
0,0,0,0,1,4,1,0,0,0,0,0,
0,0,0,0,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,0,0,0,0,
1,5,0,0,1,0,0,0,0,0,0,0,
1,0,3,3,1,0,1,1,1,0,0,0,
1,0,3,0,1,0,1,4,1,0,0,0,
1,1,1,0,1,1,1,4,1,0,0,0,
0,1,1,0,0,0,0,4,1,0,0,0,
0,1,0,0,0,1,0,0,1,0,0,0,
0,1,0,0,0,1,1,1,1,0,0,0,
0,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,0,1,0,0,0,0,
0,0,0,0,1,0,0,1,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,0,0,
0,0,1,4,0,0,0,3,5,0,0,0,
0,1,1,1,1,1,1,1,1,1,0,0,
1,0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0
};
void draw()
{
system("cls");
cout<<"关卡:"<<l<<endl;
for(int i=0;i<12;i++)
{
for(int j=0;j<12;j++)
{
if(a[i][j]==1)
{
printf("■");
}
else if(a[i][j]==4)
{
printf("☆");
}
else if(a[i][j]==3)
{
printf("□");
}
else if(a[i][j]==5||a[i][j]==9)
{
x=i;
y=j;
printf("※");
}
else if(a[i][j]==0)
{
printf(" ");
}
else if(a[i][j]==7)
{
printf("★");
}
}
cout<<endl;
}
}
bool check()
{
for(int i=0;i<12;i++)
{
for(int j=0;j<12;j++)
{
if(a[i][j]==4||a[i][j]==3||a[i][j]==9)
{
return true;
}
}
}
return false;
}
void cp(int l)
{
for(int i=0;i<12;i++)
{
for(int j=0;j<12;j++)
{
a[i][j]=b[l-1][i][j];
}
}
}
void play()
{
if(l>ml)
{
cout<<"已超过最大关,再选一个起点开始吧!";
cin>>l;
}
cp(l);
draw();
while(check())
{
mov=getch();
if(mov=='s'||mov=='S')
{
if(a[x+1][y]==0||a[x+1][y]==4)
{
a[x][y]-=5;
a[x+1][y]+=5;
}
else if((a[x+1][y]==3||a[x+1][y]==7)&&(a[x+2][y]==0||a[x+2][y]==4))
{
a[x][y]-=5;
a[x+1][y]+=2;
a[x+2][y]+=3;
}
}
if(mov=='w'||mov=='W')
{
if(a[x-1][y]==0||a[x-1][y]==4)
{
a[x][y]-=5;
a[x-1][y]+=5;
}
else if((a[x-1][y]==3||a[x-1][y]==7)&&(a[x-2][y]==0||a[x-2][y]==4))
{
a[x][y]-=5;
a[x-1][y]+=2;
a[x-2][y]+=3;
}
}
if(mov=='a'||mov=='A')
{
if(a[x][y-1]==0||a[x][y-1]==4)
{
a[x][y]-=5;
a[x][y-1]+=5;
}
else if((a[x][y-1]==3||a[x][y-1]==7)&&(a[x][y-2]==0||a[x][y-2]==4))
{
a[x][y]-=5;
a[x][y-1]+=2;
a[x][y-2]+=3;
}
}
if(mov=='d'||mov=='D')
{
if(a[x][y+1]==0||a[x][y+1]==4)
{
a[x][y]-=5;
a[x][y+1]+=5;
}
else if((a[x][y+1]==3||a[x][y+1]==7)&&(a[x][y+2]==0||a[x][y+2]==4))
{
a[x][y]-=5;
a[x][y+1]+=2;
a[x][y+2]+=3;
}
}
draw();
}
cout<<"恭喜过关!";
l++;
play();
}
int main()
{
cout<<"********************************"<<endl;
cout<<"* *"<<endl;
cout<<"* *"<<endl;
cout<<"* 推箱子 *"<<endl;
cout<<"* *"<<endl;
cout<<"* v1.0 *"<<endl;
cout<<"********************************"<<endl;
cout<<"请输入关卡";
cin>>l;
play();
return 0;
}
最后的,就是日历!(还挺实用的)
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string year,month;//定义变量年月
bool flag=true;//设定标志,如果假,说明不符合。
int wekday,sum, days;//定义周天数、总数、和天数。
void show();//打印输出格式(先定义,在后面有实现)
bool number(char ch){//三元运算符,功能等价于if条件判断
return (ch>='0'&&ch<='9')? true : false;
}
/*扩展介绍-->生成系统弹窗
int s=MessageBox(NULL,(LPCTSTR)TEXT("弹窗测试"), (LPCTSTR)TEXT("弹窗测试"), MB_ICONEXCLAMATION);
系统函数,直接调用即可。简单介绍弹窗的函数中,四个参数。
MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
第一个参数 第二个参数 第三个参数 第四个参数
第一个参数:通常为NULL表示,弹窗在黑框里面,0表示生成新的弹窗。
第二个参数:消息框的内容。(string类型)
第三个参数:消息框的标题。。(string类型)
第四个参数:消息框的形式,包括按按钮类型。(int类型)
MB_OK MB_YESNO MB_ABORTRETRYIGNORE MB_YESNOCANCEL MB_OKCANCEL
默认值 是和否 放弃,重试,跳过 Yes,No和Cancel OK和Cancel
(第四个设置按钮弹窗类型后,返回值可以自己运行看一下,然后进行判断即可,感兴趣可参考网页)
*/
void check_year(){//检查年份输入是否正确。
while(1){
cout<<"\n--->>>请输入年份:(例:2022 直接数字即可)\n";
cin>>year;
for(int i=0;i<4;i++){//用于判断是否找到非数字的
flag=number(year[i]);
if(flag==false) break;
}
if(( year.size()!=4)||(flag==false)){
MessageBox(NULL,(LPCTSTR)TEXT("《只能输入4位数字年份 例:2022》"), (LPCTSTR)TEXT("输入有误"), MB_ICONEXCLAMATION);
continue;
}
MessageBox(NULL,(LPCTSTR)TEXT("年份验证通过"), (LPCTSTR)TEXT("输入正确"), MB_ICONINFORMATION);
return;
}
}
void check_month(){//验证月份是否正确。
while(1){
cout<<"\n--->>>请输入2位数字月份:(例:02 直接数字即可)\n";
cin>>month;
if(( month.size()!=2)|| !number(month[0])|| !number(month[1])){
MessageBox(NULL,(LPCTSTR)TEXT("《只能输入2位数字月份 例:08》"), (LPCTSTR)TEXT("输入有误"), MB_ICONEXCLAMATION);
continue;
}
if (((month[0]-'0')*10+month[1]-'0')>=13 || ((month[0]-'0')*10+month[1]-'0')<=0){
MessageBox(NULL,(LPCTSTR)TEXT("《只能(01-12月) 例:08》"), (LPCTSTR)TEXT("月份错误"), MB_ICONQUESTION);
continue;
}
MessageBox(NULL,(LPCTSTR)TEXT("月份验证通过"), (LPCTSTR)TEXT("输入正确"), MB_ICONINFORMATION);
return;
}
}
void d_time(){//展示当前系统时间
cout<<"\n<<<<<<<<<<<<-----*****************----->>>>>>>>>>>>\n";
cout<<"***---<<当地时间:";
SYSTEMTIME sys;//调用系统函数 <windows.h>库,这个当做直接使用即可。(第二年会学到printf)。
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d 星期%1d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wDayOfWeek);
cout<<">>---***\n";
show();
Sleep(1000);//等待1秒,类比每一秒的变化。
system("cls");
d_time();
}
void show(){//展示日历输出的形式
int sum1=sum;//因为重复调用函数sum会改变,所以保证不变每次重新定值。
cout<<"\n >>---***当前显示 "+year+"年 "+month+"月 日历表***---<<\n";
cout<<("\n日\t一\t二\t三\t四\t五\t六\n");//排列形式,\t是一个tab键的距离
for(int i=1;i<=wekday;i++){
cout<<("\t");//开始的空白位置
}
for(int i=1;i<=days;i++){//从位置后开始输出并换行
if(sum1%7==6){
cout<<i<<("\n");
}else{
cout<<i<<("\t");
}
sum1++;
}
cout<<"\n\n<<<<<<<<<<<<-----*****************----->>>>>>>>>>>>\n";
}
int main(){
check_year();
check_month();
//验证年月正确后,在继续执行。string类型记得转int类型为了后面计算和循环输出。
int year1=(year[0]-'0')*1000+(year[1]-'0')*100+(year[2]-'0')*10+year[3]-'0';
int month1= (month[0]-'0')*10+month[1]-'0';
//验证平年和闰年累加天数,这里以1900年为基准,方便计算。
for(int i=1900;i<year1;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
//累加对应月份的天数,区分了平年和闰年的月份
for(int i=1;i<month1;i++){
if(i==2){
if(year1%4==0&&year1%100!=0||year1%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}
}
}
//重置当月的天数,用于上限判断输出打印。
days=0;
if(month1==2){
if(year1%4==0&&year1%100!=0||year1%400==0){
days=29;
}else{
days=28;
}
}else if(month1==4||month1==6||month1==9||month1==11){
days=30;
}else{
days=31;
}
sum+=1;
wekday=sum%7;
cout<<"--->>>年月检测输入正确,2秒后动态展示日历时间表\n";
Sleep(2000);//等待两秒
//一切数据准备完毕,就开始展示输出内容(放在show函数中)。
system("cls");
d_time();//清除后就显示系统时间
//打印完就结束了。
return 0;
}
好了就到这里,以后还会更新更多内容,记得三连哟[跪求][跪求][跪求]
标签:游戏,党慎入,++,void,else,sys,int,cout From: https://blog.csdn.net/Darwin1216/article/details/142004306