版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
黑白棋c語言程序(OthelloClanguageprogram)includegraphics,h圖形系統(tǒng)頭文件”/**/defineleft0x4b00光標左鍵值/**/defineright0x4d00光標右鍵值/**/definedown0x5000光標下鍵值/**/definetheip0x4800光標上鍵值/**/defineesc0x01lbesc鍵值/**/defineenterOxlcOd回車鍵值/**/inta[8][8]={0},key,scorel,score2具體分數(shù)以及按鍵與存放棋子的變量;/**/charplayone[3],playtwo[3];/*兩個人的得分轉(zhuǎn)換成字符串輸出*/playtoplayvoid(void);/*人人對戰(zhàn)函數(shù)*/drawqpvoid(void);/*畫棋盤函數(shù)*/voidsetplaycolor(intx);/*設(shè)置棋子第一次的顏色*/voidmovecolor(intx,inty);/*恢復原來棋盤狀態(tài)*/intqpchange(intx,inty,intz);/*判斷棋盤的變化*/doscorevoid(void);/*處理分數(shù)*/voidprintscore(intn);/*輸出成績*/playwinvoid(void);/*輸出勝利者信息*//******主函數(shù)*********/voidmain(void)Iintdg=detect,gr;initgraph(&dg,&gr,"c:\"tc");/*初始化圖形系統(tǒng)*/drawqp();/*畫棋盤*/playtoplay();/*人人對戰(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);/*白色實體填充模式*/fillellipse(500200,15,15);/*在顯示得分的位置畫棋*/setfillstyle(solid_fill,8);/*黑色實體填充模式*/fillellipse(500300,15,15);a[3][3]=a[4][4]=1;/*初始兩個黑棋*/a[3][4]=a[4][3]=2;/*初始兩個白棋*/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;/*有棋后改變分數(shù)*/doscore();/*輸出開始分數(shù)*/)voidplaytoplay()/*人人對戰(zhàn)*/(intx,y,t=1,i,j,cc=0;while(1)/*換棋手走棋*/(x=120,y=80;/*每次棋子一開始出來的坐標,x為行坐標,y為列坐標*/printscore(1);/*輸出棋手1的成績*/printscore(2);/*輸出棋手2的成績*/setplaycolor(t);/*t變量是用來判斷棋手所執(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)/*如果落子位置沒有棋子*/if(t%2--1)/*如果是棋手1移動*/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;))返回是否改變過棋子顏色的標記returnyes;/**/}voiddoscore處理分數(shù)()/**/iinti,j;TOC\o"1-5"\h\zscorel=score2 = 0; / *重新開始計分數(shù)* /for(i=0;i < 8; i + +)for(j=0,j < 8; j + +)if(a[i][j] = = 1) / *分別統(tǒng)計兩個人的分數(shù)*/scorel++;elseif(a[i][j]==2)score2++;)voidprintscore(intplaynum輸出成績)/**/(if(playnum==1)/*清除以前的成績*/isetfillstyle(solid_fill,blue);bar(550100640400);}setcolor(red).settextstyle(0,0,4設(shè)置文本輸出樣式);/**/if(playnum==1)/*判斷輸出哪個棋手的分,在不同的位置輸出*/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(“");無效drawbox()[intXI,X2,Yl,Y2;setbkcolor(淺藍色);設(shè)置顏色(黃色);gotoxy(7,2);printf("左,右,上,下鍵移動,空間放,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);對于(XI=1;XI<=18;XI++)對于(Y1=1;Y1<=18;Y1++)盒[][]=0xlyl;)無效draw_circle(x,y,int的顏色)[設(shè)置顏色(顏色);setlinestyle(solidline,0,1);X=(x+JZ)*比莉;Y=(Y+JS)*比莉;圓(x,y,8);)無效judgekey()inti;IntJ;開關(guān)(鍵)例左右:如果(step_x-l<0)打破;其他的對(我=step_x-l,J=step_y;我>=1;我一)如果(框i===0)(drawcircle(stepx,step_y,淺藍色);打破;}如果(i<1)中斷;stepx=我;法官(step_x,step_y);打破;權(quán)案:如果(stepx+1>18)打破;其他的I對(我=step_x+1,J=step_y;我<=18;i++)如果(框i===0){drawcircle(step_x,step_y,淺藍色);打破;)如果(i)突破18;stepx=我;法官(step_x,step_y);
打破;的情況下:如果((step_y+1)>18)打破;其他的(對(我=step_x,J=step_y+1;J<=18;j++)如果(框i===0)(draw_circle(step_x,step_y,淺藍色);打破;)如果(j—18)斷;step_y=step_y=J;法官(step_x,step_y);打破;)案子:如果((step_y-l)<0)打破;其他的I對(我=step_x,J=step_y-l;J>=1;J)如果(框i===0)Idrawcircle(stepx,stepy,淺藍色);打破;)如果(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);如果(標志=1)[setbkcolor(藍色);cleardevice();setviewport(100100540380,1);定義一個圖形窗口/**/設(shè)置填充模式(1,2);綠色以實填充/**/設(shè)置顏色(黃色);矩形(0,0439279);畫線工具(50,50,14);設(shè)置顏色為紅色(12);設(shè)置文本格式(1,0,5);/*三重筆劃字體,水平放?5倍*/outtextxy(20,20,"白贏!”);設(shè)置顏色為紅色(15);設(shè)置文本格式(3,0,5);/*無襯筆劃字體,水平放大5倍*/outtextxy(120120,"白贏!”);設(shè)置顏色為紅色(14);設(shè)置文本格式(2,0,8);getchO;closegraph();出口(0);)如果(標志=2){setbkcolor(藍色);setviewport(100100540380,1);定義一個圖形窗口/**/設(shè)置填充模式(1,2);綠色以實填充/**/設(shè)置顏色(黃色);矩形(0,0439279);畫線工具(50,50,14);設(shè)置顏色為紅色(12);設(shè)置文本格式(1,0,8);/*三重筆劃字體,水平放大8倍*/outtextxy(20,20,"紅贏!”);設(shè)置顏色為紅色(15);設(shè)置文本格式(3,0,5);/*無襯筆劃字體,水平放大5倍*/outtextxy(120120,"紅贏!”);設(shè)置顏色為紅色(14);設(shè)置文本格式(2,0,8);getch();closegraph();出口(0);))changeO;打破;))其他的打破;如果(標志=1)標志=2;其他的標志=1;)無效的判斷(x,y){如果(標志=1)drawcircle(x,y,15);如果(標志=2)drawcircle(x,y,4);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024硬件設(shè)備代理與售后服務(wù)合作協(xié)議2篇
- 2025年度GPS技術(shù)在應急救援領(lǐng)域的應用合作協(xié)議3篇
- 二零二四年商務(wù)考察接送服務(wù)合同模板3篇
- 2024食用菌品牌授權(quán)與營銷推廣合同3篇
- 2025年校園安保服務(wù)合同含校園安全設(shè)施建設(shè)及維護協(xié)議3篇
- 2025年消防應急照明及疏散指示系統(tǒng)采購合同范本2篇
- 二零二五年度海鮮餐廳特許經(jīng)營許可合同3篇
- 二零二五版煤礦掘進設(shè)備出租及維護保養(yǎng)服務(wù)合同3篇
- 二零二五版廠房租賃合同終止及費用結(jié)算及保險服務(wù)協(xié)議3篇
- 二零二五年建筑施工人員雇傭合同3篇
- 直播帶貨助農(nóng)現(xiàn)狀及發(fā)展對策研究-以抖音直播為例(開題)
- 腰椎間盤突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計價規(guī)范》
- 2023-2024學年度人教版四年級語文上冊寒假作業(yè)
- (完整版)保證藥品信息來源合法、真實、安全的管理措施、情況說明及相關(guān)證明
- 營銷專員績效考核指標
- 陜西麟游風電吊裝方案專家論證版
- 供應商審核培訓教程
- 【盒馬鮮生生鮮類產(chǎn)品配送服務(wù)問題及優(yōu)化建議分析10000字(論文)】
- 肝硬化心衰患者的護理查房課件
- 2023年四川省樂山市中考數(shù)學試卷
評論
0/150
提交評論