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

正文內(nèi)容

c語(yǔ)言程序設(shè)計(jì)開(kāi)放性實(shí)驗(yàn)指導(dǎo)手冊(cè)-在線瀏覽

2024-08-05 06:24本頁(yè)面
  

【正文】 t(),當(dāng)前光標(biāo)(pi,pj)右移一格操作。函數(shù)flagBlock(i, j)標(biāo)記光標(biāo)所指的方塊(i,j)有地雷。接著調(diào)用drawBlock()函數(shù)重新畫(huà)這個(gè)方塊。函數(shù)autoOpen(i, j)表示如果某個(gè)已經(jīng)打開(kāi)了的小方塊顯示的數(shù)字等于它周圍已經(jīng)被標(biāo)記為雷的小方塊的數(shù)目,則表明周圍沒(méi)有被挖開(kāi)的小方塊都已經(jīng)不是地雷的,自動(dòng)挖開(kāi)這些小方塊。返回:整型。函數(shù)實(shí)現(xiàn)過(guò)程如下:判斷當(dāng)前的方塊是否被挖開(kāi)。計(jì)算當(dāng)前方塊周圍被標(biāo)記為FLAGED的方塊數(shù)目。如果自動(dòng)挖開(kāi)過(guò)程中踩到地雷,返回-1;否則,返回0值。函數(shù)questBlock(i, j)在光標(biāo)所指向的方塊(i,j)上打一個(gè)問(wèn)號(hào),表示可能有地雷。接著調(diào)用drawBlock()函數(shù)重新畫(huà)這個(gè)方塊。int checkWin()功能:判斷當(dāng)前玩家是否已經(jīng)取勝(即所有沒(méi)有雷的坐標(biāo)都已經(jīng)被挖開(kāi)了)。算法描述:對(duì)每個(gè)沒(méi)有地雷的坐標(biāo),判斷該坐標(biāo)是否已經(jīng)被挖開(kāi),如果遇到有一個(gè)沒(méi)有挖開(kāi),返回0;相反,如果所有沒(méi)有地雷的坐標(biāo)都已經(jīng)被挖開(kāi)返回1。int confirm(int res)功能:判斷當(dāng)前玩家是否還要重新開(kāi)始新的游戲。算法描述:首先在屏幕左上角位置顯示當(dāng)前的游戲結(jié)束狀態(tài),提示是否繼續(xù)游戲;然后等待玩家從鍵盤(pán)輸入鍵值:若輸入’Y’或’y’,則返回1——繼續(xù)游戲;若輸入’N’或’n’,則返回0——結(jié)束游戲。(2)體會(huì)程序開(kāi)發(fā)過(guò)程,充分認(rèn)識(shí)程序設(shè)計(jì)的各個(gè)環(huán)節(jié)的重要性,包括需求分析、總體設(shè)計(jì)、算法設(shè)計(jì)、文檔總結(jié)以及詳細(xì)設(shè)計(jì)和測(cè)試修改等。需多了解和積累有關(guān)圖形函數(shù)的知識(shí)。實(shí)現(xiàn)思路(1) 在本設(shè)計(jì)中,應(yīng)用程序分為主函數(shù)和其他五個(gè)模塊分別設(shè)計(jì)。(2) 地雷分布信息、附近地雷數(shù)目信息和是否已標(biāo)記地雷信息分別存儲(chǔ)在數(shù)組中。程序設(shè)計(jì)圖(1) 掃雷頂層層次圖開(kāi)局掃雷游戲(主框架)輸入挖雷標(biāo)記雷題標(biāo)記疑問(wèn)自動(dòng)挖開(kāi)輸出圖1 掃雷系統(tǒng)的頂層層次圖圖2 掃雷游戲的主控模塊流程圖形方式初始化初始化新游戲從鍵盤(pán)讀入鍵值開(kāi)始重新游戲?關(guān)閉游戲,結(jié)束是ESC?對(duì)其他鍵值進(jìn)行判斷處理本次游戲結(jié)束束?FTTTFF(2) 程序流程圖評(píng)分標(biāo)準(zhǔn)評(píng)分重點(diǎn)放在面向過(guò)程程序設(shè)計(jì)方法和實(shí)際編寫(xiě)代碼能力這兩個(gè)方面。能夠以清晰的思路設(shè)計(jì)出較為詳細(xì)的程序流程圖,并編寫(xiě)代碼實(shí)現(xiàn)大部分功能,沒(méi)有重大語(yǔ)法錯(cuò)誤的可以視為良好。參考代碼include include include include include /*定義有效的鍵值*/define ENTER 0x1c0ddefine UP 0x4800define DOWN 0x5000define LEFT 0x4b00define RIGHT 0x4d00define ESC 0x011bdefine SPACE 0x3920define LOWERF 0x2166define UPPERF 0x2146define LOWERA 0x1e61define UPPERA 0x1e41define LOWERQ 0x1071define UPPERQ 0x1051int MAXCOL=640。 /*屏幕最大高度*/define _ROW 24 /*雷區(qū)最多方塊行數(shù)*/define _COL 24 /*雷區(qū)最多方塊列數(shù)*/int ROW=8。 /*當(dāng)前游戲雷區(qū)列數(shù)*/define SIZEX 20 /*雷區(qū)方塊的水平大小(像素?cái)?shù))*/define SIZEY 20 /*雷區(qū)方塊的垂直大?。ㄏ袼?cái)?shù))*/define STARTX (MAXCOLCOL*SIZEX)/2 /*水平起始位置*/define STARTY (MAXROWROW*SIZEY)/2 /*垂直起始位置*/define UNFLAG 0 /*未標(biāo)記或挖開(kāi)*/define FLAGED 1 /*已標(biāo)記為雷*/define QUESTION 20 /*不能確定*/define EXPLOD 30 /*踩雷*/define OPEN 40 /*挖開(kāi)*/int table[_ROW][_COL]。 /*雷區(qū)各方塊周圍的雷數(shù)*/int flag[_ROW][_COL]。 /*光標(biāo)當(dāng)前位置*/int di[8]={1,1,0,1,1,1,0,1}。/*初始化圖形顯示方式*/void initGraph(){ /* 要求自動(dòng)檢測(cè) */ int gdriver = DETECT, gmode, errorcode。gdriver, amp。 /* 讀取初始化結(jié)果 */ errorcode = graphresult()。 printf(Press any key to halt:)。 exit(1)。 /*獲取當(dāng)前屏幕最大寬度*/ MAXROW = getmaxy()。 int i,k。 int ni,nj。 totalMine = ROW * COL / 6。 memset(num, 0 ,sizeof(num))。 for(i=0。i++){ do{ ri = rand()%ROW。 }while(table[ri][rj])。k8。 nj = rj + dj[k]。amp。amp。amp。 } table[ri][rj] = 1。}/*繪制小方塊*/void drawBlock(int i, int j){ int x,y,xx,yy。 int mx,my。 y = STARTY+i*SIZEY。 yy = y+SIZEY1。 setcolor(WHITE)。 setfillstyle(SOLID_FILL,color)。 setcolor(WHITE)。line(x,y,x,yy)。 line(xx,y,xx,yy)。 if(pi==i amp。 pj==j){ setcolor(RED)。 } mx = x+5。 setcolor(LIGHTGRAY)。 break。 break。 break。 break。amp。 itoa(num[i][j],buf,10)。 } break。 for(i=0。i++) for(j=0。j++) drawBlock(i,j)。 setcolor(WHITE)。 kk = bioskey(0)。0xff)。J39。j39。 ROW = 8。M39。m39。 ROW = 16。 ROW = 24。}/*初始化游戲*/void newGame(){ cleardevice()。 cleardevice()。 pi = pj = 0。}/*判斷游戲是否勝利*/int checkWin(){ int i,j。iROW。jCOL。amp。 } } return 1。 int kk。 } else if(res == 1){ strcpy(buffer,You lose the game ,play again (Y/N)?)。 } setcolor(WHITE)。 kk = bioskey(0)。0xff)。Y39。y39。 return 1。 drawBlock(pi,pj)。 }}/*光標(biāo)下移一格*/void moveDown(){ if(piROW1){ pi++。 drawBlock(pi1,pj)。 drawBlock(pi,pj)。 }}/*光標(biāo)右移一格*/void moveRight(){ if(pjCOL1){ pj++。 drawBlock(pi,pj1)。 } else if(flag[i][j] == UNFLAG){ flag[i][j] = FLAGED。}/*標(biāo)記不確定*/void questBlock(int i,int j){ if(flag[i][j] == QUESTION){ flag[i][j] = UNFLAG。 } drawBlock(i,j)。 if(flag[i][j] == OPEN) return 0。iiROW。jjCOL。amp。 drawBlock(ii,jj)。 /*游戲失敗*/ } else{ flag[i][j] = OPEN。 if(num[i][j]==0){ for(k=0。k++){ int ni = i + di[k]。 if(ni=0 amp。 ni ROW amp。 nj=0 amp。 njCOL) openMine(ni,nj)。 }}/*自動(dòng)挖開(kāi)*/int autoOpen(int i,int j){ int k,c=0。 int ret=0。 for(k=0。k++){ ni = i + di[k]。 if(ni=0 amp。 ni ROW amp。 nj=0 amp。 njCOL) if(flag[ni][nj] == FLAGED) c++。k8。 int nj = j + dj[k]。amp。amp。amp。 } } } return ret。 switch(key){ case ENTER: case UP: case DOWN: case LEFT: case RIGHT: case ESC: case SPACE: case LOWERF: case UPPERF: case LOWERA: case UPPERA: case LOWERQ: case UPPERQ: return key。 /*記錄游戲結(jié)束的結(jié)果狀態(tài):0表示退出游戲;1游戲失??; 1為勝利。 /*初始化圖形顯示方式*/ do{ newGame()。 do{ /*主循環(huán)處理按鍵信息*/ int key = getKey()。 switch(key){ /*對(duì)其他有效操作的處理*/ case ENTER: case SPACE: gameRes = openMine(pi,pj)。 case UP: moveUp()。 case DOWN: moveDown()。 case LEFT: moveLeft()。 case RIGHT: moveRight()。 case LOWERF: case UPPERF: flagBlock(pi,pj)。 case LOWERA: case UPPERA: gameRes = autoOpen(pi,pj)。 case LOWERQ:case UPPERQ: questBlock(pi,pj)。 } if(checkWin()) gameRes = 1。 } while (!confirm(gameRes)) 。}程序運(yùn)行測(cè)試效果:圖3 掃雷游戲的界面 實(shí)驗(yàn)二: 貪吃蛇游戲第一部分 本次上機(jī)目標(biāo)在屏幕上畫(huà)出游戲區(qū)域,并在四周用“圍墻”圍好;在游戲區(qū)域內(nèi)隨機(jī)顯示食物;模擬畫(huà)出蛇并自動(dòng)朝某個(gè)方向運(yùn)動(dòng),在鍵盤(pán)按方向鍵來(lái)控制蛇的走向;蛇每吃中一個(gè)食物,其身長(zhǎng)即増一;蛇頭碰到自身或者墻壁及為游戲結(jié)束,并顯示成績(jī)和游戲結(jié)束提示畫(huà)面;在游戲過(guò)程中按ESC鍵退出游戲。int score=0。/*游戲速度自己調(diào)整*/struct Food{ int x。/*食物的縱坐標(biāo)*/ int yes。/*食物的結(jié)構(gòu)體*/struct Snake{ int x[N]。 int node。/*蛇移動(dòng)方向*/ int life。任務(wù)2:主要模塊的分析與設(shè)計(jì) void GamePlay(void)。/*圖形驅(qū)動(dòng)*/void Close(void)。/*開(kāi)始畫(huà)面*/void GameOver(void)。/*輸出成績(jī)*/void main(void)訓(xùn)練的技能點(diǎn)(1) 建立程序設(shè)計(jì)的基本概念,訓(xùn)練學(xué)生為解決實(shí)際問(wèn)題而創(chuàng)建較完整的簡(jiǎn)單應(yīng)用程序的獨(dú)立編程能力。第二部分 上機(jī)任務(wù)分階段完成如下任務(wù)階段1:指導(dǎo)訓(xùn)練要點(diǎn)(1) 面向過(guò)程程序設(shè)計(jì)方法。(3) 圖形編程函數(shù)的使用。節(jié)是蛇身上最小的單位。上圖的貪
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1