全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1070
推到 Plurk!
推到 Facebook!

猜數字遊戲2位數的

尚未結案
神影
一般會員


發表:1
回覆:0
積分:0
註冊:2004-10-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-28 21:50:41 IP:218.162.xxx.xxx 未訂閱
請問哪位大大知道猜數字遊戲2位數(就是幾A幾B的遊戲)的程式要怎麼寫嗎? 我剛學C Builder,所以我只知道一開始用random取亂數接下來就不知道了,哪位大大可以教我一下嗎?我急著要
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-02 01:42:08 IP:219.68.xxx.xxx 未訂閱
神影您好..以您的文意推斷..我想好像是"電腦出給人猜"而不是"人出給電腦猜"..所以程式簡單多了..不需要寫AI    可以用以上思路去實現..我寫成演算法.供您了解.您自己寫成C吧(這是您的作業).. < class="code"> 1..不能直接用RANDOM去取亂數..因為猜數字的字不能重複..所以..您必須使用洗牌法來取亂數 宣告陣列0~9 DIG(10) 寫一個FOR..使DIG(0)=0..DIG(1)=1....DIG(9)=9.. randomize();//重建亂數種子 FOR i=0~9{ N=random(9) 1; //從10個數隨便抽一個數 SWAP(DIG(i),DIG(N)); //在與第I個數交換 } 2..洗玩牌之後..取前4個數字當作要給玩家猜的數字 3..預設A=0..B=0..及宣告玩家輸入陣列IN(4)<==IN(0)為第1個字..IN(3)為第4個字 4..當玩家輸入數字..將他轉存到IN(0)~IN(3)中.. 5..開始判斷幾A幾B FOR i=0~3{ if (IN(i)==DIG(i)) {A ;} <---位置相同A就 1 FOR j=0~3{ if (IN(i)==DIG(j))&&(i!=j){B ;} <--若在別的位置找到..B就 1 } } 6..IF A=4{輸出"猜對了"} else{輸出 幾A幾B.. 回到第3步驟..繼續猜.. } 程式演算法就是這樣..加油吧 發表人 -
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-02 01:44:19 IP:219.68.xxx.xxx 未訂閱
剛剛沒注意到..您要2位數的HO??.. 那更簡單..上面那篇的4都改成2.. 0~3都改成0~1...就OK了 ^^
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-02 09:37:21 IP:202.145.xxx.xxx 未訂閱
您好,新進會員請閱讀本站規定 新手需知--本站使用說明 請勿張貼作業而索求答案,本站的宗旨是討論交流,並非幫人寫作業 請將有問題的程式碼貼上,或是詳細說明遇到的問題
系統時間:2024-06-26 21:58:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!