資源簡介
猜數字游戲 c語言實現 猜4位隨機生成的數 每次給猜測提示直到猜對 包含程序流程圖

代碼片段和文件信息
#include?
#include?
#include?
int??getRand();???????????//?獲取隨機數
void?putRule();???????????//?輸出游戲規則
void?getUserInput();??????//?獲取用戶輸入
void?getUserAgainInput();?//?再次獲取用戶輸入
void?initSystemNum();?????//?初始化系統隨機數
void?detection();?????????//?判定勝利條件
void?initGame();??????????//?初始化游戲
bool?detectionWin();??????//?判斷是否勝利
void?gameStart();?????????//?游戲開始
void?putResult();?????????//?輸出結果
void?putSystemNum();??????//?測試類?輸出隨機結果
int??systemNum[4]?=?{};
int??userNum[4];
char??result[5];
int??totalTimes?=?0;??????//?猜測次數
int?main()
{
???gameStart();
???printf(“你太厲害了,恭喜你全部猜對?總共猜了%d次\n“?totalTimes);
???printf(“按enter鍵退出游戲\n“);
???getchar();
???system(“pause“);
}
void?gameStart()
{
initGame();????//?輸出游戲規則?獲取系統隨機值?獲取游戲玩家輸入值
detection();???//?判斷輸入的值;
int?flag?=?1;
while(flag)????//如果勝利則跳出
{
if(detectionWin())?break;
putResult();???//?失敗以后?輸出結果
getUserAgainInput();?//?再次獲取輸入
detection();???//?再次判斷
}
}
void?initGame()
{
putRule();
initSystemNum();//?成功找出四個數
//putSystemNum();
getUserInput();
}//?初始化游戲?初始化游戲
int?getRand()//?生成systemNum數組
{
int?x?;
srand(time(NULL));
x=rand()%10;
return?x;
}
void?initSystemNum()
{
int?randNum;?//保存隨機數;
bool?flag=1;
systemNum[0]=getRand();//?獲取第一個數;
for(int?i?=?0?;?i<3?;?i++)//?S[0]已知則需要三個隨機數;
{
flag?=?1;
while(flag){
randNum?=?getRand();
for(int?g?=?0?;g?<=?i?;?g++?)
{
if(systemNum[g]==randNum)?break;?//?如果有一樣的就重新隨機并對比;
if(g==i)?{?flag=0?;?break?;}?????//?比較完成后跳出;
}
}
systemNum[i+1]=randNum;??????????//?找到以后就賦值給systemNum;
}
}
void?getUserInput()
{
totalTimes++;
printf(“游戲開始,請輸入4個數:“);
for(int?i?=?0?;?i<4?;?i++)?
{
scanf(“%d“&userNum[i]);
}?//?輸入四個數;
//?獲取用戶鍵入值
}?
void?getUserAgainInput()
{
totalTimes++;
printf(“未能通過!請再次輸入四個數:“);
for(int?i?=?0?;?i<4?;?i++)?
{
scanf(“%d“&userNum[i]);
}?//?輸入四個數;
//?獲取用戶鍵入值
}
void?putRule()
{
printf(“============================================================\n“);
printf(“??????????????????????歡迎來到猜數字游戲???????????????????\n“);
printf(“============================================================\n“);
????printf(“游戲規則:\n系統給出隨機的四個數字“);
????printf(“用戶通過輸入四個數字去猜系統的四個數\n\n“);
????printf(“判定結果:\n如果結果正確且位置正確則輸出A\n如果結果正確但位置不正確系統給出B提示\n如果位置和數字不正確則輸出C\n\n“);
????printf(“例:系統給出?1?2?3?4?用戶給出4?2?3?1?,?則系統將提示?B?A?A?B?\n“);
printf(“============================================================\n\n“);
}
void?detection(){
for(int?x?=?0?;?x?4?;?x++){
for(int?y?=?0?;?y?4?;?y++?)
{
if(userNum[x]==systemNum[y])?
{
if(x==y)?
{?result[x]?=?‘A‘;?
break;
}//?位置和大小都一樣
else?
{
result[x]?=‘B‘;
break;
}//?大小一樣?位置不同
}//?如果有相同?判斷位置關系
else?
{
if(y==3)?result[x]?=?‘C‘;?//?如果查詢完成后沒有匹配
continue;
}
//?位置和大小都不同填入C
}
}
}
bool?detectionWin()
{
for(int?x?=?0?;?x?4?;?x++)
{
if(result[x]?==‘B‘||result[x]==‘C‘)?break;
if(x==3)?return?1;//?全部判斷完成?且沒有return
}
return?0;
}
void?putResult()
{
for(int?a?=?0?;?a?4?;?a++)
{
printf(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3597??2018-12-11?09:59??Guess\GuessNumber.cpp
?????文件??????38235??2018-12-21?15:32??Guess\猜字游戲程序流程圖.docx
?????目錄??????????0??2018-12-21?15:33??Guess
-----------?---------??----------?-----??----
????????????????41832????????????????????3
- 上一篇:秘鑰管理系統 c語言實現的RSA
- 下一篇:非搶占式短作業優先進程調度C語言
評論
共有 條評論