你敢信?清華畢業(yè)大佬用了一個(gè)坦克大戰(zhàn)項(xiàng)目就講完了23種設(shè)計(jì)模式
坦克大戰(zhàn)
一、需求分析
坦克大戰(zhàn)中有我方坦克和敵方坦克,我方坦克有一個(gè),敵方坦克有多個(gè)。坦克可以移動(dòng),也可以發(fā)射子彈。我方坦克可以通過(guò)上下左右鍵來(lái)控制方向,敵方坦克自動(dòng)改變方向。在游戲窗體中有障礙物,包括磚墻、鋼墻、水墻和草地。坦克可以穿過(guò)草地,在遇到其他障礙物時(shí),我方坦克停止移動(dòng),并通過(guò)操縱改變方向再移動(dòng),敵方坦克遇到其他障礙物時(shí)可以自動(dòng)的改變方向。我方坦克有三次生命值,當(dāng)與敵方坦克或敵方子彈相撞時(shí),生命值減- -, 當(dāng)生命值是零時(shí),敵方勝利,游戲結(jié)束。敵方坦克的生命值為-一,當(dāng)敵方坦克與我方坦克或者我方子彈相遇就消失,同時(shí)我方子彈也消失,并產(chǎn)生爆炸。當(dāng)我方坦克把敵方坦克消滅完后,我方勝利,游戲結(jié)束。敵方子彈或我方子彈擊中老巢,游戲結(jié)束。
二、程序設(shè)計(jì)
采用面向?qū)ο蟮脑O(shè)計(jì)方法,項(xiàng)目中有以下類:
主窗體: GameForm, 游戲的主窗體。
坦克:父類坦克(Tank)、 我方坦克(MyTank)、 敵方坦克( EnemyTank)。
墻:父類墻(Wall)、磚墻(BrickWall)、剛墻( SteelWall)、水墻( WaterWall)、
草地(MeadoeWall)。
子彈:父類子彈(Bullet)、 我方子彈(MyBullet)、敵方坦克(EnemyBullet)。
老巢: Home
火花: Spark, 子彈與墻碰撞產(chǎn)生火花。
爆炸: Blast, 子彈與坦克和老巢碰撞產(chǎn)生爆炸。
坦克大戰(zhàn)項(xiàng)目目錄:

視頻教程:


















23種設(shè)計(jì)模式
目錄?創(chuàng)建型?
1.?Factory?Method(工廠方法)
?2.?Abstract?Factory(抽象工廠)
?3.?Builder(建造者)
?4.?Prototype(原型)
?5.?Singleton(單例)?結(jié)構(gòu)型?
6.?Adapter?Class/Object(適配器)
?7.?Bridge(橋接)?
8.?Composite(組合)?
9.?Decorator(裝飾)?
10.?Facade(外觀)?
11.?Flyweight(享元)
?12.?Proxy(代理)?行為型?
13.?Interpreter(解釋器)?
14.?Template?Method(模板方法)?
15.?Chain?of?Responsibility(責(zé)任鏈)
?16.?Command(命令)
?17.?Iterator(迭代器)?
18.?Mediator(中介者)
?19.?Memento(備忘錄)
?20.?Observer(觀察者)
?21.?State(狀態(tài))
?22.?Strategy(策略)?
23.?Visitor(訪問(wèn)者)
在Java開(kāi)發(fā)中,坦克大戰(zhàn)項(xiàng)目和23種設(shè)計(jì)模式無(wú)疑是經(jīng)典中的經(jīng)典,就算是開(kāi)發(fā)5年甚至是10年以上的開(kāi)發(fā)者,都不敢說(shuō)自己真真實(shí)實(shí)掌握了23種設(shè)計(jì)模式,希望大家能夠好好學(xué)習(xí),并且能夠掌握這些細(xì)節(jié)性的東西。
由于內(nèi)容實(shí)在是太多了,小編就不多做介紹了,這個(gè)是小編整理的Java坦克大戰(zhàn)項(xiàng)目視頻和pdf文檔,大家需要的話就可以轉(zhuǎn)發(fā)關(guān)注小編,私信小編“學(xué)習(xí)”來(lái)獲取了。