用户:
石雨夕查看:1 回复:3 评论:1 创建时间:2021-02-07T15:11:28
【作品展示】

【作品介绍】
吃不吃你们好
【作品源代码】
#include #include #include #define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUSEMOVE 0xff08 struct { int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/ int roundnum;/*统计格子周围有多少雷*/ int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/ }Mine[10][10]; int gameAGAIN=0;/*是否重来的变量*/ int gamePLAY=0;/*是否是第一次玩游戏的标志*/ int mineNUM;/*统计处理过的格子数*/ char randmineNUM[3];/*显示数字的字符串*/ int Keystate; int MouseExist; int MouseButton; int MouseX; int MouseY; void Init(void);/*图形驱动*/ void MouseOn(void);/*鼠标光标显示*/ void MouseOff(void);/*鼠标光标隐藏*/ void MouseSetXY(int,int);/*设置当前位置*/ int LeftPress(void);/*左键按下*/ int RightPress(void);/*鼠标右键按下*/ void MouseGetXY(void);/*得到当前位置*/ void Control(void);/*游戏开始,重新,关闭*/ void GameBegain(void);/*游戏开始画面*/ void DrawSmile(void);/*画笑脸*/ void DrawRedflag(int,int);/*显示红旗*/ void DrawEmpty(int,int,int,int);/*两种空格子的显示*/ void GameOver(void);/*游戏结束*/ void GameWin(void);/*显示胜利*/ int MineStatistics(int,int);/*统计每个格子周围的雷数*/ int ShowWhite(int,int);/*显示无雷区的空白部分*/ void GamePlay(void);/*游戏过程*/ void Close(void);/*图形关闭*/ void main(void) { Init(); Control();
initgraph( & gd, & gm, "c:\\tc")
void Close(void)/*图形关闭*/ {closegraph()
void MouseOnvoid/*标鼠光标显示*/ _AX = 0x01
geninterrupt(0x33)MouseX = _CX
MouseY = _DX
void Control(void)/*游戏开始, 重新, 关闭*/ {int gameFLAG = 1
/*游戏失败后判断是否重新开始的标志*/ while(1) {if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/ {GameBegain()
/ *游戏初始画面*/ GamePlay()
/ *具体游戏*/ if(gameAGAIN == 1)/*游戏中重新开始*/ {gameAGAIN = 0
continue
}} MouseOn()
gameFLAG = 0
if(LeftPress())/*判断是否重新开始*/ {MouseGetXY()
if(MouseX > 280 & &MouseX < 300 & &MouseY > 65 & &MouseY < 85) {gameFLAG = 1
continue
}} if(kbhit())/*判断是否按键退出*/ break
} MouseOff()
} void DrawSmile(void)/*画笑脸*/ {setfillstyle(SOLID_FILL, YELLOW)
fillellipse(290, 75, 10, 10)
setcolor(YELLOW)
setfillstyle(SOLID_FILL, BLACK)
/*眼睛*/ fillellipse(285, 75, 2, 2)
fillellipse(295, 75, 2, 2)
setcolor(BLACK)
/*嘴巴*/ bar(287, 80, 293, 81)
} void DrawRedflag(int i, int j)/*显示红旗*/ {setcolor(7)
setfillstyle(SOLID_FILL, RED)
bar(198+j*20, 95+i*20, 198+j*20+5, 95+i*20+5)
setcolor(BLACK)
line(198+j*20, 95+i*20, 198+j*20, 95+i*20+10)
} void DrawEmpty(int i, int j, int mode, int color)/*两种空格子的显示*/ {setcolor(color)
setfillstyle(SOLID_FILL, color)
if(mode == 0)/*没有单击过的大格子*/ bar(200+j*20-8, 100+i*20-8, 200+j*20+8, 100+i*20+8)
else if(mode == 1)/*单击过后显示空白的小格子*/ bar(200+j*20-7, 100+i*20-7, 200+j*20+7, 100+i*20+7)
} void GameBegain(void)/*游戏开始画面*/ {int i, j
cleardevice()
if(gamePLAY != 1) {MouseSetXY(290, 70)
/ *鼠标一开始的位置, 并作为它的初始坐标*/ MouseX = 290
MouseY = 70
} gamePLAY = 1
/*下次按重新开始的话鼠标不重新初始化*/ mineNUM = 0
setfillstyle(SOLID_FILL, 7)
bar(喵)
for(i=0
i < 10
i++)/*画格子*/ for(j=0
j < 10
j++) DrawEmpty(i, j, 0, 8)
setcolor(7)
DrawSmile()
/*画脸*/ randomize()
for(i=0
i < 10
i++) / *100个格子随机赋值有没有地雷*/ for(j=0
j < 10
j++) {Mine[i][j].num = random(8)
/ *如果随机数的结果是1表示这个格子有地雷*/
if(Mine[i][j].num == 1) mineNUM++
/ *现有雷数加1*/ else Mine[i][j].num = 2
Mine[i][j].flag = 0
/ *表示没红旗标志*/} sprintf(randmineNUM, "%d", mineNUM)
/ *显示这次总共有多少雷数*/ setcolor(1)
settextstyle(0, 0, 2)
outtextxy(210, 70, randmineNUM)
mineNUM = 100-mineNUM
/*变量取空白格数量*/ MouseOn()
} void GameOver(void)/*游戏结束画面*/ {int i, j
setcolor(0)
for(i=0
i < 10
i++) for(j=0
j < 10
j++) if(Mine[i][j].num == 1)/*显示所有的地雷*/ {DrawEmpty(i, j, 0, RED)
setfillstyle(
SOLID_FILL, BLACK)
fillellipse(200+j*20, 100+i*20, 7, 7)
}} void GameWin(void)/*显示胜利*/ {setcolor(11)
settextstyle(0, 0, 2)
outtextxy(230, 30, "YOU WIN!")
} int MineStatistics(int i, int j)/*统计每个格子周围的雷数*/ {int nNUM = 0
if(i == 0 & &j == 0)/*左上角格子的统计*/ {if(Mine[0][1].num == 1) nNUM++
if(Mine[1][0].num == 1) nNUM++
if(Mine[1][1].num == 1) nNUM++
}
} void MouseOff(void)/*鼠标光标隐藏*/ {_AX = 0x02
geninterrupt(0x33)
} void MouseSetXY(int x, int y)/*设置当前位置*/ {_CX = x
_DX = y
_AX = 0x04
geninterrupt(0x33)
} int LeftPress(void)/*鼠标左键按下*/ {_AX = 0x03
geninterrupt(0x33)
return(_BX & 1)
} int RightPress(void)/*鼠标右键按下*/ {_AX = 0x03
geninterrupt(0x33)
return(_BX & 2)
} void MouseGetXY(void)/*得到当前位置*/ {_AX = 0x03
geninterrupt(0x33)
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn
石雨夕666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
点赞1
评论