猜數遊戲c實現

2021-07-05 09:13:31 字數 1282 閱讀 8997

猜數遊戲c實現

正好剛剛c寫了個猜數遊戲,一同和大家分享下,**沒有進行

任何優化,但其中有些程式設計的思想還是值得**的

這個猜數遊戲的功能是:

計算機產生乙個隨機四位數,讓人猜這個四位數是多少,人輸入

這個四位數後,計算機首先判斷這個四個數字有幾個猜對了,並且

在猜對的數字中又有幾位位置也是對的,將結果顯示出來,給人以

提示,讓人再猜,直到人猜出計算機所想的四位數為止,遊戲結束

時,顯示乙個數用了幾次

直接貼**了

#include #includeint b[10];

int c[10];

int d[10];

int e[10];

int f[10];

void division(int n,int s)

int main(void)

division(a,b);

int cont=0;

while(1)

for(i=0;i<4;i++)else

d[j]=0;

e[i]=0;

f[i]=j;

}if(i==j)}}

} printf("您有%d個數字猜對\n",t);

printf("其中有%d個數字位置也正確\n",o);

if(o==4)

printf("請您再接再厲\n");

} printf("您一共猜了%d次",cont);

return 0;

}

ok,由於c不熟悉庫,所以全是基本資料型別

題目中的數字分割我寫了個函式很簡單,就不說了,然後關鍵在於

各個數的比較上

1.如何讓已經成功的數字不再比較,避免成功數字變大?

解決這個問題的方法是狀態的標定,我用d[10]標定c[10],e[10]標定b[10]

這樣比較過置0,沒比較過為1。

2.成功數字,還得比較,因為萬一對應位置上有呢,又該怎麼辦?

繼續狀態標定,我讓e[10]有另外一種狀態,那就是當比較到對應位置成功時置2

當e[i]==2時,那就真正不去比較了

3.如果對應位置對應上了,那前面置d[i]為0的地方應該置1,還人家自由,但我如何

知道對應關係呢

繼續增加標定,我用f[10]來標誌每個b[i]和c[j]比較成功的時候的對應關係

問題解決,題目很簡單,但是通過這個簡單的demo,讓大家明白狀態的重要性,以後編**的

時候遇到複雜問題,通過這種標定會讓問題簡單化

c語言實現猜數遊戲

猜數遊戲需要電腦產生乙個0 100之間的隨機數,然後使用者輸入自己猜的數,系統提示使用者猜大或猜小,然後繼續猜數,直到使用者猜對為止。由於猜數遊戲需要每次產生不同的一隨機數,於是便初次接觸使用rand 函式和srand 函式,這兩個函式作為庫函式,被包含在stdlib.件中,故使用時要加上標頭檔案。...

python實現猜數遊戲

一 問題描述 使用python開發乙個猜數小遊戲,程式隨機產生0 1024之間的數字,使用者輸入猜測數字,程式告訴使用者猜大了還是小了。在一定次數內猜對使用者獲勝,否則使用者失敗。每一輪遊戲要求使用者輸入使用者名稱 程式會一直執行,直到使用者輸入 3 停止遊戲。在每一輪遊戲前輸入 1 可以檢視使用者...

Python程式設計實現 猜數遊戲

由程式隨機產生乙個0 100之間的整數,然後讓使用者輸入乙個整數,判斷輸入是否正確,若正確,則結束遊戲,輸出資訊 如錯誤,則提示 大了 或 小了 且還可再輸入乙個整數,當猜數次數達到8次時,則結束遊戲。輸出資訊請按如下規則確定 1 輸入次數達到8次,輸出資訊 你的表現太差,遊戲結束 2 輸入次數達到...