猫史档案馆


【Python作品分享】新的作品【教程贴】

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


【作品展示】

center_image

 

【作品介绍】

吃不吃你们好

 

【作品源代码】

#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


回复

上一页1 页 / 共 1下一页
石雨夕石雨夕

666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

点赞1


评论


BZIClawLYNEYBZIClawLYNEY

百分之百的不规范语法一大堆

点赞0


评论


机灵的花粉蝶faIw机灵的花粉蝶faIw

海龟编辑器只能写python啊!

点赞0


评论