SOGO論壇

標題: 用C語言寫賓果遊戲 [列印本頁]

作者: 咖啡香    時間: 2010-6-9 16:52:55     標題: 用C語言寫賓果遊戲

目前小妹在寫賓果的遊戲,然後遇到下列幾個問題!
還麻煩各位高手大大幫幫忙 ^^

1.要如何讓消去過的那些數字不會再出現?
因為電腦選數字是隨機選取 所以不知道怎麼讓他不跟我們選的數字&選過的數字重複!

2.我應該要用一維陣列寫,還是二維陣列比較好呢?
目前我還沒有開始寫,之前寫的... 亂七八糟的 ^^"
想知道,如果要寫賓果遊戲,大概要怎麼寫會比較好!?

麻煩各位大大幫忙 ~"~
作者: edvx    時間: 2010-6-10 21:19:17

1.要如何讓消去過的那些數字不會再出現?
因為電腦選數字是隨機選取 所以不知道怎麼讓他不跟我們選的數字&選過的數字重複!

用for檢查,且每選一個數字就要檢查

2.我應該要用一維陣列寫,還是二維陣列比較好呢?
目前我還沒有開始寫,之前寫的... 亂七八糟的 ^^"
想知道,如果要寫賓果遊戲,大概要怎麼寫會比較好!?

用二維寫比較好,用一維寫會"時"倍功半

--------------------
大大好興致
不過,遊戲還是跟朋友一起玩會比較有趣

 
作者: evance826    時間: 2010-6-13 02:00:34

如果用一為陣列,假設賓果為25個號碼,
bingo[25]={0};
產生亂數的號碼後,如產生為數字5,就把 bingo[5]=1;
其餘的還是0,再產生亂數為8, bingo[8]=1,
再產生亂數為8,只要去看bingo[8]是否為1,若是為1的時候,表示這數字已經產生過了,
所以重新再去產生一個亂數,這樣你就可以省去for迴圈的檢查,也可以只用一維陣列就好了,
如果要重新玩,就把bingo[0~25]清除為0,這樣就可以了,
下面是參考語法,並沒有寫完整。


num1=rand();

while(bingo_total<=25){
   while(bingo_num==0){
      if(bingo[num1]==1){
         i=rand();
      }else{
         printf(num1);
         bingo[num1]=1;
         bingo_num=1;
      }
   }
   bingo_total++;
}

《 本帖最後由 evance826 於 2010-6-13 02:04 編輯 》




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM