遊戲製作-猜數字遊戲
[程式完成圖]
[動機]
無意間上網看到有人在討論以前開始學習程式時的一些題目,忽然想起國中時和同學打發時間最愛玩的遊戲之一就是這個猜數字遊戲了,當然許多的上課的老師們也很喜歡拿這一個小遊戲來當成作業,不過可惜的是當時我們流行的是樂透呀...(= ="),因此就抱著懷舊(?!)的心態完成了這個小遊戲。
[說明]
Q1:大約需要製作多久的時間?
A: 包括程式開始設計、著手進行程式輸入直到美工編排大約需花費三~五小時左右,算是一個好玩的小品遊戲。
Q2:遊戲的基本玩法是什麼?
A:這個遊戲算是大多數的人都了解的一個經典小遊戲,基本的遊戲規則就是
1、四個0~9組成的不同數字組成答案
2、玩家猜測時會依照答案給予不同的提示,如果猜到數字但位置不對,則算是B,如果數字位置都對了,算是A
EX:
若答案為9510
玩家猜測1234時,因猜到1這個數字,但位置不對,所以電腦會回應 0A1B
玩家猜測9581時,因9、5都對了,1位置不對,所以電腦會回應 2A1B
以此類推...直到玩家猜對全部的數字及位置!
[系統要求]
Windows XP sp2
Visual Basic 6.0 專業版
[實作]
一、讓VB隨機產生0~9不同4個數字?
(1) 在VB中,隨機產生數字的語法是Rnd(),而Rnd()產生的亂數為0.xxx的亂數,因此如果要產生0~10的亂數可以將他乘10倍
| VB產生0~10的數字 |
|
Dim number1 As Integer number1 = Rnd() * 10 |
宣告一個整數型態的變成 number1 ,將 Rnd() * 10 給這個變數,則就可以看到小數點前的位數了。
(2)接下來同樣法方法給四個整數的變數就可以得到四個亂數了,並且將Rnd() * 10有可能得到10這個數字的狀態排除掉。
| VB產生四個0~9的數字 |
|
Dim number1 As Integer number1 = Rnd() * 10 If number1 = 10 Then |
(2)這裡會發現一件事情,幾乎是每個程式設計軟體都會遇到的狀態,也就是會發現每次重開程式,看似是亂數的數字每次取出來的四個數字都是一樣的,這是因為取亂數的演算法都是一樣的呀!所以還必須加上一個語法Randomize,在MSDN中稱為初始化亂數產生器,詳情請看這裡:MSDN-Randomize
| VB真正產生四個0~9的數字 |
|
Dim number1 As Integer Randomize number1 = Rnd() * 10 If number1 = 10 Then |
(3)最後要避免四個數字重覆,可利用do while-loop來決解:
|
|
|
Dim x |
二、判斷輸入字串與答案的關係
(1) VB中取得字串文字的方法大約可分成Left()、Mid()、Right(),因此就將三個都用力的用下去吧!在這裡,輸入的TEXT BOX名稱為Text1.Text
|
|
|
'第一個數字=> Left(Text1.Text, 1) |
(2)利用IF語法判斷四個數字是否有重覆,或著不足四個數字,並且再判斷一共為幾A幾B,如此就可以完成一個簡單的猜數字遊戲了。當然為了增加一點樂趣,所以可以KUSO的加入一些現在許多節目常用的求救方法,像我就加了一字提示等等功能。
後記:其實這個程式再做一些變化會更有趣,比如讓猜的數字增加,或著更改基本規則變成數字可以重覆都可以讓遊戲多更多的選擇。
主程式及測試檔無私下載點:連結已失效
(注意!如要轉戴請註明出處 。)

~跪求~ 可不可以借我COPY 我想要學習這個遊戲入門 因為一下子思考無法起 很幸運地找你的程式能當範例 ^0^ 將來我是需要繳交要期末作業的 不過我已經打算好自己重寫遊戲劇本豐富內容 但是還沒有什麼基礎能力..哈 非常感謝你能無私公開程式碼耶!! 可是我載不下來 能不能幫幫忙.. 我還有什麼辦法可以順利取得你的無私啊? (歹勢) 拜託(合掌)
小學員你好: 我剛測試後下載點還是好的,如果你直接將上面的連結用類似FlashGet等續傳軟體來下載,一定會失敗喔!請先點選連結到hinet的頁面,再按"立即下載"圖示即可下載。 另外給您一點良心的建議,你要COPY程式碼使用當然是可以,只要不是用在商業行為即可。 就算整份程式原封不動的交出去,至少你在交出去前,要了解程式的內容,知道自己學了些什麼,讓自我知識的成長,這才是最重要的,加油!如果你現在沒有什麼基礎能力那就快點加強自己的實力吧,因為那絕對不是好的理由也不是藉口喔,希望你能在學習的過程中獲得設計的成就感與快樂!!
版主您好啊 ^0^ 非常感謝您的幫忙!! 我會加油的!! 我現在是一頭霧煞煞 ˊˋ 而且我想把猜數字的遊戲規則改成猜圖片的遊戲 還有很多要突破喔 ˊˋ
*****