日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Matlab猜数字游戏GUI界面设计

發(fā)布時(shí)間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab猜数字游戏GUI界面设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

猜數(shù)字小游戲是本人以前非常喜愛(ài)的一個(gè)安卓手機(jī)小游戲,相信有不少小伙伴玩過(guò)。這個(gè)游戲的規(guī)則大致如下:

1.點(diǎn)擊“開始游戲”,系統(tǒng)會(huì)隨機(jī)生成1個(gè)四位數(shù),每個(gè)位數(shù)不重復(fù),如3810;

2.玩家必須在7次內(nèi)根據(jù)系統(tǒng)提示猜出結(jié)果,否則游戲失敗。如用戶輸入“1234”,則結(jié)果返回為0A2B,其中A表示數(shù)字相同且位置相同,B表示數(shù)字相同但位置不同;如用戶輸入為3567,則結(jié)果返回為1A0B。玩家每猜一次,系統(tǒng)給出一個(gè)結(jié)果:XAYB。

3.用戶根據(jù)給出的“XAYB”的結(jié)果,反復(fù)輸入猜測(cè)的數(shù)字,最終在7次內(nèi)猜出結(jié)果。若超出七次,則游戲失敗。

本人對(duì)于這個(gè)游戲樂(lè)此不疲,個(gè)人也非常喜歡編程,在Matlab編程方面也有十幾年的經(jīng)驗(yàn)了。因此,出于個(gè)人的興趣所致,基于Matlab的GUI界面開發(fā)了一個(gè)程序,可完美實(shí)現(xiàn)這個(gè)小游戲功能。我所寫的代碼包括3個(gè)文件,1個(gè)fig文件和2個(gè)m文件,只需要運(yùn)行test05.m這個(gè)文件即可。為了方便理解,我添加了1個(gè)說(shuō)明文件和2個(gè)游戲界面的截圖。

游戲的初始界面如下,運(yùn)行test05.m即可出現(xiàn)。

?點(diǎn)擊“開始游戲”,系統(tǒng)隨機(jī)生成四位數(shù)。

然后用戶在下面的方框中可輸入猜測(cè)的數(shù)字,如1234;然后點(diǎn)擊“猜”。系統(tǒng)即會(huì)在下面的列表框中展示猜測(cè)結(jié)果。本人運(yùn)行一次游戲的結(jié)果如下。

?從上面可以看出來(lái),本次生成的隨機(jī)數(shù)字是5267。

第1次,猜測(cè)的是1234,結(jié)果為1A0B,表示這4個(gè)數(shù)字里面只有1個(gè)數(shù)字對(duì)且位置對(duì)。

第2次,猜測(cè)的是5678,結(jié)果為1A2B,表示這4個(gè)數(shù)字里面有3個(gè)數(shù)字對(duì),但只有1個(gè)位置對(duì)。

根據(jù)前兩次的結(jié)果,可以知道1234里面有1個(gè),5678里面有3個(gè)。

第3次,猜測(cè)的是1678,結(jié)果為0A2B,表示這4個(gè)數(shù)字里面有2個(gè)數(shù)字對(duì),但位置都不對(duì)。

所以,1肯定沒(méi)有,234里面有1個(gè);678里面有2個(gè),但位置不對(duì);5出現(xiàn)在第1個(gè)位置;

第4次,猜測(cè)的是5278,結(jié)果為2A1B,表示這4個(gè)數(shù)字里面有3個(gè)數(shù)字對(duì),但只有2個(gè)位置對(duì),其中包括數(shù)字5。

這里可以做一個(gè)假設(shè),假設(shè)278里面是2對(duì),那么2一定是位置對(duì),那么78里面就只有1個(gè)對(duì)且位置不對(duì);結(jié)合前面的678里面有2個(gè),所以6一定有,而且6在第3或第4個(gè)位置。我綜合這些信息,做了一個(gè)猜測(cè),猜測(cè)78里面有7。

第5次,猜測(cè)5267,運(yùn)氣不錯(cuò),直接對(duì)了!這里當(dāng)然是有運(yùn)氣成分的!

正常來(lái)說(shuō),七次一般都能猜對(duì)的。

以上就是我編寫的小游戲的介紹,下面簡(jiǎn)單說(shuō)明一下我編程的思路。

1.利用Matlab,設(shè)計(jì)好游戲的GUI界面;(我用的是Matlab2012b版本,輸入guide即可打開)

2.代碼中對(duì)應(yīng)了2個(gè)按鈕,第1個(gè)是“開始游戲”,第2個(gè)是“猜”。我需要針對(duì)這兩個(gè)按鈕分別設(shè)定相應(yīng)的代碼操作。

2.1開始游戲

隨機(jī)生成一個(gè)不重復(fù)的四位數(shù),這個(gè)可以利用randperm函數(shù)實(shí)現(xiàn)(感興趣的可以看我后面放的代碼下載鏈接)。

由于這個(gè)四位數(shù)后面一直需要用上,所以需要申明全局變量,可以用global來(lái)實(shí)現(xiàn)。

另外,因?yàn)椴聹y(cè)次數(shù)上限為7次,所以這里我另外定義了一個(gè)猜測(cè)次數(shù)的全局變量。

2.2猜

讀取用戶猜測(cè)的四位數(shù),利用自己編寫的函數(shù)XAYB_calculate.m,對(duì)比這兩個(gè)四位數(shù),返回“XAYB”的字符串,同時(shí),猜測(cè)次數(shù)+1。

將每次猜測(cè)的結(jié)果,匯總為一個(gè)長(zhǎng)的字符串,填入下面的listbox。

當(dāng)猜測(cè)次數(shù)超過(guò)7次時(shí),顯示“游戲失敗”。

當(dāng)猜測(cè)次數(shù)在7次以內(nèi)猜對(duì)時(shí),顯示“游戲成功”。

以上就是代碼的全部思路,第一次發(fā)文希望小伙伴們多多支持。

所有資源的下載鏈接請(qǐng)進(jìn)入全部Matlab的GUI代碼(不是免費(fèi),希望能給一些支持,都是我自己編寫的;如果我的思路能給你們一些啟發(fā)那也是好的)。小伙伴們?nèi)绻胱约夯谶@個(gè)進(jìn)行修改也是可以的,只需要用Matlab的guide打開test05.fig,即可自行設(shè)置GUI界面,再編寫對(duì)應(yīng)的test05.m文件即可。歡迎各位在下面留言討論!

總結(jié)

以上是生活随笔為你收集整理的Matlab猜数字游戏GUI界面设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。