freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-五子棋[★]-展示頁

2024-10-17 23:21本頁面
  

【正文】 Count++。 Legal(j2)amp。}if(Legal(i2)amp。amp。amp。i1, j1++, i2++, j2){int LastCount= Count。amp。amp。for(int i1= X1, j1= Y+ 1, i2= X+ 1, j2= Y1。elsereturn true。當(dāng)然,當(dāng)棋盤被走滿時(shí),游戲亦結(jié)束。對(duì)于每次走棋后,首先應(yīng)該做的就是判定一否有五個(gè)棋子已經(jīng)連成一線,也是一個(gè)簡(jiǎn)單的搜索過程,由于每次走的點(diǎn)不一定是最外部的點(diǎn),因此從每次走的點(diǎn)的兩頭同時(shí)搜索,當(dāng)遇到兩端同時(shí)結(jié)束時(shí),搜索結(jié)束。Temp_Y)。} } else if(…){ … }// 這是接下來的轉(zhuǎn)換操作ChangeCoordinates(Move_X, Move_Y, amp。W39。w39。amp。return true。[TTop][1]= Move_Y。[Move_X][Move_Y]= Ply。amp。amp。配合ChangeCoordinates()與gotoxy()函數(shù),完成對(duì)走棋的控制。這里又要用到一個(gè)函數(shù) getch(),其作用是無回顯的接受從鍵盤輸入的字符,讓屏幕不會(huì)出現(xiàn)你輸入的字符且等待著按回車確定…… 有了這個(gè)寶貝函數(shù),馬上得到 “↑” 對(duì)應(yīng)的ASCII碼為32和72 兩個(gè)連著的數(shù)值,依次可得其他對(duì)應(yīng)的ASCII碼。SetConsoleCursorPosition(hConsole, coord)。// 在實(shí)際的應(yīng)用過程中發(fā)現(xiàn)交換x與y的賦值= y。}void gotoxy(int x, int y)//這是光標(biāo)的函數(shù) {COORD coord。void ChangeCoordinates(int _X, int _Y, int *X, int *Y){*X=(_X1)* 2。聲明全局變量是為了使得各函數(shù)能夠更方便地使用到這個(gè)結(jié)構(gòu)體,現(xiàn)假設(shè)某點(diǎn)的坐標(biāo)為(1, 1),那么如何在屏幕上打印這個(gè)點(diǎn)呢?這就利用到了ChangeCoordinates()與gotoxy()函數(shù),前者使坐標(biāo)進(jìn)行轉(zhuǎn)換,后者讓光標(biāo)走到所指的那個(gè)點(diǎn),其實(shí)主要還是因?yàn)轭愃啤癌?、╋、●、○”在橫向上所占都是兩個(gè)英文字母的距離,因此在控制臺(tái)上反映的就是和數(shù)組下標(biāo)倍數(shù)關(guān)系了。Sta Stack。char Graph[3][3]。int MINBOX。// 換行對(duì)應(yīng)的 ASCII 碼值為十進(jìn)制的 10 } 二維數(shù)組與控制臺(tái)二維數(shù)組是用來使得整個(gè)棋盤的信息全部記錄下來,因此在結(jié)構(gòu)體中二維數(shù)組的聲明是最關(guān)鍵的。Sleep(200)。i strlen(Wel)。printf(“tt”)。 Mirs Chen” }。由上面的函數(shù)一覽可以知道這個(gè)“封面”就是在Logo()函數(shù)里面實(shí)現(xiàn)的,函數(shù)實(shí)現(xiàn)過程中使用了Sleep()函數(shù),使之有動(dòng)態(tài)效果:void Logo(){char Wel[30]= { “Made By Lyushamp。二、詳細(xì)設(shè)計(jì) 函數(shù)一覽 “封面”的設(shè)計(jì)首先還是講些題外話,該程序由于與控制臺(tái)有密切的關(guān)系,于是在代碼中使用了不少 中的函數(shù), 中的 Sleep()函數(shù),正是有了這些函數(shù)的使用,程序才得以順利完成,尤其是后面頻繁使用的gotoxy()函數(shù)。上個(gè)學(xué)期就已經(jīng)寫了通訊錄那之類的鏈?zhǔn)浇Y(jié)構(gòu),這次我們決心有所改變,我們學(xué)習(xí)了棧、隊(duì)列、樹、圖,字典樹有人選了,我們就來寫一個(gè)基于圖的小程序,五子棋,對(duì),圖的簡(jiǎn)單應(yīng)用,于是我們開始著手來寫這個(gè)小小的程序,祝我們好運(yùn)! 功能簡(jiǎn)介既然是五子棋,我們要做的是時(shí)時(shí)刻刻的將整個(gè)圖(以下稱為棋局)的狀態(tài)呈現(xiàn)出來,那么界面就是必不可少的。 Play函數(shù)..................................................................................................錯(cuò)誤!未定義書簽。第一篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)五子棋姓 名: 劉旭學(xué) 院: 計(jì)算機(jī)與通信學(xué)院班 級(jí): 通信工程101班指導(dǎo)老師: 文志誠(chéng)目錄一、需求分析..................................................................................................................................3 開發(fā)背景....................................................................................................................................3 功能簡(jiǎn)介....................................................................................................................................3二、系統(tǒng)設(shè)計(jì)..................................................................................................................................4 函數(shù)一覽....................................................................................................................................4 “封面”的設(shè)計(jì)........................................................................................................................4 二維數(shù)組與控制臺(tái)....................................................................................................................5 鍵盤操作....................................................................................................................................6 .............................................................................................................................................7 悔棋的實(shí)現(xiàn)................................................................................................................................8三、調(diào)試運(yùn)行..................................................................................................................................9 進(jìn)入界面....................................................................................................................................9 棋盤的初始狀態(tài)......................................................................................................................10 激戰(zhàn)中……..............................................................................................................................10 游戲結(jié)束..................................................................................................................................11四、解決問題的關(guān)鍵....................................................................................................................11五、課設(shè)總結(jié)................................................................................................................................11六、附錄........................................................................................................................................12 畫圖代碼..................................................................................................錯(cuò)誤!未定義書簽。 初始化......................................................................................................錯(cuò)誤!未定義書簽。一、需求分析 開發(fā)背景學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)該門課程,對(duì)于枯燥無味的理論知識(shí),我們是否能夠通過所學(xué)的知識(shí)在課程設(shè)計(jì)中做出有趣味東西,然后讓我們對(duì)于數(shù)據(jù)結(jié)構(gòu)更加的感興趣呢?于是我和我的室友陳明建開始醞釀著寫些什么東西。MFC不會(huì)?沒關(guān)系,我們就用基于控制臺(tái)的字符輸出來構(gòu)建這個(gè)棋局吧,當(dāng)然這只是第一步,詳細(xì)如下: 1擁有一個(gè)良好的進(jìn)入界面,以及必要的選項(xiàng); ○2擁有一個(gè)二維的數(shù)組來記錄和更新實(shí)時(shí)的狀態(tài),并且能夠有一種方法在DOS界面下繪制○出整個(gè)棋局的實(shí)時(shí)狀態(tài)(包括棋盤和棋子);3能夠通過鍵盤上的按鍵完成所選位置的移動(dòng)和選定操作; ○4能夠在每一次的走棋后判定是否游戲結(jié)束(棋盤走滿或者是一方勝出); ○5能夠完成悔棋的功能,并保證這之間的棋局繪圖能夠與二維數(shù)組數(shù)據(jù)同步,做到真正意○義上的悔棋。進(jìn)入正題,由于是一個(gè)小的程序,因此將每一個(gè)功能分成一個(gè)一個(gè)的函數(shù),這樣將在以后的修改和完成進(jìn)度上都有很大的幫助。amp。printf(“ttt歡迎試用五子棋系統(tǒng)n”)。for(int i= 0。++i){putchar(Wel[i])。// 可使字符一個(gè)一個(gè)的輸出}putchar(10)。struct {int Status[MAX/2+2][MAX/2+2]。int Step。char *FillGraph[9]。} ChessBoard。部分代碼如下:HANDLE hConsole= GetStdHandle(STD_OUTPUT_HANDLE)。*Y=(_Y1)* 4。= x。// 更好理解,即橫行位x,縱行為y。} 鍵盤操作在剛開始寫這個(gè)五子棋的時(shí)候是以坐標(biāo)來確定玩家的每一步棋,但后來發(fā)現(xiàn)這樣操作性實(shí)在是差,鍵盤操作是更好的選擇。后面在使玩家一和玩家二分離操作,玩家一則是利用 W、S、A、D + space來操作,玩家二則是 上下左右+ enter。部分代碼如下:if(Opreat[0]== 13amp。 Ply== 2|| Opreat[0]== 32amp。 Ply== 1){ if([Move_X][Move_Y]== 0){int TTop= ++。[TTop][0]= Move_X。printf(“%s”, Graph)。// 該次走棋操作有效} else { … } } if(Opreat[0]==32amp。 Opreat[1]== 72|| Opreat[0]== 39。|| Opreat[0]== 39。){// 凡是接受了“上操作”,則Move_X的值減一,if(Currect(Move_X1, Move_Y)){Move_X= 1。Temp_X, amp。Gotoxy(Temp_X, Temp_Y)。當(dāng)滿足五子時(shí)游戲結(jié)束。代碼如下: bool Legal(int Point){if(Point 1|| Point MAX/ 2+ 1)return false。}// 以X正軸為參考軸if(!Flag){ Count= 1。Legal(i1)amp。 Legal(j1)|| Legal(i2)amp。 Legal(j2)。if(Legal(i1)amp。 Legal(j1)amp。 [i1][j1]== Ply){Count++。amp。amp。}if(LastCount== Count)break。return true。在沒寫悔棋之前,只是記錄了“上一次”的位置,聲明了Last_X,Last_Y。那么悔棋呢,取出“上一次”的位置,判定位置(不同的位置對(duì)應(yīng)不同的填充圖形類型)在二維數(shù)組中撤銷走棋時(shí)所賦予的 Ply 值(玩家一走時(shí),其值為1,玩家二走時(shí),其值為2),重新將 [ Last_X ][ Last_Y ]
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1