![黑白棋c語(yǔ)言程序(OthelloClanguageprogram)_第1頁(yè)](http://file4.renrendoc.com/view/e4270a9f2a12cdae4d52db805bb6a83f/e4270a9f2a12cdae4d52db805bb6a83f1.gif)
![黑白棋c語(yǔ)言程序(OthelloClanguageprogram)_第2頁(yè)](http://file4.renrendoc.com/view/e4270a9f2a12cdae4d52db805bb6a83f/e4270a9f2a12cdae4d52db805bb6a83f2.gif)
![黑白棋c語(yǔ)言程序(OthelloClanguageprogram)_第3頁(yè)](http://file4.renrendoc.com/view/e4270a9f2a12cdae4d52db805bb6a83f/e4270a9f2a12cdae4d52db805bb6a83f3.gif)
![黑白棋c語(yǔ)言程序(OthelloClanguageprogram)_第4頁(yè)](http://file4.renrendoc.com/view/e4270a9f2a12cdae4d52db805bb6a83f/e4270a9f2a12cdae4d52db805bb6a83f4.gif)
![黑白棋c語(yǔ)言程序(OthelloClanguageprogram)_第5頁(yè)](http://file4.renrendoc.com/view/e4270a9f2a12cdae4d52db805bb6a83f/e4270a9f2a12cdae4d52db805bb6a83f5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
黑白棋c語(yǔ)言程序(OthelloClanguageprogram)includegraphics,h圖形系統(tǒng)頭文件”/**/defineleft0x4b00光標(biāo)左鍵值/**/defineright0x4d00光標(biāo)右鍵值/**/definedown0x5000光標(biāo)下鍵值/**/definetheip0x4800光標(biāo)上鍵值/**/defineesc0x01lbesc鍵值/**/defineenterOxlcOd回車鍵值/**/inta[8][8]={0},key,scorel,score2具體分?jǐn)?shù)以及按鍵與存放棋子的變量;/**/charplayone[3],playtwo[3];/*兩個(gè)人的得分轉(zhuǎn)換成字符串輸出*/playtoplayvoid(void);/*人人對(duì)戰(zhàn)函數(shù)*/drawqpvoid(void);/*畫棋盤函數(shù)*/voidsetplaycolor(intx);/*設(shè)置棋子第一次的顏色*/voidmovecolor(intx,inty);/*恢復(fù)原來(lái)棋盤狀態(tài)*/intqpchange(intx,inty,intz);/*判斷棋盤的變化*/doscorevoid(void);/*處理分?jǐn)?shù)*/voidprintscore(intn);/*輸出成績(jī)*/playwinvoid(void);/*輸出勝利者信息*//******主函數(shù)*********/voidmain(void)Iintdg=detect,gr;initgraph(&dg,&gr,"c:\"tc");/*初始化圖形系統(tǒng)*/drawqp();/*畫棋盤*/playtoplay();/*人人對(duì)戰(zhàn)*/getch();closegraph();/*關(guān)閉圖形系統(tǒng)*/}voiddrawqp()/*畫棋盤*/inti,j;scorel=score2=0;/*棋手一開始得分都為0*/setbkcolor(blue);for(i=100;in<=420;+=40)(line(100,in420,in畫水平線);/**/line(in100,420);/*畫垂直線*/)setcolor(0);/*取消圓周圍的一圈東西*/setfillstyle(solid_fill,15);/*白色實(shí)體填充模式*/fillellipse(500200,15,15);/*在顯示得分的位置畫棋*/setfillstyle(solid_fill,8);/*黑色實(shí)體填充模式*/fillellipse(500300,15,15);a[3][3]=a[4][4]=1;/*初始兩個(gè)黑棋*/a[3][4]=a[4][3]=2;/*初始兩個(gè)白棋*/setfillstyle(solid_fill,white);fillellipse (120 + 3 * a + 3 * 40,15,15);fillellipse (120 + 4 * a + 4 * 40, 15, 15);setfillstyle(solid_fill,8);fillellipse (120 + 3 * a + 4 * 40,15,15);fillellipse (120 + 4 * a + 3 * 40, 15, 15);scorel=score2=2;/*有棋后改變分?jǐn)?shù)*/doscore();/*輸出開始分?jǐn)?shù)*/)voidplaytoplay()/*人人對(duì)戰(zhàn)*/(intx,y,t=1,i,j,cc=0;while(1)/*換棋手走棋*/(x=120,y=80;/*每次棋子一開始出來(lái)的坐標(biāo),x為行坐標(biāo),y為列坐標(biāo)*/printscore(1);/*輸出棋手1的成績(jī)*/printscore(2);/*輸出棋手2的成績(jī)*/setplaycolor(t);/*t變量是用來(lái)判斷棋手所執(zhí)棋子的顏色*/fillellipse(x,y,15.15);key=bioskey(0);/*接收按鍵*/if(key==esc)/*跳出游戲*/break;elseif(key==enter如果按鍵確定就可以跳出循環(huán))/**/(if(y!=80&a[(x-120)/40][(y-120)/40].=1&&a[(x-120)/40][(y-120)/40].=2)/*如果落子位置沒(méi)有棋子*/if(t%2--1)/*如果是棋手1移動(dòng)*/a[(x-120)/40][(y-120)/40]=1;Else/*or2*/mobileplayerA[(x-120)/40][(y-120)/40]=2;If(!QpChange(x,y,t))/*afterjudgmentchanges*/chessboardLaziIA[(x-120)/40][(y-120)/40]=0;/**/restorestatespaceCc++;/**/thenumberofstatisticsbegantotryIf(cc>=64-scorel-score2)/*ifyoutrytoexceedthenumberofspaceswillstop.[MoveColor(x,y);Fillellipse(x,y,15,15);Break;)ElseContinue;/**/ifthekeyisinvalid(DoScore);/**/doscoreBreak;/*boardchanges,thengoroundeachother.)Else/*hasapieceiskeyto.Continue;)Elsefour/**/determinethedirectionkeyIf(key==LEFT&&x>120)/**/leftarrow(MoveColor(x,y);Fillellipse(x,y,15,15);SetPlayColor(t);X-40;Fillellipse(x,y,15,15);ElseIf(key==RIGHT&&x<400&&y>80)/**/rightarrowMoveColor(x,y);Fillellipse(x,y,15,15);SetPlayColor(t);X+=40;Fillellipse(x,y,15,15);)Else/onthedirectionkeyIf(key==UP&&y>120)//onthedirectionkey(MoveColor(x,y);Fillellipse(x,y,15,15);SetPlayColor(t);Y-40;Fillellipse(x,y,15,15);)ElseIf(key==D0WN&&y<400)/**/underthedirectionkey(MoveColor(x,y);Fillellipse(x,y,15,15);SetPlayColor(t);Y+=40;Fillellipse(x,y,15,15);}}If(key==ESC)/**/theendofthegameBreak;If((scorel+score2)==641|scorel==0||score2==0)/*latticehasbeenfilledwithoneor0piecestojudgetheoutcome.(playWin);/**/outputendresultBreak;)T=t%2+1;/*partyleft,changethecolorofeachothergo/roundpiecesCc=0;/*countrecoveryfor0*/}/*endwhile*/)VoidSetPlayColor(intt)/**/colorsetpiecesIIf(t%2==l)Setfillstyle(SOLIDFILL,15);/**/whiteElseSetfillstyle(SOLIDFILL,8);/**/grayVoidMoveColor(intx,inty)theoriginalstategridrecovery/**/takeastepbackIf(y<100)/*ifitisfromastartingpointontherestorationoftheblue.Setfillstyle(SOLID_FILL,BLUE);Else/*othercircumstancesifitis1ontherestorationofawhitepawn,2blackorbluebackpiece,recoveryboard*/Switch(a[(x-120)/40][(y-120)/40])[Setfillstyle(SOLIDFILL,15);break;/**/whiteSetfillstyle(SOLIDFILL,8);break;/**/BlackDefault:Setfillstyle(SOLID_FILL,BLUE);/**/blueIntQpChange(intx,inty,intt)/**/boardofthechangeofjudgment[Int,I,J,K,KK,II,JJ,yes;Yes=0;1=(x-120)/40;/**/subscriptarrayelementsforcalculationJ=(y-120)/40;/**/columnsubscriptarrayelementcalculationSetPlayColor(T);/**/colorchangesetpieces8/*begantodeterminethedirectionofchange.If(j<6)/**/totheright.!For(k=j+l;j.j.*120+40,15,15);if(ii.=+1)yes=1;))返回是否改變過(guò)棋子顏色的標(biāo)記returnyes;/**/}voiddoscore處理分?jǐn)?shù)()/**/iinti,j;TOC\o"1-5"\h\zscorel=score2 = 0; / *重新開始計(jì)分?jǐn)?shù)* /for(i=0;i < 8; i + +)for(j=0,j < 8; j + +)if(a[i][j] = = 1) / *分別統(tǒng)計(jì)兩個(gè)人的分?jǐn)?shù)*/scorel++;elseif(a[i][j]==2)score2++;)voidprintscore(intplaynum輸出成績(jī))/**/(if(playnum==1)/*清除以前的成績(jī)*/isetfillstyle(solid_fill,blue);bar(550100640400);}setcolor(red).settextstyle(0,0,4設(shè)置文本輸出樣式);/**/if(playnum==1)/*判斷輸出哪個(gè)棋手的分,在不同的位置輸出*/sprintf(playone,"%d”,scorel);outtextxy(550200,playone);elseIsprintf(playtwo,"%d”,score2);outtextxy(550300,playtwo);)setcolor(0);)voidplaywin輸出最后的勝利者結(jié)果()/**/|settextstyle(0,0,4);setcolor(12).if(score2>scorel開始判斷最后的結(jié)果)/**/outtextxy(100,50,“blackwin!”)elseif(score2<scorel)outtextxy(100,50,whitewin!”)elseouttextxy(60,50,“youallwin!”)五子棋游戲/*五子棋*/includesstdio.h><includesstdlib.h><includesgraphics,h><includesbios,h><includesconio.h><defineleft0x4b00defineright0x4d00definedown0x5000#defineup0x4800defineesc0x01lbdefinespace0x3920definestable20definejz4definejs3definen19intbox[n][n];intstepstep__x,y;intkey;intflag=1;voiddraw();_boxvoiddraw_cicle(intx,inty,intcolor);voidchange();voidjudgewho(intx,inty)voidjudgekey();intjudgeresult(intx,inty)voidattentoin();voidattention()[charch;window(1,1,80,25);textbackground(lightblue);textcolor(yellow).clrscr();gotoxy(15.2).printf("游戲操作規(guī)則:");gotoxy(15.4).printf("playrules").gotoxy(15.6).gotoxy(15.8).printf("1.pressleft,right,up,downkeytomovethepiece〃);gotoxy(15.10).printf("2、按空格確定落棋子”);gotoxy(15,12);printf("2.pressspacetoplacethepiece");gotoxy(15,14);printf("3、禁止在棋盤外按空格”);gotoxy(15,16);printf("3.donotpressthespaceoutsideofthechessboard〃);gotoxy(15.18);printf("你是否接受上述的游戲規(guī)則(y/n));gotoxy(3.20).printf("doyouaccepttheaboveplayingrules?[y/n]:");while(1)gotoxy(60,20);CH=getche();如果(CH==Y||CH==Y)打破;如果(CH==n||CH==n)I窗口(1,1,80,25);設(shè)置文本的背景顏色(黑色);文字顏色(淺灰色);clrscr();出口(0);)gotoxy(51,12);printf(“");無(wú)效drawbox()[intXI,X2,Yl,Y2;setbkcolor(淺藍(lán)色);設(shè)置顏色(黃色);gotoxy(7,2);printf("左,右,上,下鍵移動(dòng),空間放,ESC退出。");為(xl=1=1,Yl,Y2=18;XI<=18;XI++)線((XI+JZ)*比莉(Y1+JS)*比莉(XI+JZ)*比莉(Y2+JS)BILI);為(xl=1,Yl=1,X2=18;Y1<=18;Y1++)線((XI+JZ)*比莉(Y1+JS)*比莉(x2+JZ)*比莉(Y1+JS)BILI);對(duì)于(XI=1;XI<=18;XI++)對(duì)于(Y1=1;Y1<=18;Y1++)盒[][]=0xlyl;)無(wú)效draw_circle(x,y,int的顏色)[設(shè)置顏色(顏色);setlinestyle(solidline,0,1);X=(x+JZ)*比莉;Y=(Y+JS)*比莉;圓(x,y,8);)無(wú)效judgekey()inti;IntJ;開關(guān)(鍵)例左右:如果(step_x-l<0)打破;其他的對(duì)(我=step_x-l,J=step_y;我>=1;我一)如果(框i===0)(drawcircle(stepx,step_y,淺藍(lán)色);打破;}如果(i<1)中斷;stepx=我;法官(step_x,step_y);打破;權(quán)案:如果(stepx+1>18)打破;其他的I對(duì)(我=step_x+1,J=step_y;我<=18;i++)如果(框i===0){drawcircle(step_x,step_y,淺藍(lán)色);打破;)如果(i)突破18;stepx=我;法官(step_x,step_y);
打破;的情況下:如果((step_y+1)>18)打破;其他的(對(duì)(我=step_x,J=step_y+1;J<=18;j++)如果(框i===0)(draw_circle(step_x,step_y,淺藍(lán)色);打破;)如果(j—18)斷;step_y=step_y=J;法官(step_x,step_y);打破;)案子:如果((step_y-l)<0)打破;其他的I對(duì)(我=step_x,J=step_y-l;J>=1;J)如果(框i===0)Idrawcircle(stepx,stepy,淺藍(lán)色);打破;)如果(j<l)斷裂;step_y=J;法官(step_x,step_y);打破;)案例ESC:打破;案例空間:如果(step_x>=1和step_x<=18和step_y〉=1和stepy<=18){如果(盒[step_x][step_y]==0)(盒[step_x][step_y]=旗;如果(judgeresult(step_x,step_y)==1){聲音(1000);延遲(1000);nosound();gotoxy(30400);如果(標(biāo)志=1)[setbkcolor(藍(lán)色);cleardevice();setviewport(100100540380,1);定義一個(gè)圖形窗口/**/設(shè)置填充模式(1,2);綠色以實(shí)填充/**/設(shè)置顏色(黃色);矩形(0,0439279);畫線工具(50,50,14);設(shè)置顏色為紅色(12);設(shè)置文本格式(1,0,5);/*三重筆劃字體,水平放?5倍*/outtextxy(20,20,"白贏!”);設(shè)置顏色為紅色(15);設(shè)置文本格式(3,0,5);/*無(wú)襯筆劃字體,水平放大5倍*/outtextxy(120120,"白贏!”);設(shè)置顏色為紅色(14);設(shè)置文本格式(2,0,8);getchO;closegraph();出口(0);)如果(標(biāo)志=2){setbkcolor(藍(lán)色);setviewport(100100540380,1);定義一個(gè)圖形窗口/**/設(shè)置填充模式(1,2);綠色以實(shí)填充/**/設(shè)置顏色(黃色);矩形(0,0439279);畫線工具(50,50,14);設(shè)置顏色為紅色(12);設(shè)置文本格式(1,0,8);/*三重筆劃字體,水平放大8倍*/outtextxy(20,20,"紅贏!”);設(shè)置顏色為紅色(15);設(shè)置文本格式(3,0,5);/*無(wú)襯筆劃字體,水平放大5倍*/outtextxy(120120,"紅贏!”);設(shè)置顏色為紅色(14);設(shè)置文本格式(2,0,8);getch();closegraph();出口(0);))changeO;打破;))其他的打破;如果(標(biāo)志=1)標(biāo)志=2;其他的標(biāo)志=1;)無(wú)效的判斷(x,y){如果(標(biāo)志=1)drawcircle(x,y,15);如果(標(biāo)志=2)drawcircle(x,y,4);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版地理八年級(jí)下冊(cè)8.1《自然特征與農(nóng)業(yè)》聽課評(píng)課記錄1
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)2.5《全等三角形及其性質(zhì)》聽評(píng)課記錄1
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)聽評(píng)課記錄21.2.3《因式分解法》
- 生產(chǎn)設(shè)備技術(shù)轉(zhuǎn)讓協(xié)議書(2篇)
- 環(huán)保保潔服務(wù)協(xié)議書(2篇)
- 蘇科版數(shù)學(xué)七年級(jí)下冊(cè)12.3《互逆命題》聽評(píng)課記錄1
- 部編版八年級(jí)道德與法治下冊(cè)第四課《公民義務(wù)》第1課時(shí)《公民基本義務(wù)》聽課評(píng)課記錄
- 【部編人教版】八年級(jí)上冊(cè)歷史聽課評(píng)課記錄 第18課 從九一八事變到西安事變
- 浙教版數(shù)學(xué)七年級(jí)下冊(cè)1.3《平行線的判定》聽評(píng)課記錄2
- 2025年超低頻傳感器標(biāo)定系統(tǒng)合作協(xié)議書
- 精神科護(hù)理技能5.3出走行為的防范與護(hù)理
- 采購(gòu)管理學(xué)教學(xué)課件
- 《供應(yīng)商質(zhì)量會(huì)議》課件
- 江蘇省科技企業(yè)孵化器孵化能力評(píng)價(jià)研究的中期報(bào)告
- 畢業(yè)論文-山東省農(nóng)產(chǎn)品出口貿(mào)易的現(xiàn)狀及對(duì)策研究
- 供應(yīng)商審核培訓(xùn)教程
- 音樂(lè)思政課特色課程設(shè)計(jì)
- 初中數(shù)學(xué)思維能力的培養(yǎng)課件
- 酒精性肝硬化伴食管胃底靜脈曲張破裂出血的護(hù)理查房
- 無(wú)人機(jī)巡檢方案完整版
- Link 16協(xié)議開發(fā)和關(guān)鍵技術(shù)研究的開題報(bào)告
評(píng)論
0/150
提交評(píng)論