哪位大神能帮我写下C++的小游戏代码,可运行的?在线等 20

 我来答
夏虫勿语冰
2021-04-06
知道答主
回答量:31
采纳率:0%
帮助的人:1.6万
展开全部

使用语言:C++使用工具:vs2019

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
篮球少年之俊
2020-06-07
知道答主
回答量:1
采纳率:0%
帮助的人:601
展开全部
#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include <string>

#include <time.h>

using namespace std;

//猜测最大次数

const int MAX_GUESS_TIME= 8;

void ShowMenu();//显示菜单

void ShowGameInfo();//显示游戏简介

string GetNum();//产生一个不包含重复数字的四位数

string CalcResult(string strResult, string strInput);//比较两个数,输出?A?B结果

bool CheckInput(string strInput);//检查输入有效性,简单处理,可增加其它判断

int main()

{

string strResult;

string strInput;

int iGuessTime=1;

cout<<"==***欢迎使用猜数字游戏***=="<<endl;

ShowMenu();

cin>>strInput;

while (1)

{

if (strInput == "1")

{

break;

}

else if (strInput == "2")

{

ShowGameInfo();

}

else if (strInput == "0")

{

cout<<"谢谢使用,再见!\n";

return 0;

}

else

{

cout<<"对不起,请输入正确的数字!\n";

}

ShowMenu();

cin>>strInput;

}

srand(time(NULL));

strResult = GetNum();

cout<<"请输入四位数(输入exit退出):"<<endl;

cin>>strInput;

while (strInput != "exit")

{

if (!CheckInput(strInput))

{

cout<<"您的输入不正确,请输入4位数字,不能有重复\n";

cin>>strInput;

continue;

}

if (strResult == strInput)

{

cout<<"哈!猜对了,你好棒!数字是:"<<strResult<<endl;

cout<<"继续?(y/n)";

cin>>strInput;

if (!(strInput[0]=='y' || strInput[0]=='Y'))

{

break;

}

strResult = GetNum();

iGuessTime=1;

}

else

{

if (MAX_GUESS_TIME > iGuessTime)

{

cout<<"第 "<<iGuessTime<<"次猜测,输入"<<strInput<<",结果:"<<CalcResult(strResult, strInput)<<endl;

++iGuessTime;

}

else

{

cout<<"对不起,您猜得不对,数字是:"<<strResult<<endl;

cout<<"继续?(y/n)";

cin>>strInput;

if (!(strInput[0]=='y' || strInput[0]=='Y'))

{

break;

}

strResult = GetNum();

iGuessTime=1;

}

}

cout<<"请输入四位数(输入exit退出):"<<endl;

cin>>strInput;

}

cout<<"谢谢使用,再见.\n";

return 0;

}

string GetNum()

{

char cTmp[2] = {0};

string strTmp;

int iTmp=0;

while (strTmp.length() != 4)

{

iTmp = rand() % 10;

itoa(iTmp, cTmp, 10);

int iIndex = strTmp.find(cTmp);

if ( iIndex < 0)

{

strTmp += cTmp;

}

}

return strTmp;

}

string CalcResult(string strResult, string strInput)

{

int iA=0,iB=0;

int i=0,j=0;

char cResult[5]={0};

for (;i < strResult.length();++i)

{

for (j=0;j < strInput.length();++j)

{

char strA=strResult[i];

char strB=strInput[j];

if (strA == strB)

{

if (i == j)

{

++iA;

}

else

{

++iB;

}

}

}

}

sprintf(cResult,"%dA%dB", iA, iB);

return cResult;

}

bool CheckInput(string strInput)

{

int i=0;

if (strInput.length() != 4)

{

return false;

}

for (;i < 4; i++)

{

char cTmp = strInput[i];

if ( cTmp > '9' || cTmp < '0')

{

return false;

}

}

return true;

}

void ShowMenu()

{

cout<<"请输入对应数字进行选择"<<endl;

cout<<"1-->玩游戏"<<endl;

cout<<"2-->游戏介绍"<<endl<<endl;

cout<<"0-->退出游戏"<<endl;

}

void ShowGameInfo()

{

cout<<"这里是游戏介绍,输入你自己的游戏介绍\n";

system("pause");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式