1.看程序運行截圖吧!!
由于博主本人較笨,就不動畫演示了,如果動畫的話可能將是一個漫長的過程!
猜數字游戲.png
2.游戲題目
隨機生成4個不相同的數字從小到大排序,用戶開始游戲,如果用戶猜對數字和數字對應的位置,界面回饋A,如果數字正確位置不正確,則回饋B。
3.程序思路
1.先隨機產生四個不一樣的一位數
2.用數組保存這四個數
3.接收用戶輸入,并且做出判斷,分別判斷數字是否一樣還有判斷數字的位置是否一樣
4.如果數字一樣位置也一樣則輸出A,否則輸出B
5.用戶全部猜對打印:恭喜你,猜對了!!
4.代碼實現
// 猜數字游戲.cpp : 此文件包含 "main" 函數。程序執行將在此處開始并結束。
#include #include"stdlib.h"
#include"time.h"
int main()
{
//保存原來的數字
int originalArray[4] = {};
//保存猜的數字
int guessArray[4] = {};
//記錄數字和位置相同的個數
int countA = 0;
//記錄數字相同位置不同的數字
int countB = 0;
//放種子-
srand((unsigned int)time(NULL));
for (int i = 0; i < 4;i++) {
bool isExist = false;
int temp = 0;
while (1)
{
//產生一個隨機數
temp = rand() % 10;
//判斷是否有重復
for (int j = 0; j < i; j++)
{
if (originalArray[j]==temp) {
//說明重復
isExist = true;
break;
}
}
if (isExist==false)
{
break;
}
}
//插入排序
int j = 0;
for (; j < i; j++)
{
//下標為j對應的數字和產生的數字比較
if (tempj; k--)
{
originalArray[k] = originalArray[k - 1];
}
break;
}
}
//保存到數組中
originalArray[j] = temp;
}
//輸出
/*for (int i = 0; i < 4; i++)
{
printf("%d",originalArray[i]);
}
printf("\n");*/
//開始游戲
while (1)
{
printf("請輸入猜測的數字:");
for (int i = 0; i < 4; i++)
{
scanf("%d", &guessArray[i]);
}
//判斷用戶輸入
for (int i = 0; i < 4; i++)
{
for (int j=0;j<4;j++)
{
//判斷數字
if (originalArray[i]==guessArray[j])
{
//判斷位置
if (i==j)
{
countA++;
}
else
{
countB++;
}
}
}
}
if (countA==4)
{
//說明全對
printf("恭喜你,猜對了!!!");
break;
}
else
{
printf("%dA%dB\n",countA,countB);
countA = 0;
countB = 0;
}
}
//system("pause");
return 0;
}
5.感悟
這個小游戲初次一聽確實挺簡單的,但是在實現的過程中卻遇到了不少問題,比如如何產生隨機數,如何使隨機數的大小不一樣,并且還要在產生隨機數的同時給隨機數排序,盡管困難重重,時不時還能把自己繞進循環里,但苦中作樂,寫完這個小程序還是收獲不少。
ps:歡迎關注喲,會經常給你們推送一些有趣的小程序。