美高梅网址 > 游侠网单机游戏 > 这个游戏需要EasyX的图像库

原标题:这个游戏需要EasyX的图像库

浏览次数:50 时间:2019-12-25

实训要做项目呐。天天坐在电脑面前累死了。最近题刷的少。大多数都挺水。就不挨个编辑发上来了。发发白天写的项目吧。可能好几天更一下。实训结束恢复正常。

这个游戏需要EasyX的图像库。有兴趣的可以下一个图像库运行一下玩玩~(虽然= =没LOL好玩2333333)

设计题目:双人五子棋对战单机游戏

使用C语言及VC绘图库,在VC环境下,设计一个双人五子棋对战单机游戏,双方各执黑白一子,黑白双方轮流落子,直到某一方首先在棋盘的横线、纵线或斜线上形成连续五子,则该方就算获胜,游戏过程可以悔棋一步。要求友好的图形化界面、方便操作。

功能设计要求

根据五子棋游戏规则,项目设计有以下几点要求:

  1. 输出游戏规则并由用户决定是否遵守并开局。
  2. 要求动态画出棋盘大小。
  3. 画棋子并确定其颜色。
  4. 提示下棋规则。
  5. 玩家轮流下棋。
  6. 这个游戏需要EasyX的图像库。判断谁先落棋。
  7. 允许且只允许悔棋一步。
  8. 判断每局游戏输赢,显示每局游戏的获胜者及分数。
  9. 判断是否进行下一局。
  10. 判最终赢家(三局两胜)。

    1 #include 2 #include 3 #include 4 #define N 10 5 void gameover(); 6 void MainFace(); 7 int Game_Over1(int a[10][10],int chess_symbol )/ "-"形或者"|"形(事实上"-"与"|"关于""对称) / 8 {
    9 int i,j,k,l,r; 10 for( i=0; i < N; i++ ) 11 for( k=0; k 这个游戏需要EasyX的图像库。< N-4; k++ ) 12 { 13 l=r=0; 14 for( j=k; j < k+5; j++ ) 15 { 16 if( a[i][j] == chess_symbol )/ "-"形/ 17 l++; 18 if( a这个游戏需要EasyX的图像库。[j][i] == chess_symbol )/ "|"形/ 19 r++; 20 } 21 if( l == 5 || r == 5 )/连续的个棋子在一条直线上时,游戏结束/ 22 return 1; } 23 return 0; 24 } 25 26 27 int Game_Over2( int a这个游戏需要EasyX的图像库。[10][10] ,int chess_symbol )/ ""形/ 28 { 29 int i,j,k,m,LeftDown,RightUp; 30 for( m=0; m < N-4; m++ ) 31 for( k=0; k < N-4-m; k++ ) 32 { 33 RightUp=LeftDown=0; 34 for( i=k ,j=k+m; i < k+5; i++ ,j++ ) 35 { 36 if( a[i][j] == chess_symbol )/ 对角线""上及其右上方的""形/ 37 RightUp++; 38 if( a[j][i] == chess_symbol )/ 对角线""上及其左下方的""形/ 39 LeftDown++;
    40 } 41 if( RightUp == 5 || LeftDown == 5 ) 42 return 1;
    43 } 44 return 0; 45 } 46 int Game_Over3( int a[10][10] ,int chess_symbol )/ "/"形/ 47 {
    48 int i,j,k,m,LeftUp,RightDown; 49 for( m=N-1; m >= 4; m-- ) 50 for( k=0; k < m + 1 - 4; k++ ) 51 { 52 RightDown=LeftUp=0; 53 for( i=k ,j= m - k; i < k+5; i++ ,j-- ) 54 { 55 if( a[i][j] == chess_symbol )/对角线"/"上及其左上方的"/"形/ 56 LeftUp++; 57 if( a[N-1-j][N-1-i] == chess_symbol )/对角线"/"上及其右下方的"/"形/ 58 RightDown++; 59 } 60 if( RightDown == 5 || LeftUp == 5 ) 61 return 1; 62 } 63 return 0; 64 } 65 66 typedef struct 67 { 68 UINT uMsg;
    69 int x; 70 int y; 71 }m; 72 void main() 73 { 74 char k; 75 printf("请遵守游戏规则nYes or No"); 76 printf("请选择'y'or'n'n"); 77 scanf("%c",&k); 78 if(k=='y'||k=='Y') MainFace(); 79 if(k=='n'||k=='N') {printf("感谢您的使用n");gameover();} 80 } 81 void gameover() 82 { 83 getch(); 84 closegraph(); 85 } 86 87 void MainFace() 88 { 89 int chess[N][N]={0}; 90 int i,x,y,j,r,n=1; 91 int v[N]; 92 char ch; 93 MOUSEMSG m; 94 initgraph(500,500);/生成一个,区域/ 95 setbkcolor(LIGHTGRAY); cleardevice();/背景设置为白色/ 96 setcolor(RED);/画图颜色是红色/ 97 for(x=2;x<=502;x=x+50)/画棋盘格/ 98 {
    99 line(x,2,x,500); 100 line(2,x,500,x); 101 } 102 while(true)/响应鼠标操作/ 103 { 104 m = GetMouseMsg(); 105 if(m.uMsg==WM_LBUTTONDOWN) 106 { 107 x=m.x%50;if(x<=25)m.x=m.x-x;else m.x=m.x+(50-x); 108 y=m.y%50;if(y<=25)m.y=m.y-y;else m.y=m.y+(50-y); 109 i=m.x/50;j=m.y/50; 110 if (chess[i][j]!=0)/防止在一个地方重复下棋子chess[i][j]==1 为白子 chess[i][j]==1 为黑子/ 111 continue;
    112 if(n==1)/判断该谁下棋/ 113 {
    114 setcolor(WHITE); 115 setfillstyle(WHITE); 116 fillcircle(m.x,m.y,20); 117 /fillellipse(m.x,m.y,10,10);/
    118 chess[i][j]=1;
    119 if(Game_Over1(chess,1)==1||Game_Over2(chess,1)==1||Game_Over3(chess,1)==1) 120 { 121 setcolor(BLACK);outtextxy(200,200,"此局白子胜利"); 122 v[0]++; if(v[0]==2) 123 { outtextxy(200,300,"3局胜,白子胜局,白子胜出"); break;}
    124 outtextxy(250,250,"是否继续下棋:Y OR N"); 125 ch= getch(); 126 if(ch=='N') break; 127 else{ 128 for(i=0;i 131 setbkcolor(LIGHTGRAY); cleardevice();/背景设置为白色/ 132 setcolor(RED);/画图颜色是红色/
    133 for(x=2;x<=502;x=x+50)/画棋盘格/ 134 { line(x,2,x,500); 135 line(2,x,500,x); 136 } 137 }
    138 }
    139 n=2;/换方下子/ 140 }
    141 else 142 {
    143 chess[i][j]=2;
    144 for(r=20;r>=0;r--) 145 { 146 setcolor(BLACK);
    147 setfillstyle(BLACK); 148 fillcircle(m.x,m.y,r); 149 } 150 /fillellipse(m.x,m.y,1,1); / 151 if(Game_Over1(chess,2)==1||Game_Over2(chess,2)==1||Game_Over3(chess,2)==1) 152 { 153 setcolor(BLACK);outtextxy(200,200,"此局黑子胜利"); v[1]++; 154 if(v[1]==2){ outtextxy(200,200,"3局胜,黑子胜局,黑子胜出"); break;} 155 outtextxy(250,250,"是否继续下棋:Y OR N"); 156 ch= getch(); 157 if(ch=='N') break; 158 else{ 159 for(i=0;i 162 setbkcolor(LIGHTGRAY); cleardevice();/背景设置为白色/ 163 setcolor(RED);/画图颜色是红色/
    164 for(x=2;x<=502;x=x+50)/画棋盘格/ 165 { line(x,2,x,500); 166 line(2,x,500,x); 167 } 168 }
    169 } 170 n=1; 171 }
    172 }
    173 if(m.uMsg==WM_RBUTTONUP) break;/右键结束/ 174 } 175 getch(); 176 closegraph(); 177 }

 

本文由美高梅网址发布于游侠网单机游戏,转载请注明出处:这个游戏需要EasyX的图像库

关键词:

上一篇:没有了

下一篇:没有了