




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
124點游戲的開發(fā)和實現(xiàn)摘要:近年來,隨著經(jīng)濟的日益發(fā)展,人們的生活水平不斷提高,生活質(zhì)量也在漸漸的改善。適當?shù)膴蕵酚螒驅(qū)θ藗兊臉I(yè)余生活是不可必缺的。說到娛樂游戲,人們可能會想到網(wǎng)絡(luò)上許許多多讓人迷戀的網(wǎng)絡(luò)游戲,比如說,傳奇,奇跡,cs等等。是的,的確這些游戲給人們的業(yè)余生活添加了很多樂趣。借鑒網(wǎng)上的邊鋒游戲,我用vc+開發(fā)設(shè)計了24點游戲的實現(xiàn)算法,并在windows圖形環(huán)境下設(shè)計出一個人機交互的游戲系統(tǒng)(類似于紙牌游戲)。關(guān)鍵詞:窮舉法棧遞歸函數(shù)Thedevelopmentandrealizationof24piontsgameAbstract:Recently,withthedevelopmentofeconomic,thepeopleslifebecomesbetterandbetter,lifeconditionalsoisimprovingmoreandmore.Properrecreationisindispensableinthepeoplespasttimelife.Mentionedtothegame,peoplemayassociatemanyfascinatedonlinegames,suchasLegend,MU,CSandsoon.Certainly,thesegamesenrichpeopleslifewithmoreandmorejoys.Usingthewinggameforreference,Idevelopedanddesignedtherealizationarithmeticof24pointsgame.NextIdesignedahuman-computeralternantgamesystem(similartocardgame).Keyword:enumeratingmethodstackrecursivefunction2124點游戲算法實現(xiàn)1.124點游戲簡介要開發(fā)一個游戲不是那么容易的,哪怕是簡單的算術(shù)游戲。要是沒有一定的專業(yè)知識,沒有一定的思維能力是不行的。24點游戲是一個傳統(tǒng)的算術(shù)游戲,其游戲之精髓就是考驗人腦的反應能力。所謂24點游戲,就是通過加,減,乘,除4則運算,將給定的4個整數(shù)算出24。當然,傳統(tǒng)的紙牌游戲其數(shù)字是有限定范圍的,一般是從1到13。經(jīng)統(tǒng)計,當算的目標數(shù)把24改為2的時候,獨立解數(shù)更多,就是解的形式趣于集中化,大多數(shù)最后一步用減法(如:2*8-3*5)。游戲時會感到單調(diào)。由于24的因數(shù)多,解的形式就豐富,能充分發(fā)掘游戲者數(shù)學發(fā)散思維能力。要做好一個簡單的24點游戲要具備很多知識。其中最主要的思想就是,24點的表達式要怎樣行成,這是此游戲的關(guān)鍵。而要做一個完美的24點紙牌游戲,則需要的知識將會更多?,F(xiàn)今,網(wǎng)絡(luò)上的紙牌游戲數(shù)不甚數(shù),比較出名的有聯(lián)眾游戲,邊鋒游戲,qq游戲。當然,他們的開發(fā)隊伍龐大之極不是我們個人可以比及的。因此要一個人做好一個比較完美的游戲,是需要一定的游戲天分。以下我就開發(fā)24點游戲的幾個關(guān)鍵算法和分析做詳細的剖析。1.224點游戲的算法1.2.124點算法(1)24點游戲的算法,其中最主要的思想就是窮舉法。所謂窮舉法就是列出4個數(shù)字加減乘除的各種可能性,包括括號的算法。我們可以將表達式分成以下幾種:首先我們將4個數(shù)設(shè)為a,b,c,d,,其中算術(shù)符號有+,*,/,(,)。其中有效的表達式有a*(b-c/b),a*b-c*d,等等。列出所有有效的表達式。其中我們用枚舉類型將符號定義成數(shù)字常量,比如用1表示+,2表示-等。如下是我對窮舉法的一種編程語言。在編程的頭部要對變量做下定義。其中a,b,c,d的范圍是1到13。因為傳統(tǒng)的24點游戲是紙牌游戲,而紙牌游戲的數(shù)字就是從1到13,其中a是1,K是13,Q是12,J是11,其他的就是牌面的數(shù)字。這就需要在定義變量的時候要有限制。在vc+中的MFC編程中,在定義控件的變量范圍可以直接填寫變量的最大和最小,在此編程中的最大是13,最小是1。這就給編程寫語句帶3來了方便(因為其自動會生成語句)。下面我介紹下窮舉法的主要實現(xiàn),我們知道要實現(xiàn)24點的算法,就是通過4個數(shù)字,4個運算符號和2對括號(最多為2對),通過各種組合判斷其結(jié)果是否為24。我們用a,b,c,d代替4個數(shù)字。考慮每種可能,總的算法就有7種可能。分別為:1,沒括號的(形如a*b*c*d);2有括號的(形如(a*b)*c*d);3有括號的(形如(a*b*c)*d);4有括號的(形如a*(b*c)*d);5有括號的(形如(a*b)*(c*d));6有括號的(形如(a*b)*c)*d);7有括號的(形如(a*(b*c)*d)。接下來就是對每一種進行分析判斷。我們拿2種情況做為例子,一種是沒括號的,一種有括號的。先拿沒括號的分析。我們知道沒括號的式子包括其運算符和數(shù)字總共為7個(3個運算符,4個數(shù)字),于是我們定義一個數(shù)組,用于存放運算符和數(shù)字。運算符我們可以用枚舉變量來定義,首先我們通過循環(huán)語句形成一個表達式子(但這個表達式的運算循序是亂的)。表達式子有很多種情況,利用循環(huán)語句我們可以一一將其寫出,例如(a+b+c+d,a+b+c-d,a+b+c*d,a+b+c/d.等等)生成表達式子的后,接著就是判別運算順序。在沒有括號存在的情況下,我們令其先運算*,/。這個順序的選擇很輕松,我們可以定義一個bool類型的函數(shù),我們對數(shù)組進行掃描,當掃描到/,*,其返回真值,就直接進行運算。依次照樣進行掃描,當所有的/,*運算都進行為止,接著將/,*運算生成的結(jié)果合并棧(即將運算的結(jié)果放在一個變量中),接著就對其與下一個數(shù)字進行運算,直到所有的值都計算出來了,最后將最后運算結(jié)果放于一個變量中。我們將這個變量的值和24相減,假如其值是在1E-6之外,則說明此運算式能計算出24。接下來我們來做第2種有括號的算法,有括號的算法和沒括號的算法就是在判斷運算循序的時候有所差別。我們知道,括號就是用來改變運算順序而添加的。判斷括號的先后順序,我們同樣可以用一個bool類型的函數(shù)來判別,在生成表達式要判斷其運算順序時,我們首先掃描表達式存放的數(shù)組,假如掃描到左括號,則將先對左括號后面的式子進行運算,接著在是對/,*的優(yōu)先級進行計算。在第2種(形如(a*b)*c*d)的情況下,我們先將a,b先進行運算,生成其值,并將結(jié)果存放與另一個變量中,接著將得到的初步結(jié)果和c和d進行運算,最后得到總的結(jié)果。將其總結(jié)果和24相減,若其值小于1E-6則說明此表達式能算出24。接下來幾種有括號的算法和第2種情況類似,我們不做詳細的說明。以上就是窮舉法的基本實現(xiàn)算法。41.2.224點游戲算法(2)24點游戲的算法各種各樣,各有千秋,現(xiàn)在讓我們來討論另一種24點游戲算法。此算法是在dos下實現(xiàn)的,但其思想明確,語句簡短。其主要思想是簡化算法,他將24點的算法排序分成如下幾種,如下我們用a,b來代替變量。他將其分成如下6種情況,分別是a+b,a-b,b-a,a*b,a/b,b/a這6種情況,我們知道a+b和b+a是一樣的,a*b和b*a是一樣的。這樣就可以省去2種算法。提高系統(tǒng)的使用效率,內(nèi)存占用量小。還有其第2個思想是在判別24點正確與否的時候,采用了與24點相減絕對直在1E-6之外則判別其為正確,這就給運算帶來了精確度,就如5551等的數(shù)字也可以輕松算出,不會略過了。如下我們通過一段程序來看看其主程序段。boolSearch(intn)if(n=1)if(fabs(number0-NUMBER_TO_CAL)PRECISION)coutexpression0endl;returntrue;elsereturnfalse;for(inti=0;in;i+)for(intj=i+1;jn;j+)doublea,b;stringexpa,expb;a=numberi;b=numberj;numberj=numbern-1;expa=expressioni;expb=expressionj;express
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030高模量纖維行業(yè)發(fā)展分析及前景趨勢與投資研究報告
- 2025-2030紙尿褲產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢與投資前景預測報告
- 2025-2030刺繡工藝品行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資研究報告
- 2025-2030中國酶促生物柴油市場盈利模式與營銷發(fā)展策略分析研究報告
- 2025-2030中國航空勘探行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資風險預測研究報告
- 2025-2030中國耐熱植酸酶市場未來趨勢及當前競爭對手調(diào)研研究報告
- 2025-2030中國穿戴式驅(qū)蟲劑消耗行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國直焊縫鋼管市場競爭態(tài)勢及未來需求前景研究研究報告
- 2025-2030中國植物蛋白飲料行業(yè)發(fā)展分析及發(fā)展趨勢與投資前景預測研究報告
- 2025-2030中國機械蒸汽減壓(MVR)壓縮機行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 冠狀動脈造影健康宣教
- 碳酸鹽巖的成巖作用課件
- 消防內(nèi)務(wù)條令全文文檔
- 新版MACSV系統(tǒng)手冊
- 全國優(yōu)質(zhì)課一等獎初中音樂《姹紫嫣紅》課件
- 智慧養(yǎng)老服務(wù)平臺建設(shè)投標方案(技術(shù)方案)
- 科倫員工手冊
- 學校食堂飲食保障供餐應急預案
- 心理健康教育課件《高三學生心理輔導之跨越高原期》
- 《傳統(tǒng)紋樣》課程標準
- 西師大版數(shù)學五年級上冊全冊完整版教案教學設(shè)計
評論
0/150
提交評論