遊戲製作-猜數字遊戲
[程式完成圖]
[動機]
無意間上網看到有人在討論以前開始學習程式時的一些題目,忽然想起國中時和同學打發時間最愛玩的遊戲之一就是這個猜數字遊戲了,當然許多的上課的老師們也很喜歡拿這一個小遊戲來當成作業,不過可惜的是當時我們流行的是樂透呀...(= ="),因此就抱著懷舊(?!)的心態完成了這個小遊戲。
[說明]
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的加入一些現在許多節目常用的求救方法,像我就加了一字提示等等功能。
後記:其實這個程式再做一些變化會更有趣,比如讓猜的數字增加,或著更改基本規則變成數字可以重覆都可以讓遊戲多更多的選擇。
主程式及測試檔無私下載點:連結已失效
(注意!如要轉戴請註明出處 。)








請先 登入 以發表留言。