结对编程----五子棋游戏
需求分析:
五子棋定義:
? ? ?《五子棋》是一款簡(jiǎn)單的五子棋小游戲,界面十分干凈,而且具有多人作戰(zhàn)以及戰(zhàn)果記錄等功能。五子棋的玩法把自己的棋子在橫、豎、斜任意一個(gè)方向上連續(xù)排滿(mǎn)5個(gè)就算贏。
五子棋:
功能:
- ? 棋盤(pán),輸贏判斷算法。
- ? 能實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)戰(zhàn)。
?
結(jié)對(duì)編程概述:
定義:
? ? ? 結(jié)對(duì)編程技術(shù)是指兩位程序員坐在同一工作臺(tái)前開(kāi)發(fā)軟件。與兩位程序員各自獨(dú)立工作相比,結(jié)對(duì)編程能編寫(xiě)出質(zhì)量更高的代碼。
概述:
? ? ? 結(jié)對(duì)編程技術(shù)是一個(gè)非常簡(jiǎn)單和直觀的概念,能達(dá)到事半功倍的工作效果。但是,人與人之間的合作不是一件簡(jiǎn)單的事情——尤其當(dāng)人們都早已習(xí)慣了獨(dú)自工作的時(shí)候。實(shí)施結(jié)對(duì)編程技術(shù)將給軟件項(xiàng)目的開(kāi)發(fā)工作帶來(lái)好處,只是這些好處必須經(jīng)過(guò)縝密的思考和計(jì)劃才能真正體現(xiàn)出來(lái)。而另一方面,兩個(gè)有經(jīng)驗(yàn)的人可能會(huì)發(fā)現(xiàn)配對(duì)編程里沒(méi)有什么技能的轉(zhuǎn)移,但是讓他們?cè)诓煌某橄髮哟谓鉀Q同一個(gè)問(wèn)題會(huì)讓他們更快地找到解決方案,而且錯(cuò)誤更少。
兩個(gè)程序員具有相同的缺點(diǎn)和盲點(diǎn)的可能性很小,所以當(dāng)我們采用結(jié)對(duì)編程的時(shí)候會(huì)獲得一個(gè)強(qiáng)大的解決方案。而這個(gè)解決方案恰恰是其它軟件工程方法學(xué)中所沒(méi)有的。 在我們平時(shí)的編程當(dāng)中,如果遇到一個(gè)非常難解決的問(wèn)題(困難到對(duì)該項(xiàng)目產(chǎn)生厭煩的態(tài)度),那么你勢(shì)必會(huì)希望錄求幫助,無(wú)論是從信息量龐大的網(wǎng)上,還是從身邊的技術(shù)大師那里,你都會(huì)努力去解決(前提是你有對(duì)計(jì)算機(jī)知識(shí)的熱愛(ài))。這個(gè)時(shí)候不妨采用結(jié)對(duì)編程試一下,其它的不說(shuō),可能感覺(jué)就不同。 為什么要結(jié)對(duì)編程?? ? 每人在各自獨(dú)立設(shè)計(jì)、實(shí)現(xiàn)軟件的過(guò)程中不免要犯這樣那樣的錯(cuò)誤。在結(jié)對(duì)編程中,因?yàn)橛须S時(shí)的復(fù)審和交流,程序各方面的質(zhì)量取決于一對(duì)程序員中各方面水平較高的那一位。這樣,程序中的錯(cuò)誤就會(huì)少得多,程序的初始質(zhì)量會(huì)高很多,這樣會(huì)省下很多以后修改、測(cè)試的時(shí)間。具體地說(shuō),結(jié)對(duì)編程有如下的好處:
? ? ? ? ? ? ? (1)在開(kāi)發(fā)層次,結(jié)對(duì)編程能提供更好的設(shè)計(jì)質(zhì)量和代碼質(zhì)量,兩人合作能有更強(qiáng)的解決問(wèn)題的能力。
? ? ? ? ? ? ? (2)對(duì)開(kāi)發(fā)人員自身來(lái)說(shuō),結(jié)對(duì)工作能帶來(lái)更多的信心,高質(zhì)量的產(chǎn)出能帶來(lái)更高的滿(mǎn)足感。
? ? ? ? ? ? ? (3)在心理上,? 當(dāng)有另一個(gè)人在你身邊和你緊密配合, 做同樣一件事情的時(shí)候,? 你不好意思開(kāi)小差, 也不好意思糊弄。
? ? ? ? ? ? ? (4)在企業(yè)管理層次上,結(jié)對(duì)能更有效地交流,相互學(xué)習(xí)和傳遞經(jīng)驗(yàn),能更好地處理人員流動(dòng)。因?yàn)橐粋€(gè)人的知識(shí)已經(jīng)被其他人共享。
? ? ? ? ? ? ? 總之,如果運(yùn)用得當(dāng),結(jié)對(duì)編程能得到更高的投入產(chǎn)出比(Return of Investment)。
結(jié)對(duì)編程的角色分配:
? ? ?結(jié)對(duì)編程中有兩個(gè)角色:
? ? ? ? ? (a)駕駛員(Driver)是控制鍵盤(pán)輸入的人。
? ? ? ? ? (b)領(lǐng)航員(Navigator)起到領(lǐng)航、提醒的作用。
這兩個(gè)角色是可以互換的。和現(xiàn)實(shí)生活中的例子類(lèi)似,一個(gè)人負(fù)責(zé)具體的執(zhí)行(駕駛,用鍵盤(pán)編輯程序等),另一人負(fù)責(zé)導(dǎo)航、檢查、掩護(hù)等。
正式編寫(xiě):
代碼編寫(xiě)規(guī)范:
1. 類(lèi)名首字母應(yīng)該大寫(xiě)。屬性(成員變量)、方法、對(duì)象變量以及所有標(biāo)識(shí)符(如形式參
? ? 數(shù)、實(shí)際參數(shù)、局部變量)的首字母應(yīng)小寫(xiě),其中包含的所有單詞都應(yīng)緊靠在一起,而
? ?且大寫(xiě)中間單詞的首字母。
? ? ? ?例如:類(lèi)名:HomeWorkClass ?屬性或方法名:homeWorkClass
2. Java 包(Package)屬于一種特殊情況,它們?nèi)际切?xiě)字母,即便中間的單詞亦是如
? ? 此。對(duì)于全局包,將你的 Internet 域名反轉(zhuǎn)并接上包名,
? ? ? ?例如:cn.qilu.homework
3. 接口(Interface):采用完整的英文描述符說(shuō)明接口封裝,所有單詞的第一個(gè)字母大
? ? 寫(xiě)。習(xí)慣上,名字后面加上后綴 able, ible 或者 er。
? ? ? ?例如:Contactable,Prompter。
4. 組件(Component)使用完整的英文描述來(lái)說(shuō)明組件的用途,末端應(yīng)接上組件類(lèi)型,并且應(yīng)以駝峰法命名。
? ? ? ?例如:okButton,customerList,fileMenu。
5. 類(lèi)中常用方法的命名:
? ? ? ?(1)類(lèi)的獲取方法(一般具有返回值)一般要求被方法名使用被訪問(wèn)字段名,前面加上
? ? ? ? ? ?前綴get,如getFirstName(), getLastName()。
? ? ? ?(2) ?類(lèi)的布爾型的判斷方法一般要求方法名使用單詞 is 做前綴,如isPersistent(),
? ? ? ? ? ? isString()。或者使用具有邏輯意義的單詞,例如equal 或equals
? ? ? ?(3)類(lèi)的設(shè)置方法(一般返回類(lèi)型為void):被訪問(wèn)字段名的前面加上前綴 set,如
? ? ? ? ? setFirstName(),setLastName()。
? ? ? ?(4)類(lèi)的普通方法一般采用完整的英文描述說(shuō)明成員方法功能,第一個(gè)單詞盡可能采用
? ? ? ? ? 一個(gè)生動(dòng)的動(dòng)詞,第一個(gè)字母小寫(xiě),如 openFile(), addAccount()。
6. ?靜態(tài)常量字段(static final)一般全部采用大寫(xiě)字母,單詞之間用下劃線分隔
? ? ? ?例如: HOME_WORK
駕駛員和領(lǐng)航員的角色互換過(guò)程:
? ? 1. 棋盤(pán)界面設(shè)計(jì):?
? ? ?領(lǐng)航員: 周曉紅
? ? ?駕駛員: 張琦霞
? ? 2 輸贏判斷規(guī)則算法:
? ? ?領(lǐng)航員: 張琦霞
? ? ?駕駛員: 周曉紅
? ? ?3 輸贏提示彈窗:
? ? ?領(lǐng)航員 :周曉紅
? ? ?駕駛員: 張琦霞
?
?
心得體會(huì):
結(jié)對(duì)編程確實(shí)有很多優(yōu)點(diǎn)
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zxhong/p/4818105.html
總結(jié)
以上是生活随笔為你收集整理的结对编程----五子棋游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenSim教程四——在人体肌骨模型中
- 下一篇: 亚马逊的选品规则——新手必看