基于nc中介組織的生命游戲的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于nc中介組織的生命游戲的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于nc中介組織的生命游戲的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于nc中介組織的生命游戲的設(shè)計(jì)與實(shí)現(xiàn)

1.總結(jié)1.1數(shù)學(xué)游戲的起源生命之游戲是20世紀(jì)70年代由英國(guó)哲學(xué)家約翰dynamitoncough和其他人開發(fā)的數(shù)學(xué)游戲。該游戲最先在《科學(xué)美國(guó)人》雜志上被提出。生命游戲是一個(gè)零玩家游戲,其原理是細(xì)胞自動(dòng)機(jī)。1.2細(xì)胞不同的人1)當(dāng)一個(gè)細(xì)胞周圍的8個(gè)格子里正好有3個(gè)細(xì)胞生存,則該細(xì)胞也能生存(假如該細(xì)胞原來死亡,現(xiàn)在就能生存,假如該細(xì)胞原來生存,現(xiàn)在繼續(xù)生存)。2)當(dāng)一個(gè)細(xì)胞周圍的8個(gè)格子里正好有2個(gè)細(xì)胞生存,則該細(xì)胞保持不變(假如該細(xì)胞原來死亡,現(xiàn)在繼續(xù)死亡,假如該細(xì)胞原來生存,現(xiàn)在繼續(xù)生存)。3)其余情況,該細(xì)胞皆死亡。1.3生命游戲模塊系統(tǒng)模塊由以下幾個(gè)部分構(gòu)成:核心算法與Ncurses圖形化界面。其中核心算法部分包含了初始化,更新狀態(tài),計(jì)算存活鄰居數(shù)目,輸出,執(zhí)行這五大模塊。當(dāng)程序運(yùn)行時(shí),用戶通過選擇一種生命游戲的模式,從而開始游戲。系統(tǒng)通過核心算法的計(jì)算檢測(cè)每一個(gè)位置的狀態(tài),之后在重新刷新時(shí),更新細(xì)胞的狀態(tài)。2.關(guān)鍵模塊的設(shè)計(jì)2.1生命生命的模擬過程初始化模塊預(yù)先設(shè)置了6種初始模式,用戶可以選擇其中的某一種模式開始模擬生命生長(zhǎng)的過程。初始化模塊按照選擇的某一種模式設(shè)置初始存活的細(xì)胞,其余的細(xì)胞皆設(shè)置為死亡狀態(tài)。初始化模塊主要通過initiate函數(shù)實(shí)現(xiàn)。2.2細(xì)胞結(jié)構(gòu)體pe該模塊中,對(duì)于每一個(gè)細(xì)胞,系統(tǒng)計(jì)算出其周圍8個(gè)細(xì)胞的狀態(tài),并把統(tǒng)計(jì)出的狀態(tài)存入cell類型的結(jié)構(gòu)體中。其中cell結(jié)構(gòu)體是由以下幾部分構(gòu)成:當(dāng)前位置的橫坐標(biāo),縱坐標(biāo),判斷細(xì)胞是否存活的標(biāo)志,判斷細(xì)胞下一時(shí)刻是否存活的標(biāo)志,以及該細(xì)胞周圍的存活細(xì)胞個(gè)數(shù)。該模塊通過實(shí)現(xiàn)count_neighbours函數(shù)實(shí)現(xiàn)。2.3細(xì)胞狀態(tài)的變化該模塊中,當(dāng)系統(tǒng)下一個(gè)時(shí)間點(diǎn)刷新界面時(shí),系統(tǒng)通過查看cell結(jié)構(gòu)體內(nèi)的鄰居的狀態(tài)來決定當(dāng)前細(xì)胞是否存活,并更新當(dāng)前細(xì)胞的狀態(tài)。該模塊通過實(shí)現(xiàn)get_new_state函數(shù)實(shí)現(xiàn)。2.4模型單元的設(shè)計(jì)輸出模塊主要是利用ncurses圖形庫進(jìn)行繪制圖形。該模塊通過實(shí)現(xiàn)print函數(shù)實(shí)現(xiàn)。2.5執(zhí)行模塊設(shè)計(jì)執(zhí)行模塊是系統(tǒng)的重要組成部分,該模塊通過調(diào)用其他模塊實(shí)現(xiàn)算法。該模塊通過實(shí)現(xiàn)execute函數(shù)實(shí)現(xiàn)。3.圖的實(shí)現(xiàn)3.1ncuses圖形庫Ncurses是開源的圖形庫,遵循GNU協(xié)議,最早由美國(guó)伯克利大學(xué)的兩人編寫,進(jìn)行一個(gè)游戲的圖形界面顯示。之后貝爾實(shí)驗(yàn)室的工作人員又在此基礎(chǔ)上重寫了該圖形庫。Ncurses被廣泛地運(yùn)用在Linux圖形編程。著名的Linux下的瀏覽器w3w就是采用ncurses圖形庫編寫。另外,在Windows環(huán)境中也有類似的圖形庫pcurses,同樣也是由貝爾實(shí)驗(yàn)室開發(fā)。3.2使用rcus在該系統(tǒng)中,ncurses被運(yùn)用來創(chuàng)建系統(tǒng)的圖形界面,包括供用戶選擇的選項(xiàng),可以切換的面板,菜單項(xiàng)目,和輸出字符串。3.2init/分離窗口init_menu函數(shù)運(yùn)用于初始化菜單,即顯示設(shè)置的幾種模式以供用戶選擇模擬。于此對(duì)應(yīng)的是clear_menu函數(shù),當(dāng)程序需要銷毀菜單時(shí),該函數(shù)即被調(diào)用。init_wins函數(shù)用于初始化窗口,在本系統(tǒng)中,由兩個(gè)窗口,分別是用戶選擇模式的窗口和模擬過程的窗口,正如圖2所示。在Ncurses中,窗口的建立是通過調(diào)用newwin方法實(shí)現(xiàn)的。窗口的顯示出了需要調(diào)用init_wins外還需要調(diào)用win_show函數(shù),該函數(shù)負(fù)責(zé)顯示已經(jīng)創(chuàng)建好的窗口。在程序運(yùn)行結(jié)束時(shí),需要調(diào)用clear_menu和endwin來清除菜單和窗口。4.細(xì)胞發(fā)展變化模擬本文就一經(jīng)典的數(shù)學(xué)游戲問題提出了程序的解決方案,從構(gòu)建模型到具體實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論