資源描述:
《指導(dǎo)教授莊裕澤教授》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、DISProjectLPUSHINGICECUBEPUSHINGICECUBE指導(dǎo)教授莊裕澤教授蔡益坤教授第十二組資管所碩一R92725009吳書福資管所碩一R92725040黃子龍動(dòng)機(jī)與目標(biāo)>增加1專案開(kāi)發(fā)時(shí)的樂(lè)趣在選擇專案的題目時(shí),我們兩位組員經(jīng)過(guò)不斷的討論'最後決定開(kāi)發(fā)-款小遊戲,藉由開(kāi)發(fā)好玩的遊戲,增添專案開(kāi)發(fā)的樂(lè)趣,讓整個(gè)專案的開(kāi)發(fā)過(guò)程不再是那麼的枯燥、乏味。>熟悉的遊戲流程我們選擇的遊戲'在任天堂遊戲屮'是於一款人人都聽(tīng)過(guò),玩過(guò)的遊戲'遊戲的規(guī)則不複雜'一般人只要經(jīng)過(guò)一兩次的訓(xùn)練'就能順利的牌
2、動(dòng)遊戲,在網(wǎng)路上尋找喜歡玩的玩家一起來(lái)對(duì)戰(zhàn)。我們小組組員覺(jué)得,這樣的一款遊戲,適合三五好友平常打發(fā)時(shí)間,實(shí)用性、娛樂(lè)性都會(huì)很高。簡(jiǎn)單的遊戲操作玩家啓動(dòng)遊戲後,只要單純的使用「上、下、左、右」,四個(gè)方向鍵,移動(dòng)畫面屮的角色,沒(méi)有複雜的操作指令,對(duì)於玩家而言,可以很快上手,對(duì)我們開(kāi)發(fā)者而言,也可以用較少的時(shí)間開(kāi)發(fā)遊戲,把部分的精力用於撰寫、處理網(wǎng)路問(wèn)題,容錯(cuò)、擴(kuò)充性等等較進(jìn)階的問(wèn)題。目標(biāo)>體會(huì)分散式系統(tǒng)程式設(shè)計(jì)之重點(diǎn)因爲(wèi)我們選擇開(kāi)發(fā)的是一款小遊戲,改寫原有的單機(jī)版的遊戲,變成可以在網(wǎng)路上對(duì)戰(zhàn)的網(wǎng)路遊戲,藉由實(shí)
3、際的開(kāi)發(fā)出一個(gè)網(wǎng)路遊戲,可以讓我們小組組員在處理網(wǎng)路問(wèn)題,各玩家之間的問(wèn)題,體會(huì)到分散式系統(tǒng)程式設(shè)計(jì)中'需要考慮的種種問(wèn)題。學(xué)習(xí)設(shè)計(jì)遊戲類型程式的使用者介面這是我們兩位組員笫一次撰寫遊戲的程式,我們也希望能從屮學(xué)到遊戲的程式設(shè)計(jì)的相關(guān)技巧和能力。>增加團(tuán)隊(duì)合作及專案管理之經(jīng)驗(yàn)我們也希望從這次的專案開(kāi)發(fā)的過(guò)程,學(xué)到團(tuán)隊(duì)之間如何協(xié)調(diào)、合作等等的議題'培養(yǎng)以後參與大型專案開(kāi)發(fā)的能力和經(jīng)驗(yàn)'學(xué)到專案管理的學(xué)問(wèn)和技巧。遊戲內(nèi)容遊戲方式/遊戲採(cǎi)取回合制/每一回合結(jié)朿才能再開(kāi)始下一場(chǎng)的比場(chǎng)遊戲人數(shù)/人數(shù)最少爲(wèi)兩人,不設(shè)
4、上限/決定好參加的玩家人數(shù)之後即可以開(kāi)始一場(chǎng)比賽遊戲操作/玩家利用「上、下、左、右」鍵來(lái)移動(dòng)所操控的角色/玩家可以透過(guò)推動(dòng)一塊冰塊來(lái)壓死路徑上的一位敵人/被冰塊壓到的玩家會(huì)被判定出局,喪失繼續(xù)比賽的資格遊戲終止/畫面上最後剩下的那一位玩家即爲(wèi)贏家/或者是全部的使用者退出比賽,比賽即宣告結(jié)朿遊戲畫面遊戲流程開(kāi)啓本程式自己開(kāi)一局等別人加加入別人開(kāi)的局Server決定遊戲開(kāi)始Server初始遊戲地圖並傳給所有玩家No遊戲給束【說(shuō)明】1.程式執(zhí)行之後,先檢查是否已經(jīng)有人已開(kāi)好遊戲等待玩家加入2.玩家可以選擇加入他
5、人開(kāi)啓的遊戲(若有存在的話),或者自己新開(kāi)一局3.開(kāi)局的人可以決定何時(shí)開(kāi)始遊戲4.遊戲過(guò)程屮若有任何玩家不正常離線,並不會(huì)影響遊戲的進(jìn)行,剩下可以正常運(yùn)作的玩家可以繼續(xù)玩5.當(dāng)某一方消滅完所有的敵人之後,這一局便算是結(jié)朿了6.或者是當(dāng)?shù)貓D中沒(méi)有冰塊了'遊戲也算是結(jié)朿7.玩家可以選擇繼續(xù)玩或者離開(kāi)遊戲遊戲架構(gòu)在程式啓動(dòng)的?-開(kāi)始,所有的電腦都可以選擇加入別人開(kāi)的局或自己新開(kāi)一局等待別人加入,當(dāng)某位玩家按下「Create」鍵時(shí),它就會(huì)成爲(wèi)rServerj,接受其他玩家的連線要求。AClientServer具有
6、決定遊戲何時(shí)開(kāi)始的權(quán)秋Server也有參與本局遊戲)。當(dāng)Server決定遊戲開(kāi)始之後,就會(huì)隨機(jī)產(chǎn)生遊戲地圖,然後將此地圖以及所有玩家的資訊傳給所有參加者。AClientClient在遊戲的進(jìn)行過(guò)程中,因爲(wèi)每一位玩家都有其他玩家的資訊,所以關(guān)於遊戲操作的訊息就可以在玩家之間互相傳遞,而不必再透過(guò)Server來(lái)broadcast°ServerClient?在遊戲的進(jìn)行中,Client要定期送訊息給Server,讓Server能知道Client仍然是正常運(yùn)作中的。?若有某一臺(tái)參加遊戲的Client未在固定的時(shí)間
7、內(nèi)傳送訊息給Server?Server會(huì)把這一臺(tái)Client從參加者屮移除,並告訴遊戲其他的參加者,目前剩下哪些玩家,讓它們接下來(lái)只對(duì)那些還活著的玩家送訊息。?若Client在?一段時(shí)間內(nèi)沒(méi)收到Server的訊息,Client會(huì)先Lock住,然後進(jìn)行LeaderElection的動(dòng)作,選出另一臺(tái)Server來(lái)負(fù)責(zé)上述的工作。?新選出來(lái)的Server,會(huì)告知其它還存活的Client它是新的Server(Leader)之後,遊戲繼續(xù)進(jìn)行。容錯(cuò)的處理ServerFailure?Server和Client定期交換
8、訊息。?若Client在一定期限內(nèi)未收到Server的訊息,遊戲會(huì)先lock住。?然後所有存活的Client會(huì)依據(jù)clientjist檢查在自己之前的Client是否有人還活著,若它發(fā)現(xiàn)在自己之前人都沒(méi)有回應(yīng),則它就跳出來(lái)成爲(wèi)新的Server(Leader)並告知所有人這項(xiàng)改變。ClientFailure?Client和Server定期交換訊息。?若Server在一定期限內(nèi)未收到Client的回報(bào)。?Server會(huì)通知其它的C