![]() |
猜數字遊戲程式設計(C++ Builder)
開這個版面希望以小弟的程式設計經驗和大家互相學習,也請大家不吝賜教
[猜數字]遊戲是請猜的人輸入一組四位數的數字,若猜對數字和位置就以"A"表示,若數字對,位置不對則以"B"表(小弟小時候很喜歡玩) 以下是小弟表單的排列: 語法:
object Form1: TForm1 請在上面第6行TForm1 *Form1; 加一段程式碼String num="5431"; 在設計初,若程式有些是屬於亂數控制的值,您可以先將他設成固定值,這樣除錯會比較方便 再來就是當使用者資料輸入完後按下[我猜]按鈕時的程式碼 語法:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) 主要原因是if(Edit1->Text.SubString(i,1)==num.SubString(j,1)) bn++;多加了一次... 應該改成if(Edit1->Text.SubString(i,1)==num.SubString(j,1)) if(i!=j)bn++;(判對若位置不同才相加) 不過對於輸入我們也不允許使用者輸入重複的數字,所以我們必須追加限制 當然加在TEdit的OnChange事件 語法:
void __fastcall TForm1::Edit1Change(TObject *Sender) 再來剩下[重來]與[關閉]的按鈕 目前是這樣設計的 [重來]按鈕 語法:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) 語法:
void __fastcall TForm1::SpeedButton3Click(TObject *Sender) <未完待續> |
受教了
謝謝樓主 建議樓主可以在標題上加上是用何種語言寫的^^ |
引用:
已經改了(原本有想到,可是沒想到去做 :decfghi6: ) < :ddrf567h: > |
再來輸入判斷既然已經完成
當然就是亂數部分啦 首先將第6行的 String num="5431"; 改成 String num; 接著亂數產生時機應該在表單的OnCreat事件 語法:
void __fastcall TForm1::FormCreate(TObject *Sender) while{...}是為了防止出現重複數字 好了,大家玩玩看吧!!! 然而大家或許會發現仍有些問題,譬如當您猜對後依然可以繼續猜 這時我們必須修改[我猜(SpeedButton1)]的OnClick事件,如下 語法:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) 語法:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) 下個禮拜再與大家討論利用Socket物件設計可和好友網路對戰吧 < :ddrf567h: > |
剛剛想到還可以在加入一個功能,就是當使用者按下Enter時等於按下[我猜]
這是利用Edit1的OnKeyPress事件,如下: 語法:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) < :bj375mg: > |
Thx share ^^
有越來越多版友參與 與分享 很高興 不論是 實例 還是 概念 問題 都歡迎大家提出 ^^ |
所有時間均為台北時間。現在的時間是 11:02 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *