黃忠浩
摘 要:現(xiàn)下流行著這么一個Flash小游戲,那就是比較出名的《吉普賽人讀心術》,剛開始按照游戲規(guī)則去試驗時,當真下了一跳,這個東東真的能猜出你心里想的。一旦揭秘,才發(fā)現(xiàn)原來如此。筆者并用VB編程語言重新編寫了這個游戲。
關鍵詞:游戲 讀心術 Visual Basic6.0
“吉普賽人祖?zhèn)鞯纳衿孀x心術,它能測算你的內心感應?!?/p>
最近網絡上一直流行著這樣的一個Flash心理測試,是某位Flash高手用Flash軟件制作的,名字叫The Flash Mind Reader。
這個Flash心理測試的界面是由三部分組成,左邊上半部分是用矢量圖制作的一個比較逼真的水晶球,還熠熠發(fā)光呢,左邊下半部分是Flash心理測試的介紹和說明部分(見下文),而右半部分出現(xiàn)按照順序標明的0至99這一百個數(shù)字,并且每個數(shù)字后面畫有一個小符號圖形。
下面為大家介紹一下這個Flash心理測試的說明:
任意選擇一個兩位數(shù)(或者說,從10-99之間任意選擇一個數(shù)),把這個數(shù)的十位數(shù)字和個位數(shù)字相加得到一個新數(shù)字,再把任意選擇的數(shù)減去這個新數(shù)字。
例如:你選的數(shù)字是23,然后2+3=5,再23-5=18。
在圖表中找出與最后得出的數(shù)字所對應的小符號圖形,并把這個小圖形牢記心中,然后點擊水晶球,你會發(fā)現(xiàn),水晶球里所顯示出來的圖形正是你剛才記在心里的那個。
如果大家按照這個Flash心理測試的說明去做的話,大家會驚奇地發(fā)現(xiàn),這個Flash心理測試每次都能測出你看到或記住的數(shù)字后面的圖形,于是大家會開始懷疑這個世界上是否真的有內心感應這回事,而這個Flash心理測試真的能看透你的心思。
今天,筆者就為大家解析一下這個Flash心理測試的奧秘以及如何用VB6.0編寫這個心理測試。
大家只要細心地觀察這個Flash心理測試,一定會發(fā)現(xiàn)這么一個在數(shù)學方面常見的規(guī)律:從10到99任意的一個兩位數(shù)按照Flash心理測試提供的那個法則運算得出的新數(shù)字都是9的倍數(shù)。
上面已經有一個例子,再舉兩個例子:
85的十位數(shù)字是8,個位數(shù)字是5,8+5=13,85-13=72,72是9的倍數(shù);
64的十位數(shù)字是6,個位數(shù)字是4,6+4=10,64-10=54,54是9的倍數(shù)。
下面咱們再用數(shù)學表達式來演算一下,看看結果如何:
假設一個兩位數(shù)的十位數(shù)字是m,個位數(shù)字是n,即這個兩位數(shù)字是10m+n,十位數(shù)字和個位數(shù)字相加得m+n,則原來兩位數(shù)字和新數(shù)字相減是(10m+n)-(m+n)=9m,因此所得數(shù)字永遠是9的倍數(shù)。
綜上所述,這個Flash心理測試的奧秘已經浮出水面。
每次啟動這個Flash心理測試,首先要做的是圖形的初始化,即隨機抽取圖形賦值給0至99,然后把是9的倍數(shù)的數(shù)字后面的圖形統(tǒng)一賦值成相同的圖形,于是除了9的倍數(shù)的其他圖形就只是個幌子而已,使大家不容易看出所有9的倍數(shù)的圖形相同。大家此時用鼠標點擊水晶球就看到剛才記住的那個圖形。
而后這個Flash心理測試把右邊所有圖形遮蓋,再出現(xiàn)一個返回按鈕,其實這樣做也是有目的的,因為制作者不想讓大家知道,大家點擊返回按鈕時所有9的倍數(shù)的圖形已經被替換了,以便為大家下一次再點擊水晶球時做鋪墊。
解析到這里,大家應該清楚這個Flash心理測試的奧秘在哪里了吧?
下面就繼續(xù)我們的下半部分內容,用VB6.0為大家編寫一下這個心理測試:
一、需要準備的文件
1.大約300px×300px的10張符號圖片,編號分別為00~09(JPG格式);
2.大約30px×30px的10張縮小的符號圖片,編號分別為0~9(JPG格式),與符號圖片一一對應(可以用Fireworks、Photoshop等軟件制作);
3.背景圖片(JPG格式,任意選擇,但要與界面大小一致);
4.圖標圖片(ICO格式)。
二、界面設計
1.啟動VB6.0,會出現(xiàn)一個缺省窗體Form1,命名為frm1,做為啟動窗體;
2.點擊“工程”,選擇“添加窗體”,添加一個新窗體,命名為frm2,作為心理測試窗體;
3.在frm1中用標簽控件寫上心理測試的說明,標簽控件的BackStyle屬性設為0,BorderStyle屬性設為0,再添加三個按鈕控件,命名為cmdkaishi,cmdfanhui,cmdjieshu,相應地把frm1的窗體BorderStyle屬性設為0;
4.在frm2中添加三組控件數(shù)組,第一組是標簽控件lblshuzi(0)-lblshuzi(99),第二組是圖片控件picfuhao(0)-picfuhao(99),第三組是圖片控件pictuxing(0)-pictuxing(19),再添加一個圖片控件picshuijing和一個標簽,用于寫上說明心理測試的說明;
5.把背景圖片添加到frm1、frm2的picture屬性中;
6.把圖標圖片添加到frm1、frm2的icon屬性中。
三、代碼設計
1.frm1中的代碼:
Private Sub cmdkaishi_Click() '開始按鈕事件
Unload frm1 frm2.ShowEnd Sub
Private Sub cmdfanhui_Click() '返回按鈕事件
frm2.Show unload frm1
frm2.Enabled=True
frm2.picshuijing.Picture=LoadPicture(“”)
End Sub
Private Sub cmdjieshu_Click() '結束按鈕事件
End End Sub
2.frm2中的代碼:
Public op As Integer '定義通用聲明
Public Sub bianhuan() '顯示水晶球里圖片的事件
picshuijing.Picture=pictuxing(op+10).Picture
Dim t As Integert=Int(Rnd*10)
For i=1 To 9
picfuhao(9*i)=pictuxing(t).Picture
op=t Next i End Sub
多功能
Dim i As Integer,j As Integer,m As Integer
For i=0 to 9
pictuxing(i).Picture=LoadPicture(App.Path&“”& i &“.jpg”) '加載有關圖片
Next i For i=10 to 19
pictuxing(i).Picture=LoadPicture(App.Path&“ 柏乡县| 琼结县| 无极县| 肥东县| 博客| 民县| 汉中市| 潮州市| 南安市| 扎囊县| 德惠市| 普安县| 客服| 望奎县| 资溪县| 遂平县| 凌云县| 江津市| 噶尔县| 德令哈市| 无极县| 大埔区| 湟中县| 梓潼县| 兰考县| 五原县| 山阳县| 乐陵市| 原平市| 江津市| 沁水县| 桐柏县| 从江县| 额尔古纳市| 博湖县| 邳州市| 松滋市| 余姚市| 肥城市| 怀化市| 肥东县|