版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEVIII五子棋興趣小組活動(dòng)教案第一課時(shí)認(rèn)識(shí)五子棋(一)學(xué)習(xí)目標(biāo):認(rèn)識(shí)五子棋棋盤(pán),知道棋盤(pán)是有橫豎各15條平行線(xiàn)交叉組成及棋盤(pán)上的4星1天元;認(rèn)識(shí)五子棋棋子,知道五子棋棋子是黑白225枚子,黑113枚子,白112枚子。學(xué)會(huì)五子棋執(zhí)棋方式。了解五子棋的歷史及比賽的計(jì)時(shí)制。重點(diǎn)、難點(diǎn):認(rèn)識(shí)五子棋棋盤(pán),知道棋盤(pán)是有橫豎各15條平行線(xiàn)交叉組成及棋盤(pán)上的4星1天元;認(rèn)識(shí)五子棋棋子,知道五子棋棋子是黑白225枚子,黑113枚子,白112枚子;學(xué)會(huì)五子棋執(zhí)棋方式。談話(huà)導(dǎo)入。1、同學(xué)們,課前老師讓你們收集并了解有關(guān)五子棋的資料,那誰(shuí)愿意把自己收集到的知識(shí)講給大家聽(tīng)?2、學(xué)生匯報(bào)所收集的資料。3、通過(guò)資料的收集,我們了解了許多五子棋的知識(shí)。二、新課1、五子棋的歷史五子棋是我們中國(guó)發(fā)明的,距離現(xiàn)在已經(jīng)有四千多年的歷史了認(rèn)識(shí)五子棋棋盤(pán)。出示圖1第二課時(shí)認(rèn)識(shí)五子棋(二)(1)生觀(guān)察棋盤(pán),發(fā)現(xiàn)問(wèn)題,提出質(zhì)疑。(2)通過(guò)其他學(xué)生的已有知識(shí)解決問(wèn)題,師補(bǔ)充小結(jié):棋盤(pán)由縱橫各15條等距離、垂直交叉的平行線(xiàn)構(gòu)成,形成225個(gè)交叉點(diǎn)。
以對(duì)局開(kāi)始時(shí)的黑方為準(zhǔn),棋盤(pán)上的縱行線(xiàn)從下向上用阿拉伯?dāng)?shù)字1—15標(biāo)記(注:QQ棋盤(pán)上的數(shù)字則從上向下標(biāo)記),橫行線(xiàn)從左到右用英文字母A--O標(biāo)記,其中H8點(diǎn)為天元;D4、D12、L12、L4四點(diǎn)為星。3、認(rèn)識(shí)棋子。(1)師演示,生直觀(guān):棋子由黑白兩種顏色組成。師補(bǔ)充:共有225個(gè)棋子,與交叉點(diǎn)的個(gè)數(shù)相同;其中黑棋113個(gè),白棋112個(gè),不過(guò)平時(shí)下棋棋子少些也是可以的。(2)正確的執(zhí)棋方式。師演示:是食指的指甲與中指的指肚兒夾住棋子。棋子落在棋盤(pán)的交叉點(diǎn)上,落下后不能移動(dòng)。生執(zhí)棋練習(xí):先從自己的棋盒里拿棋,放到棋盤(pán)上的交叉點(diǎn)上。然后同桌之間比賽,看誰(shuí)拿的快,放的準(zhǔn)。4.了解五子棋比賽計(jì)時(shí)制(一)比賽時(shí)限比賽時(shí)限可分每方30分鐘到5小時(shí)不等,但一般要求一天內(nèi)必須結(jié)束。有些比賽受條件限制,也可采用雙方共用時(shí)限的方法,時(shí)限時(shí)間約是單方時(shí)限的雙倍。雙方共用時(shí)限到時(shí)后,可用限時(shí)走棋(幾分鐘之內(nèi)走完若干手棋)或到時(shí)讀秒的后續(xù)手段,直到該局結(jié)束。讀秒時(shí)限,多采用1分鐘制,凡一著棋用時(shí)不足1分鐘,可不計(jì)時(shí)間,到1分鐘則判負(fù)。(二)遲到時(shí)限比賽前,組織者都會(huì)規(guī)定遲到時(shí)限,一般為15分鐘,每場(chǎng)比賽遲到時(shí)限一到,未到場(chǎng)的棋手均按棄權(quán)判負(fù)。第三課時(shí)五子棋術(shù)語(yǔ)(一)學(xué)習(xí)目標(biāo):1.學(xué)會(huì)術(shù)語(yǔ):陰線(xiàn)、陽(yáng)線(xiàn),猜先、開(kāi)局、著、回合、連五、長(zhǎng)連。2.學(xué)生能夠運(yùn)用所學(xué)術(shù)語(yǔ)進(jìn)行交流或表達(dá)。重點(diǎn)難點(diǎn):學(xué)會(huì)術(shù)語(yǔ)陰線(xiàn)、陽(yáng)線(xiàn)、猜先、開(kāi)局、著、回合、連五、長(zhǎng)連并能夠運(yùn)用所學(xué)術(shù)語(yǔ)進(jìn)行交流或表達(dá)新課1、陽(yáng)線(xiàn)、陰線(xiàn)(圖2)陽(yáng)線(xiàn):棋盤(pán)上可見(jiàn)的橫線(xiàn)和豎線(xiàn)的總稱(chēng)。陰線(xiàn):棋盤(pán)的兩條對(duì)角線(xiàn)及與它們平行的交叉點(diǎn)間不可見(jiàn)斜線(xiàn)的總稱(chēng)。練習(xí):同桌之間在棋盤(pán)上互指陽(yáng)線(xiàn)陰線(xiàn);師再請(qǐng)生到板前指。(圖2)活動(dòng):師示范,生模仿,再請(qǐng)兩生到板前展示。2、著:也稱(chēng)“步”。對(duì)局中,把棋子放到某一交叉點(diǎn)上去,稱(chēng)之為一著棋。3、回合:雙方各走一著,稱(chēng)為一個(gè)回合。4、連五:一條陽(yáng)線(xiàn)或陰線(xiàn)上緊緊相連的同色五枚棋子。(勝棋)5、長(zhǎng)連:一條陽(yáng)線(xiàn)或陰線(xiàn)上緊緊相連的同色六枚或六枚以上棋子。第四課時(shí)五子棋術(shù)語(yǔ)(二)學(xué)習(xí)目標(biāo):1.學(xué)會(huì)術(shù)語(yǔ)四的棋形,即活四,沖四,跳沖四。2.知道如何防守活四、沖四、跳沖四。難點(diǎn)、重點(diǎn):學(xué)會(huì)術(shù)語(yǔ)四的棋形,即活四,沖四,跳沖四;知道如何防守活四、沖四、跳沖四。過(guò)程:導(dǎo)入新課:誰(shuí)能到前面擺一個(gè)五連?:同學(xué)們,要想擺成五,必須先有幾?(四)“四”是連五取勝的前一步,所以研究好棋形“四”很重要。二、棋形“四”這里說(shuō)的“四”是指己方再走一步能夠成五的單一棋形,包括“活四”和“沖四”和“跳沖四”1、“活四”是指在同一條陽(yáng)線(xiàn)或陰線(xiàn)上有兩個(gè)點(diǎn)可以成五的單一棋形。日本也形象的稱(chēng)活四為“棒四”。一旦走出活四,對(duì)方靠阻擋來(lái)防守是沒(méi)有用的,這樣本方都可成五勝了。有兩個(gè)點(diǎn)能形成五的四就是活四。下面圖中的四就是活四,其中A、B兩個(gè)點(diǎn)能形成五??偨Y(jié):說(shuō)說(shuō)你今天學(xué)到了什么?:把學(xué)習(xí)術(shù)語(yǔ)四,將給爸爸媽媽聽(tīng),并和他們下一盤(pán)第五課時(shí)五子棋術(shù)語(yǔ)(三)學(xué)習(xí)目標(biāo):1.學(xué)會(huì)術(shù)語(yǔ)三的棋形,即活三、死三2.知道如何防守活三重點(diǎn)、難點(diǎn):學(xué)會(huì)術(shù)語(yǔ)三的棋形,即活三、死三;知道如何防守活三。教學(xué)內(nèi)容:三分為活三和死三?;钊涸僮咭恢梢孕纬苫钏牡娜钊ㄟB三,跳三兩種。(圖7)連三:在一條陽(yáng)線(xiàn)或陰線(xiàn)上的同色棋子相鄰成一排的活三。跳三:中間隔有一個(gè)空點(diǎn)的活三。死三:對(duì)方有棋子在同一條線(xiàn)相鄰交叉點(diǎn)防守的三。死三包括死連三、死跳三、特形眠三如圖:(死跳三)(死跳三)(眠三)《軟件基礎(chǔ)》大作業(yè)項(xiàng)目名稱(chēng):五子棋游戲?qū)W號(hào):201046820510201046820605姓名:校建林朱穎完成時(shí)間:2011年11月28日指導(dǎo)教師:魯可目錄一需求分析 11.1開(kāi)發(fā)背景 11.2項(xiàng)目目標(biāo)五子棋與游戲開(kāi)發(fā)成員和具體日期完成任務(wù)以及任務(wù)的具體分配....................11.3運(yùn)行環(huán)境…初始化 31.4項(xiàng)目任務(wù)書(shū)主循環(huán)控制模塊 31.5玩家下子 31.6盤(pán)面分析填寫(xiě)棋型表 31.7對(duì)方下子 41.8勝負(fù)判斷 4二技術(shù)線(xiàn)路 42.1采用的軟件及開(kāi)發(fā)平臺(tái)是什么2.2項(xiàng)目的總體方案—包括模塊及模塊間的聯(lián)系、信息流、數(shù)據(jù)流等2.3項(xiàng)目的詳細(xì)設(shè)計(jì)—包括模塊的功能、數(shù)據(jù)結(jié)構(gòu)及算法等2.1技術(shù)線(xiàn)路模塊圖 42.2技術(shù)線(xiàn)路說(shuō)明 5三工程進(jìn)度第三章系統(tǒng)設(shè)計(jì) 53.1流程圖 63.2流程圖說(shuō)明 6四程序測(cè)試分析 74.1階段性測(cè)試4.2總體測(cè)試五個(gè)人總結(jié) 9附錄源代碼 10PAGE13五子棋游戲第一章需求分析1.1開(kāi)發(fā)背景軟件需求分析是軟件開(kāi)發(fā)周期的第一個(gè)階段,也是關(guān)系到軟件開(kāi)發(fā)成敗的關(guān)鍵一步。對(duì)于任何一個(gè)軟件而言,需求分析工作都是至關(guān)重要的一步。只有通過(guò)軟件需求分析,才能把軟件的功能和性能由總體的概念性描述轉(zhuǎn)化為具體的規(guī)格說(shuō)明,進(jìn)而建立軟件開(kāi)發(fā)的基礎(chǔ)。實(shí)踐表明,需求分析工作進(jìn)行得好壞,在很大程度上決定了軟件開(kāi)發(fā)的成敗。軟件需求分析的任務(wù)是:讓用戶(hù)和開(kāi)發(fā)者共同明確將要開(kāi)發(fā)的是一個(gè)什么樣的軟件。具體而言,就是通過(guò)對(duì)問(wèn)題及其環(huán)境的理解、分析和綜合,建立邏輯模型,完成新軟件的邏輯方案設(shè)計(jì)。基于本游戲,首先得為整個(gè)棋盤(pán)建立一張表格用以記錄棋子信息,我們使用一個(gè)15*15的二維數(shù)組Table[15][15](15*15是五子棋棋盤(pán)的大小),數(shù)組的每一個(gè)元素對(duì)應(yīng)棋盤(pán)上的一個(gè)交叉點(diǎn),用‘0’表示空位、‘1’代表己方的子、‘2’代表對(duì)方的子;這張表也是今后分析的基礎(chǔ)。在此之后還要為兩個(gè)玩家雙方各建立一張棋型表Computer[15][15][4]和Player[15][15][4],用來(lái)存放棋型數(shù)據(jù)。1.2項(xiàng)目目標(biāo)五子棋與游戲開(kāi)發(fā)具體任務(wù)完成日期以及任務(wù)的具體分配五子棋游戲開(kāi)發(fā)成員:校建林、朱穎。五子棋游戲開(kāi)發(fā)具體的任務(wù)步驟:1.需求分析內(nèi)容包括:總體分析、五子棋與游戲開(kāi)發(fā)成員和具體任務(wù)完成日期以及任務(wù)的具體分配、初始化、主循環(huán)控制模塊、玩家下子、盤(pán)面分析填寫(xiě)棋型表、對(duì)方下子、勝負(fù)判斷。2.技術(shù)線(xiàn)路內(nèi)容包括:采用的軟件及開(kāi)發(fā)平臺(tái)是什么。項(xiàng)目的總體方案—包括模塊及模塊間的聯(lián)系、信息流、數(shù)據(jù)流等。項(xiàng)目的詳細(xì)設(shè)計(jì)—包括模塊的功能、數(shù)據(jù)結(jié)構(gòu)及算法等。技術(shù)線(xiàn)路模塊圖技術(shù)線(xiàn)路模塊圖、技術(shù)線(xiàn)路說(shuō)明。3.系統(tǒng)設(shè)計(jì) 內(nèi)容包括:流程圖、流程圖說(shuō)明。4.程序測(cè)試分析5.總結(jié)。6.源代碼。2.具體日期完成任務(wù)1.第五周完成任務(wù):完成具體的需求分析中的總體分析、五子棋與游戲開(kāi)發(fā)成員和具體任務(wù)完成日期以及任務(wù)的具體分配、初始化、主循環(huán)控制模塊等部分內(nèi)容的任務(wù)。2.第六周完成任務(wù):完成具的需求分析中的玩家下子、盤(pán)面分析填寫(xiě)棋型表、對(duì)方下子、勝負(fù)判斷等部分內(nèi)容的任務(wù)。3.第七周完成任務(wù):完成具的功能描述的功能模塊圖、功能說(shuō)明部分內(nèi)容的任務(wù)。4.第八周完成任務(wù):完成具的系統(tǒng)設(shè)計(jì)的流程圖、流程圖說(shuō)明部分內(nèi)容的任務(wù)。5.第九周完成任務(wù):完成具的程序測(cè)試結(jié)果部分內(nèi)容的任務(wù)。6.第九周完成任務(wù):完成具的五子棋游戲源代碼中的初始化程序任務(wù)。7.第九周完成任務(wù):完成具的五子棋游戲源代碼中的主循環(huán)控制模塊程序任務(wù)。8.第十周完成任務(wù):完成具的五子棋游戲源代碼中的玩家下子的有關(guān)程序任務(wù)。9.第十一周完成任務(wù):完成具的五子棋游戲源代碼中的盤(pán)面、棋型的有關(guān)程序任務(wù)。10.第十二周完成任務(wù):完成具的五子棋游戲源代碼中的對(duì)方下子的有關(guān)程序任務(wù)。11.第十二周完成任務(wù):完成具的五子棋游戲源代碼中的整體程序任務(wù)。12.第十三周完成任務(wù):完成具的系統(tǒng)設(shè)計(jì)的流程圖、流程圖說(shuō)明部分內(nèi)容的任務(wù)。13..第十四周完成任務(wù):完成具的程序測(cè)試結(jié)果以及總結(jié)部分內(nèi)容的任務(wù)。3.五子棋游戲開(kāi)發(fā)具體任務(wù)的具體分配1.校建林、朱穎共同完成需求分析任務(wù)。-2.校建林完成具體的需求分析中的總體分析、五子棋與游戲開(kāi)發(fā)成員和具體任務(wù)完成日期以及任務(wù)的具體分配、初始化、主循環(huán)控制模塊等部分內(nèi)容的任務(wù)。3.朱穎完成具的需求分析中的玩家下子、盤(pán)面分析填寫(xiě)棋型表、對(duì)方下子、勝負(fù)判斷等部分內(nèi)容的任務(wù)。4.校建林、朱穎共同完成具的功能描述的功能模塊圖、功能說(shuō)明部分內(nèi)容的任務(wù)。5.校建林、朱穎共同完成具的系統(tǒng)設(shè)計(jì)的流程圖、流程圖說(shuō)明部分內(nèi)容的任務(wù)。6.校建林完成具的程序測(cè)試結(jié)果部分內(nèi)容的任務(wù)。7.校建林、朱穎共同完成具的五子棋游戲源代碼中的初始化程序任務(wù)。8.校建林、朱穎共同完成具的五子棋游戲源代碼中的玩家下子的有關(guān)程序任務(wù)。10.校建林完成具的五子棋游戲源代碼中的玩家下子的有關(guān)程序任務(wù)。11.朱穎完成具的五子棋游戲源代碼中的盤(pán)面、棋型的有關(guān)程序任務(wù)。12.校建林、朱穎共同完成具的五子棋游戲源代碼中的對(duì)方下子的有關(guān)程序任務(wù)。13.校建林、朱穎共同完成具的五子棋游戲源代碼中的整體程序任務(wù)。14.校建林、朱穎共同完成具的系統(tǒng)設(shè)計(jì)的流程圖、流程圖說(shuō)明部分內(nèi)容的任務(wù)。15.校建林、朱穎共同完成具的程序測(cè)試結(jié)果以及總結(jié)部分內(nèi)容的任務(wù)。1.3運(yùn)行環(huán)境初始化首先,建立盤(pán)面數(shù)組Table[15][15]、對(duì)戰(zhàn)雙方的棋型表Computer[15][15][4]和Player[15][15][4]并將它們清零以備使用;然后初始化顯示器、鍵盤(pán)、鼠等輸入輸出設(shè)備并在屏幕上畫(huà)出棋盤(pán)(棋盤(pán)可以不顯示)。1.4項(xiàng)目任務(wù)書(shū)主循環(huán)控制模塊控制下棋順序,當(dāng)輪到某方下子時(shí),負(fù)責(zé)將程序轉(zhuǎn)到相應(yīng)的模塊中去,主要擔(dān)當(dāng)一個(gè)調(diào)度者的角色。1.5玩家下子當(dāng)輪到玩家下時(shí),您通過(guò)鍵盤(pán)或鼠標(biāo)在棋盤(pán)上落子,程序會(huì)根據(jù)該點(diǎn)的位置,在Table[15][15]數(shù)組的相應(yīng)地方記錄‘2’,以表明該子是玩家下的。1.6盤(pán)面分析填寫(xiě)棋型表您在下五子棋時(shí),一定會(huì)先根據(jù)棋盤(pán)上的情況,找出當(dāng)前最重要的一些點(diǎn)位,如“活三”、“沖四”等;然后再在其中選擇落子點(diǎn)。先來(lái)分析己方的棋型,我們從棋盤(pán)左上角出發(fā),向右逐行搜索,當(dāng)遇到一個(gè)空白點(diǎn)時(shí),以它為中心向左挨個(gè)查找,如果遇到己方的子則記錄然后繼續(xù),如果遇到對(duì)方的子、空白點(diǎn)或邊界就停止查找。左邊完成后再向右進(jìn)行同樣的操作;最后把左右兩邊的記錄合并起來(lái),得到的數(shù)據(jù)就是該點(diǎn)橫向上的棋型,然后把棋型的編號(hào)填入到Computer[x][y][n]中就行了(x、y代表坐標(biāo),n=0、1、2、3分別代表橫、豎、左斜、右斜四個(gè)方向)。而其他三個(gè)方向的棋型也可用同樣的方法得到,當(dāng)搜索完整張棋盤(pán)后,己方棋型表也就填寫(xiě)完畢了。然后再用同樣的方法填寫(xiě)對(duì)方棋型表。注意:所有棋型的編號(hào)都要事先定義好,越重要的號(hào)數(shù)越大!1.7對(duì)方下子有了上面填寫(xiě)的兩張棋型表,就是遍歷棋型表Computer[15][15][4]和Player[15][15][4]找出其中數(shù)值最大的一點(diǎn),在該點(diǎn)下子即可。但這種算法的弱點(diǎn)非常明顯,只顧眼前利益,不能顧全大局,這就和許多五子棋初學(xué)者一樣犯了“目光短淺”的毛病。如果在這兒下子將會(huì)形成對(duì)手不得不防守的棋型(例如:‘沖四’、‘活三’);那么下一步對(duì)手就會(huì)照您的思路下子來(lái)防守您,如此一來(lái)便完成了第一步的預(yù)測(cè)。這時(shí)再調(diào)用模塊4對(duì)預(yù)測(cè)后的棋進(jìn)行盤(pán)面分析,如果出現(xiàn)了‘四三’、‘雙三’或‘雙四’等制勝點(diǎn),那么己方就可以獲勝了(當(dāng)然對(duì)黑棋而言‘雙三’、‘雙四’是禁手,另當(dāng)別論);否則照同樣的方法向下分析,就可預(yù)測(cè)出第二步、第三步……等一等,要是盤(pán)面上沒(méi)有對(duì)手必須防的棋型,哪該怎么辦呢?進(jìn)攻不成的話(huà)就得考慮防守了,將自己和對(duì)手調(diào)換一下位置,然后用上面的方法來(lái)預(yù)測(cè)對(duì)手的棋,這樣既可以防住對(duì)手巧妙的攻擊,又能待機(jī)發(fā)動(dòng)反擊,何樂(lè)而不為呢!1.8勝負(fù)判斷務(wù)須多言,某方形成五子連即獲勝;若黑棋走出‘雙三’、‘雙四’或長(zhǎng)連即以禁手判負(fù)。第二章技術(shù)線(xiàn)路2.1技術(shù)線(xiàn)路模塊圖圖2.1功能模塊圖2.2技術(shù)線(xiàn)路說(shuō)明該五子棋程序基本上實(shí)現(xiàn)了五子棋的游戲功能,有雙方下棋的界面及最終判定結(jié)果的界面。同時(shí)該游戲采用二維坐標(biāo)實(shí)現(xiàn),明了易懂,方便玩家在游戲過(guò)程中的基本操作,使游戲更加簡(jiǎn)便。在細(xì)節(jié)方面,該系統(tǒng)提供實(shí)時(shí)存儲(chǔ)功能,隨時(shí)記錄為完成的游戲,使用戶(hù)可以很好的處理意外中斷的情況。該游戲基本實(shí)現(xiàn)了游戲的一些要求和特征。在游戲的源程序及文檔方面,我們也嚴(yán)格遵守軟件工程思想,立足實(shí)驗(yàn)要求,確定任務(wù),需求分析,設(shè)計(jì)和編碼,每個(gè)步驟力求清晰易懂。原代碼注釋詳盡,各功能模塊功能分明,可移植性強(qiáng)。當(dāng)然該系統(tǒng)也有很多不足的地方,第一次進(jìn)行獨(dú)立的課程設(shè)計(jì),也有很多細(xì)節(jié)方面是考慮到的,這款游戲也是在不斷的調(diào)試和修改中產(chǎn)生和完善的。希望老師能夠指出不足,幫助我不斷提高。 第三章系統(tǒng)設(shè)計(jì)3.1流程圖圖3.1流程圖3.2流程圖說(shuō)明本程序定義了各種操作函數(shù)、各種狀態(tài)判定宏,思想明確,思路清晰。各個(gè)判斷選擇了不同路徑,因此繼續(xù)進(jìn)行或輸出結(jié)果。程序中,“循環(huán)”的利用非常直接和清晰,雙方交替下棋,因此循環(huán)往復(fù)。最終決出勝負(fù)或最終平局。分析時(shí),也考慮了許多種情況,針對(duì)各個(gè)情況均作出了相對(duì)措施和解決方案。程序采用循環(huán)進(jìn)行雙方交替下棋,并進(jìn)行了很多判斷。首先判斷棋盤(pán)是否已滿(mǎn),若棋盤(pán)已滿(mǎn),則輸出平局,結(jié)束游戲;若棋盤(pán)未滿(mǎn),則繼續(xù)進(jìn)行。然后判斷“0”方是否勝出,若“0”方獲勝,則輸出“0”方獲勝,結(jié)束游戲;若“0”方?jīng)]有獲勝,則繼續(xù)進(jìn)行。再判斷“x”方是否獲勝,若“x”方獲勝,則輸出“x”方獲勝,結(jié)束游戲;若“x”方?jīng)]有獲勝,則繼續(xù)進(jìn)行?;氐健笆紫取钡谒恼逻\(yùn)行結(jié)果圖4.1運(yùn)行結(jié)果初始圖圖4.2游戲過(guò)程圖圖4.3游戲進(jìn)行圖圖4.4“0”方獲勝圖第五章總結(jié)附錄一參考文獻(xiàn)[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).北京:清華大學(xué)出版社,2010年[2]蘇仕華,魏韋巍,王敬生,劉燕君.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(第二版).北京:機(jī)械工業(yè)出版社,2010年[3]譚浩強(qiáng).C程序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,1999年[4]譚浩強(qiáng).C++程序設(shè)計(jì).北京:清華大學(xué)出版社,2009年附錄二源代碼#include<iostream.h>usingnamespacestd;intHsheng(chara[][15]);//判斷o子是否獲勝的函數(shù)intBsheng(chara[][15]);//判斷x子是否獲勝的函數(shù)inthe(chara[][15]);//判斷是否平局(也就是棋盤(pán)下滿(mǎn)了)的函數(shù)voidqipan(chara[15][15])//執(zhí)行輸出棋盤(pán)命令{cout<<"本游戲采用二維數(shù)組實(shí)現(xiàn),棋盤(pán)為15X15的二維直角坐標(biāo)系,均從1到15,祝二位游戲愉快.";for(inti=0;i<15;i++)//打印棋盤(pán){for(intj=0;j<15;j++)cout<<a[i][j];cout<<endl;}}intmain(){chara[15][15];intx,y;for(inti=0;i<15;i++)for(intj=0;j<15;j++)a[i][j]='';qipan(a);while(1)//用循環(huán)語(yǔ)句執(zhí)行o,x交替下子,這些while語(yǔ)句看起來(lái)似乎是個(gè)死循環(huán)~實(shí)際上都會(huì)經(jīng)過(guò)break結(jié)束{inta1=1;while(1){for(;a1;){cout<<"請(qǐng)輸入o子下的位置:";//輸入o子的位置cin>>x>>y;if(a[x][y]=='o'||a[x][y]=='x')//判斷是否已有子{cout<<"已有子請(qǐng)重下"<<",";continue;}elseif(x>=15||y>=15){cout<<"輸入錯(cuò)誤請(qǐng)重輸"<<",";continue;}else{a[x][y]='o';a1=0;}}break;}qipan(a);//下好o子后將棋盤(pán)顯示if(Hsheng(a))//判斷o子是否已經(jīng)獲勝{cout<<"o子獲勝"<<endl;break;}while(1)//下x子{cout<<"請(qǐng)輸入x子下的位置:";cin>>x>>y;if(a[x][y]=='o'||a[x][y]=='x'||x>=15||y>=15){for(;a[x][y]=='o'||a[x][y]=='x';){cout<<"已有子請(qǐng)重下";cout<<"請(qǐng)輸入x子下的位置:";cin>>x>>y;continue;}for(;x>=15||y>=15||x;){cout<<"輸入錯(cuò)誤請(qǐng)重輸"<<",";//判斷輸入棋子位置是否正確cout<<"請(qǐng)輸入x子下的位置:";cin>>x>>y;continue;}a[x][y]='x';break;}else{a[x][y]='x';break;}}qipan(a);//再一次輸出棋盤(pán)if(Bsheng(a))//判斷x子是否已經(jīng)獲勝{cout<<"x子獲勝"<<endl;break;}if(he(a))//判斷是否平局{cout<<"平局"<<endl;break;}}return0;}intHsheng(chara[][15]){inti,j;//判斷橫著的5個(gè)是否都相等f(wàn)or(i=0;i<15;i++)for(j=0;j<15;j++)if(a[i][j]=='o'&&a[i][j+1]=='o'&&a[i][j+2]=='o'&&a[i][j+3]=='o'&&a[i][j+4]=='o')return1;for(j=0;j<15;j++)//判斷豎著的5個(gè)是否都相等f(wàn)or(i=0;i<15;i++)if(a[i][j]=='o'&&a[i+1][j]=='o'&&a[i+2][j]=='o'&&a[i+3][j]=='o'&&a[i+4][j]=='o')return1;for(i=0;i<15;i++)//判斷左斜5個(gè)for(j=0;j<15;j++)if(a[i][j]=='o'&&a[i+1][j+1]=='o'&&a[i+2][j+2]=='o'&&a[i+3][j+3]=='o'&&a[i+4][j+4]=='o')return1;for(i=0;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版的云計(jì)算服務(wù)合同
- 不可撤銷(xiāo)信用證范文(2024版)
- 2025年度草種市場(chǎng)調(diào)研與銷(xiāo)售合同3篇
- 《任教學(xué)科語(yǔ)》課件
- 2024高新技術(shù)產(chǎn)品進(jìn)出口貿(mào)易合同
- 2024招投標(biāo)與合同管理實(shí)務(wù):國(guó)有企業(yè)合規(guī)管理細(xì)則3篇
- 2025年度草場(chǎng)租賃與草原畜牧業(yè)發(fā)展協(xié)議3篇
- 2024年網(wǎng)絡(luò)直播平臺(tái)技術(shù)服務(wù)與授權(quán)合同
- 2024房地產(chǎn)公司合同類(lèi)別
- 2025年度航空航天發(fā)動(dòng)機(jī)采購(gòu)合同范本與性能測(cè)試要求3篇
- 篆刻學(xué)ppt精品課件
- 建筑施工現(xiàn)場(chǎng)農(nóng)民工維權(quán)告示牌
- 《槍炮、病菌與鋼鐵》-基于地理視角的歷史解釋?zhuān)ㄣ屣L(fēng)學(xué)堂)
- 酒店爆炸及爆炸物品緊急處理應(yīng)急預(yù)案
- 2022年版物理課程標(biāo)準(zhǔn)的特點(diǎn)探討與實(shí)施建議
- 《中外資產(chǎn)評(píng)估準(zhǔn)則》課件第4章 國(guó)際評(píng)估準(zhǔn)則
- 幼兒園班級(jí)安全教育活動(dòng)計(jì)劃表
- 《銀行柜臺(tái)風(fēng)險(xiǎn)防控案例匯編》銀行柜臺(tái)風(fēng)險(xiǎn)案例
- 展館精裝修工程施工方案(98頁(yè))
- 香港聯(lián)合交易所有限公司證券上市規(guī)則
- (高清正版)JJF 1908-2021 雙金屬溫度計(jì)校準(zhǔn)規(guī)范
評(píng)論
0/150
提交評(píng)論