爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      C语言零基础项目:打地鼠,详细思路+源码分享

      首页 知识中心 软件开发 文章详情页

      C语言零基础项目:打地鼠,详细思路+源码分享

      2025-03-06 09:16:45 阅读次数:10

      游戏

      程序简介

      打地鼠,点击鼹鼠的小游戏。游戏界面是仿照 unity 书上的素材绘制的。纯手工绘制,不添加任何图片。

      我喜欢打地鼠游戏,因为了解这个游戏,又有书配套的素材,我最先想的便是制作它。

      相比于之前,这次重新制作,更新了一些东西。

      添加了红眼鼹鼠,点击红眼鼹鼠会对分数产生特殊增减效果。鼹鼠是自己画的,所以如果愿意的话,可以有各种各样颜色的鼹鼠。增加这个功能的原意是代替“炸弹”。

      游戏图片素材改为“手绘”,这是因为这个游戏素材不多,比较简单。遇到复杂游戏肯定还是要用图片,将程序和美工分开^-^。

      代码更新,现在兼容 vc2010

      vc2010:_stscanf_s,vc6.0:_stscanf

      vc2010:_stprintf_s,vc6.0:_stprintf

      程序运行展示

      C语言零基础项目:打地鼠,详细思路+源码分享

       

       

      
      
      
      // 游戏进程头文件 //
      
      
      # include <graphics.h>
      # include <string>
      # include <time.h>
      # include <stdlib.h>
      
      
      // 头文件
      // 头文件编译开始
      #ifndef CIRCLE_H
      #define CIRCLE_H
      
      
      // 定义变量
      static HWND hOut;                    // 画布
      
      
      // 定义一个结构体,地洞
      struct Node1
      {
          int boxnum;                        // 地洞编号
          int posx_hole, posy_hole;        // 地洞坐标
          int posx_gopher, posy_gopher;    // 鼹鼠坐标
          int time_life;                    // 剩余时间
          int type;                        // 地洞状态
      };
      
      
      // 定义一个结构体,按钮
      struct Node2
      {
          int posx1, posy1, posx2, posy2;    // 坐标
          double r;                        // 圆按钮半径
          LPTSTR text;                    // 按钮文本
          int type;                        // 按钮激活状态
      };
      
      
      // 定义一个类,game
      class game
      {
      public:
          int carry_main ();                                                    // 游戏进程主循函数
          void draw_button ();                                                // 按钮绘制函数
          void draw_word (double size, int posx, int posy, LPTSTR text);        // 标题绘制函数
          void creact_gopher ();                                                // 生成鼹鼠函数
          void draw_cloud (double posx, double posy, double size);            // 云朵绘制函数
          void draw_left_railing (double posx, double posy, double size);        // 左栏杆绘制函数
          void draw_left_fence (double posx, double posy, double size);        // 左栅栏绘制函数
          void draw_right_railing (double posx, double posy, double size);    // 右栏杆绘制函数
          void draw_right_fence (double posx, double posy, double size);        // 右栅栏绘制函数
          void draw_gopher (double posx, double posy, double size, int flag);    // 鼹鼠绘制函数
          void draw_hole (double posx, double posy, double size);                // 地洞绘制函数
          void carry_prepare ();                                                // 准备进程主循函数
          void initialization_prepare ();                                        // 准备进程初始化函数    
          void draw_scene_prepare ();                                            // 准备进程绘制函数
          void carry_start ();                                                // 开始进程主循函数
          void initialization_start ();                                        // 开始进程初始化函数
          void draw_scene_start ();                                            // 开始进程绘制函数
          Node1 box[10];                                                        // 地洞,预制
          Node2 boxm[20];                                                        // 按钮,预制
          int num_button;                                                        // 按钮数量
          int exit_carry;                                                        // 主进程主循函数控制参数
          int exit_start;                                                        // 开始进程主循函数控制参数
          int start_endtime;                                                    // 结束时间参数
          int start_point;                                                    // 分数参数
          int speed_creact;                                                    // 生成时间间隔参数
          int speed_gopher_life;                                                // 鼹鼠存在时间参数
          int speed_gopher_beaten;                                            // 鼹鼠被击打后僵直时间参数
          int hole_full_end;                                                    // 溢满是否结束控制参数
          int gopher_red_eye_num;                                                // 红眼数量参数
          int point_punishment;                                                // 点击红眼得分改变参数
          int every_creact_num;                                                // 每次生成数量        
          clock_t start_t1;                                                    // 游戏开始系统时间参数
          clock_t start_t2;                                                    // 游戏进行系统时间参数
      };
      
      
      // 头文件编译结束
      #endif
      
      
      // 主程序源文件 //
      
      
      // 窗口初始化
      void initialization ()
      {
          // 窗口定义,整个程序仅定义一次
          hOut = initgraph (800, 480);
          // 窗口标题
          SetWindowText (hOut, _T ("打地鼠"));
      }
      
      
      // 总进程主循函数
      void carry ()
      {
          // 总进程参数初始化
          int exit_carry = 0;
          // 进程控制
          BeginBatchDraw ();
          // 创建游戏类对象
          game G;
          // 游戏进程
          while (exit_carry == 0)
          {
              // 执行游戏总进程,并接收游戏进程结束时返回值
              // 准备进程时,点击退出按钮结束返回 1
              // 开始进程时,点击返回按钮结束返回 0
              exit_carry = G.carry_main ();
          }
          EndBatchDraw ();
          // 关闭窗口
          closegraph ();
      }
      
      
      // 主函数
      int main (void)
      {
          // 初始化
          initialization ();
          // 总进程主循函数
          carry ();
          return 0;
      }
      
      
      // 游戏进程源文件 //
      
      
      
      // 游戏进程主循函数
      int game::carry_main ()
      {
          // 游戏进程参数初始化
          exit_carry = 0;
          // 随机种子初始化
          srand ((unsigned)time (NULL));
          // 游戏难度参数初始化
          speed_creact = 5;
          speed_gopher_life = 30;
          speed_gopher_beaten = 10;
          gopher_red_eye_num = 5;
          point_punishment = -5;
          every_creact_num = 1;
          // 溢满参数初始化
          hole_full_end = 0;
          // 准备进程初始化函数
          initialization_prepare ();
          // 准备进程主循函数
          carry_prepare ();
          // 准备进程结束
          // 准备进程时,点击退出按钮结束,游戏进程参数为 1
          // 准备进程时,正常进入游戏,游戏进程参数为 0
          if (exit_carry == 0)
          {
              // 开始进程初始化函数
              initialization_start ();
              // 开始进程主循函数
              carry_start ();
          }
          // 开始进程结束
          // 点击返回按钮结束,或者正常游戏结束,游戏进程参数不变
          return exit_carry;
      }
      
      
      // 按钮绘制函数
      void game::draw_button ()
      {
          // 根据颜色结构体设置参数
          setlinecolor (RGB (125, 125, 125));
          setfillcolor (RGB (88, 88, 88));
          setbkcolor (RGB (88, 88, 88));
          settextcolor (RGB (250, 250, 250));
          settextstyle (30, 15, _T ("Consolas"));
          setlinestyle (PS_SOLID, 10);
      
          // 根据按钮数量参数绘制
          for (int i = 0; i < num_button; i++)
          {
              if (boxm[i].type == 0)
              {
                  // 边框
                  fillroundrect (boxm[i].posx1, boxm[i].posy1, boxm[i].posx2, boxm[i].posy2, 25, 25);
                  // 文字
                  outtextxy (boxm[i].posx1 + (boxm[i].posx2 - boxm[i].posx1) / 2 - textwidth (boxm[i].text) / 2, boxm[i].posy1 + 15, boxm[i].text);
              }
          }
          FlushBatchDraw ();
      }
      
      
      // 文字绘制函数
      void game::draw_word (double size, int posx, int posy, LPTSTR text)
      {
          int i, j;
      
          // 参数设置,填充透明
          setbkmode (TRANSPARENT);
          settextstyle (int (size), int (size / 5 * 2), _T ("Consolas"));
      
          // 背景色的反色
          settextcolor (BLACK);
          // 范围绘制,构造阴影
          for (i = posx - 3; i <= posx + 3; i++)
          {
              for (j = posy - 3; j <= posy + 3; j++)
              {
                  outtextxy (i, j, text);
              }
          }
      
          // 背景色
          settextcolor (WHITE);
          // 在阴影中绘制
          outtextxy (posx, posy, text);
      
          // 恢复填充
          setbkmode (OPAQUE);
          FlushBatchDraw ();
      }
      
      
      // 地洞绘制函数
      void game::draw_hole (double posx, double posy, double size)
      {
          POINT pts[100];
      
          setlinestyle (PS_SOLID, 2);
          // 设置
          setlinecolor (RGB (137, 98, 49));
          setfillcolor (RGB (193, 139, 79));
          pts[0].x = long (-236 * size + posx);    pts[0].y = long (-204 * size + posy);
          pts[1].x = long (-220 * size + posx);    pts[1].y = long (-235 * size + posy);
          pts[2].x = long (-187 * size + posx);    pts[2].y = long (-249 * size + posy);
          pts[3].x = long (-154 * size + posx);    pts[3].y = long (-256 * size + posy);
          pts[4].x = long (-106 * size + posx);    pts[4].y = long (-247 * size + posy);
          pts[5].x = long (-51 * size + posx);    pts[5].y = long (-243 * size + posy);
          pts[6].x = long (-25 * size + posx);    pts[6].y = long (-250 * size + posy);
          pts[7].x = long (13 * size + posx);    pts[7].y = long (-282 * size + posy);
          pts[8].x = long (52 * size + posx);    pts[8].y = long (-292 * size + posy);
          pts[9].x = long (90 * size + posx);    pts[9].y = long (-285 * size + posy);
          pts[10].x = long (97 * size + posx);    pts[10].y = long (-267 * size + posy);
          pts[11].x = long (118 * size + posx);    pts[11].y = long (-248 * size + posy);
          pts[12].x = long (150 * size + posx);    pts[12].y = long (-238 * size + posy);
          pts[13].x = long (185 * size + posx);    pts[13].y = long (-256 * size + posy);
          pts[14].x = long (213 * size + posx);    pts[14].y = long (-276 * size + posy);
          pts[15].x = long (254 * size + posx);    pts[15].y = long (-287 * size + posy);
          pts[16].x = long (287 * size + posx);    pts[16].y = long (-279 * size + posy);
          pts[17].x = long (325 * size + posx);    pts[17].y = long (-264 * size + posy);
          pts[18].x = long (342 * size + posx);    pts[18].y = long (-209 * size + posy);
          pts[19].x = long (328 * size + posx);    pts[19].y = long (-199 * size + posy);
          pts[20].x = long (306 * size + posx);    pts[20].y = long (-202 * size + posy);
          pts[21].x = long (271 * size + posx);    pts[21].y = long (-213 * size + posy);
          pts[22].x = long (246 * size + posx);    pts[22].y = long (-209 * size + posy);
          pts[23].x = long (217 * size + posx);    pts[23].y = long (-199 * size + posy);
          pts[24].x = long (186 * size + posx);    pts[24].y = long (-196 * size + posy);
          pts[25].x = long (143 * size + posx);    pts[25].y = long (-197 * size + posy);
          pts[26].x = long (101 * size + posx);    pts[26].y = long (-204 * size + posy);
          pts[27].x = long (60 * size + posx);    pts[27].y = long (-228 * size + posy);
          pts[28].x = long (47 * size + posx);    pts[28].y = long (-241 * size + posy);
          pts[29].x = long (26 * size + posx);    pts[29].y = long (-223 * size + posy);
          pts[30].x = long (2 * size + posx);    pts[30].y = long (-204 * size + posy);
          pts[31].x = long (-14 * size + posx);    pts[31].y = long (-198 * size + posy);
          pts[32].x = long (-42 * size + posx);    pts[32].y = long (-192 * size + posy);
          pts[33].x = long (-74 * size + posx);    pts[33].y = long (-190 * size + posy);
          pts[34].x = long (-108 * size + posx);    pts[34].y = long (-195 * size + posy);
          pts[35].x = long (-139 * size + posx);    pts[35].y = long (-203 * size + posy);
          pts[36].x = long (-167 * size + posx);    pts[36].y = long (-192 * size + posy);
          pts[37].x = long (-194 * size + posx);    pts[37].y = long (-181 * size + posy);
          pts[38].x = long (-206 * size + posx);    pts[38].y = long (-163 * size + posy);
          pts[39].x = long (-227 * size + posx);    pts[39].y = long (-161 * size + posy);
          pts[40].x = long (-236 * size + posx);    pts[40].y = long (-169 * size + posy);
          pts[41].x = long (-231 * size + posx);    pts[41].y = long (-198 * size + posy);
          pts[42].x = long (-226 * size + posx);    pts[42].y = long (-208 * size + posy);
          // 绘制
          fillpolygon (pts, 43);
      
      }
      
      
      // 云朵绘制函数
      void game::draw_cloud (double posx, double posy, double size)
      {
          POINT pts[100];
          setlinestyle (PS_SOLID, 1);
          // 设置
          setlinecolor (RGB (239, 250, 255));
          setfillcolor (RGB (239, 250, 255));
          pts[0].x = long (370 * size + posx);    pts[0].y = long (-230 * size + posy);
          pts[1].x = long (382 * size + posx);    pts[1].y = long (-241 * size + posy);
          pts[2].x = long (386 * size + posx);    pts[2].y = long (-243 * size + posy);
          pts[3].x = long (399 * size + posx);    pts[3].y = long (-241 * size + posy);
          pts[4].x = long (410 * size + posx);    pts[4].y = long (-240 * size + posy);
          pts[5].x = long (421 * size + posx);    pts[5].y = long (-236 * size + posy);
          pts[6].x = long (436 * size + posx);    pts[6].y = long (-240 * size + posy);
          pts[7].x = long (447 * size + posx);    pts[7].y = long (-242 * size + posy);
          pts[8].x = long (454 * size + posx);    pts[8].y = long (-238 * size + posy);
          pts[9].x = long (459 * size + posx);    pts[9].y = long (-231 * size + posy);
          pts[10].x = long (459 * size + posx);    pts[10].y = long (-222 * size + posy);
          pts[11].x = long (453 * size + posx);    pts[11].y = long (-216 * size + posy);
          pts[12].x = long (445 * size + posx);    pts[12].y = long (-212 * size + posy);
          pts[13].x = long (432 * size + posx);    pts[13].y = long (-212 * size + posy);
          pts[14].x = long (423 * size + posx);    pts[14].y = long (-212 * size + posy);
          pts[15].x = long (415 * size + posx);    pts[15].y = long (-212 * size + posy);
          pts[16].x = long (397 * size + posx);    pts[16].y = long (-215 * size + posy);
          pts[17].x = long (386 * size + posx);    pts[17].y = long (-211 * size + posy);
          pts[18].x = long (380 * size + posx);    pts[18].y = long (-211 * size + posy);
          pts[19].x = long (375 * size + posx);    pts[19].y = long (-219 * size + posy);
          pts[20].x = long (369 * size + posx);    pts[20].y = long (-229 * size + posy);
          // 绘制
          fillpolygon (pts, 21);
      }
      
      
      // 左栏杆绘制函数
      void game::draw_left_railing (double posx, double posy, double size)
      {
          POINT pts[100];
          setlinestyle (PS_SOLID, 1);
          // 绘制
          setlinecolor (RGB (238, 212, 89));
          setfillcolor (RGB (238, 212, 89));
          pts[0].x = long (-261 * size + posx);    pts[0].y = long (72 * size + posy);
          pts[1].x = long (-271 * size + posx);    pts[1].y = long (82 * size + posy);
          pts[2].x = long (-258 * size + posx);    pts[2].y = long (86 * size + posy);
          pts[3].x = long (-249 * size + posx);    pts[3].y = long (75 * size + posy);
          fillpolygon (pts, 4);
      
          setlinecolor (RGB (212, 189, 83));
          setfillcolor (RGB (212, 189, 83));
          pts[0].x = long (-271 * size + posx);    pts[0].y = long (83 * size + posy);
          pts[1].x = long (-271 * size + posx);    pts[1].y = long (151 * size + posy);
          pts[2].x = long (-258 * size + posx);    pts[2].y = long (159 * size + posy);
          pts[3].x = long (-258 * size + posx);    pts[3].y = long (85 * size + posy);
          fillpolygon (pts, 4);
      
          setlinecolor (RGB (243, 225, 135));
          setfillcolor (RGB (243, 225, 135));
          pts[0].x = long (-258 * size + posx);    pts[0].y = long (159 * size + posy);
          pts[1].x = long (-258 * size + posx);    pts[1].y = long (85 * size + posy);
          pts[2].x = long (-250 * size + posx);    pts[2].y = long (77 * size + posy);
          pts[3].x = long (-250 * size + posx);    pts[3].y = long (149 * size + posy);
          fillpolygon (pts, 4);
      }
      
      
      // 左栅栏绘制函数
      void game::draw_left_fence (double posx, double posy, double size)
      {
          POINT pts[100];
          setlinestyle (PS_SOLID, 1);
      
          setlinecolor (RGB (241, 217, 109));
          setfillcolor (RGB (241, 217, 109));
          pts[0].x = long (-173 * size + posx);    pts[0].y = long (-54 * size + posy);
          pts[1].x = long (-159 * size + posx);    pts[1].y = long (-75 * size + posy);
          pts[2].x = long (-156 * size + posx);    pts[2].y = long (-77 * size + posy);
          pts[3].x = long (-154 * size + posx);    pts[3].y = long (-75 * size + posy);
          pts[4].x = long (-155 * size + posx);    pts[4].y = long (-72 * size + posy);
          pts[5].x = long (-158 * size + posx);    pts[5].y = long (-67 * size + posy);
          pts[6].x = long (-170 * size + posx);    pts[6].y = long (-48 * size + posy);
          fillpolygon (pts, 7);
      }
      
      
      // 右栏杆绘制函数
      void game::draw_right_railing (double posx, double posy, double size)
      {
          POINT pts[100];
          setlinestyle (PS_SOLID, 1);
          // 绘制
          setlinecolor (RGB (238, 212, 89));
          setfillcolor (RGB (238, 212, 89));
          pts[0].x = long (494 * size + posx);    pts[0].y = long (132 * size + posy);
          pts[1].x = long (503 * size + posx);    pts[1].y = long (139 * size + posy);
          pts[2].x = long (515 * size + posx);    pts[2].y = long (135 * size + posy);
          pts[3].x = long (507 * size + posx);    pts[3].y = long (127 * size + posy);
          fillpolygon (pts, 4);
      
          setlinecolor (RGB (212, 189, 83));
          setfillcolor (RGB (212, 189, 83));
          pts[0].x = long (499 * size + posx);    pts[0].y = long (211 * size + posy);
          pts[1].x = long (502 * size + posx);    pts[1].y = long (139 * size + posy);
          pts[2].x = long (515 * size + posx);    pts[2].y = long (136 * size + posy);
          pts[3].x = long (512 * size + posx);    pts[3].y = long (209 * size + posy);
          fillpolygon (pts, 4);
      
          setlinecolor (RGB (243, 225, 135));
          setfillcolor (RGB (243, 225, 135));
          pts[0].x = long (493 * size + posx);    pts[0].y = long (132 * size + posy);
          pts[1].x = long (489 * size + posx);    pts[1].y = long (201 * size + posy);
          pts[2].x = long (499 * size + posx);    pts[2].y = long (211 * size + posy);
          pts[3].x = long (502 * size + posx);    pts[3].y = long (139 * size + posy);
          fillpolygon (pts, 4);
      }
      
      
      // 右栅栏绘制函数
      void game::draw_right_fence (double posx, double posy, double size)
      {
          POINT pts[100];
          // 绘制
          setlinestyle (PS_SOLID, 1);
          setlinecolor (RGB (241, 217, 109));
          setfillcolor (RGB (241, 217, 109));
          pts[0].x = long (405 * size + posx);    pts[0].y = long (-58 * size + posy);
          pts[1].x = long (393 * size + posx);    pts[1].y = long (-78 * size + posy);
          pts[2].x = long (394 * size + posx);    pts[2].y = long (-85 * size + posy);
          pts[3].x = long (398 * size + posx);    pts[3].y = long (-88 * size + posy);
          pts[4].x = long (402 * size + posx);    pts[4].y = long (-81 * size + posy);
          pts[5].x = long (411 * size + posx);    pts[5].y = long (-63 * size + posy);
          fillpolygon (pts, 6);
      }
      
      
      // 鼹鼠绘制函数
      void game::draw_gopher (double posx, double posy, double size, int flag)
      {
          int i;
          POINT pts[100];
          setlinestyle (PS_SOLID, 2);
          // 外轮廓
          setlinecolor (BLACK);
          setfillcolor (RGB (165, 106, 50));
          pts[0].x = long (-232 * size + posx);    pts[0].y = long (292.00 * size + posy);
          pts[1].x = long (-232 * size + posx);    pts[1].y = long (235.00 * size + posy);
          pts[2].x = long (-245 * size + posx);    pts[2].y = long (252.00 * size + posy);
          pts[3].x = long (-255 * size + posx);    pts[3].y = long (250.00 * size + posy);
          pts[4].x = long (-259 * size + posx);    pts[4].y = long (241.00 * size + posy);
          pts[5].x = long (-274 * size + posx);    pts[5].y = long (245.00 * size + posy);
          pts[6].x = long (-274 * size + posx);    pts[6].y = long (232.00 * size + posy);
          pts[7].x = long (-288 * size + posx);    pts[7].y = long (234.00 * size + posy);
          pts[8].x = long (-297 * size + posx);    pts[8].y = long (217.00 * size + posy);
          pts[9].x = long (-282 * size + posx);    pts[9].y = long (202.00 * size + posy);
          pts[10].x = long (-296 * size + posx);    pts[10].y = long (186.00 * size + posy);
          pts[11].x = long (-285 * size + posx);    pts[11].y = long (179.00 * size + posy);
          pts[12].x = long (-269 * size + posx);    pts[12].y = long (178.00 * size + posy);
          pts[13].x = long (-269 * size + posx);    pts[13].y = long (153.00 * size + posy);
          pts[14].x = long (-191 * size + posx);    pts[14].y = long (50.00 * size + posy);
          pts[15].x = long (-189 * size + posx);    pts[15].y = long (-133.00 * size + posy);
          pts[16].x = long (-217 * size + posx);    pts[16].y = long (-187.00 * size + posy);
          pts[17].x = long (-218 * size + posx);    pts[17].y = long (-231.00 * size + posy);
          pts[18].x = long (-201 * size + posx);    pts[18].y = long (-262.00 * size + posy);
          pts[19].x = long (-167 * size + posx);    pts[19].y = long (-287.00 * size + posy);
          pts[20].x = long (-138 * size + posx);    pts[20].y = long (-287.00 * size + posy);
          pts[21].x = long (-134 * size + posx);    pts[21].y = long (-279.00 * size + posy);
          pts[22].x = long (-119 * size + posx);    pts[22].y = long (-279.00 * size + posy);
          pts[23].x = long (-105 * size + posx);    pts[23].y = long (-260.00 * size + posy);
          pts[24].x = long (-84 * size + posx);    pts[24].y = long (-273.00 * size + posy);
          pts[25].x = long (-75 * size + posx);    pts[25].y = long (-280.00 * size + posy);
          pts[26].x = long (-37 * size + posx);    pts[26].y = long (-278.00 * size + posy);
          pts[27].x = long (-23 * size + posx);    pts[27].y = long (-287.00 * size + posy);
          pts[28].x = long (26 * size + posx);    pts[28].y = long (-286.00 * size + posy);
          pts[29].x = long (37 * size + posx);    pts[29].y = long (-274.00 * size + posy);
          pts[30].x = long (58 * size + posx);    pts[30].y = long (-278.00 * size + posy);
          pts[31].x = long (69 * size + posx);    pts[31].y = long (-269.00 * size + posy);
          pts[32].x = long (100 * size + posx);    pts[32].y = long (-269.00 * size + posy);
          pts[33].x = long (129 * size + posx);    pts[33].y = long (-295.00 * size + posy);
          pts[34].x = long (166 * size + posx);    pts[34].y = long (-294.00 * size + posy);
          pts[35].x = long (182 * size + posx);    pts[35].y = long (-286.00 * size + posy);
          pts[36].x = long (205 * size + posx);    pts[36].y = long (-259.00 * size + posy);
          pts[37].x = long (212 * size + posx);    pts[37].y = long (-237.00 * size + posy);
          pts[38].x = long (210 * size + posx);    pts[38].y = long (-223.00 * size + posy);
          pts[39].x = long (217 * size + posx);    pts[39].y = long (-212.00 * size + posy);
          pts[40].x = long (211 * size + posx);    pts[40].y = long (-188.00 * size + posy);
          pts[41].x = long (189 * size + posx);    pts[41].y = long (-136.00 * size + posy);
          pts[42].x = long (193 * size + posx);    pts[42].y = long (-83.00 * size + posy);
          pts[43].x = long (193 * size + posx);    pts[43].y = long (-9.00 * size + posy);
          pts[44].x = long (189 * size + posx);    pts[44].y = long (-1.00 * size + posy);
          pts[45].x = long (191 * size + posx);    pts[45].y = long (42.00 * size + posy);
          pts[46].x = long (230 * size + posx);    pts[46].y = long (90.00 * size + posy);
          pts[47].x = long (236 * size + posx);    pts[47].y = long (108.00 * size + posy);
          pts[48].x = long (254 * size + posx);    pts[48].y = long (119.00 * size + posy);
          pts[49].x = long (265 * size + posx);    pts[49].y = long (149.00 * size + posy);
          pts[50].x = long (276 * size + posx);    pts[50].y = long (160.00 * size + posy);
          pts[51].x = long (301 * size + posx);    pts[51].y = long (188.00 * size + posy);
          pts[52].x = long (302 * size + posx);    pts[52].y = long (202.00 * size + posy);
          pts[53].x = long (295 * size + posx);    pts[53].y = long (209.00 * size + posy);
          pts[54].x = long (296 * size + posx);    pts[54].y = long (235.00 * size + posy);
          pts[55].x = long (273 * size + posx);    pts[55].y = long (240.00 * size + posy);
          pts[56].x = long (272 * size + posx);    pts[56].y = long (254.00 * size + posy);
          pts[57].x = long (251 * size + posx);    pts[57].y = long (249.00 * size + posy);
          pts[58].x = long (234 * size + posx);    pts[58].y = long (232.00 * size + posy);
          pts[59].x = long (235 * size + posx);    pts[59].y = long (290.00 * size + posy);
          fillpolygon (pts, 60);
          setlinestyle (PS_SOLID, 1);
          // 左耳廓
          setlinecolor (RGB (249, 230, 218));
          setfillcolor (RGB (249, 230, 218));
          pts[0].x = long (-193 * size + posx);    pts[0].y = long (-181.00 * size + posy);
          pts[1].x = long (-160 * size + posx);    pts[1].y = long (-214.00 * size + posy);
          pts[2].x = long (-122 * size + posx);    pts[2].y = long (-243.00 * size + posy);
          pts[3].x = long (-139 * size + posx);    pts[3].y = long (-267.00 * size + posy);
          pts[4].x = long (-163 * size + posx);    pts[4].y = long (-270.00 * size + posy);
          pts[5].x = long (-181 * size + posx);    pts[5].y = long (-260.00 * size + posy);
          pts[6].x = long (-199 * size + posx);    pts[6].y = long (-235.00 * size + posy);
          pts[7].x = long (-198 * size + posx);    pts[7].y = long (-188.00 * size + posy);
          pts[8].x = long (-185 * size + posx);    pts[8].y = long (-169.00 * size + posy);
          fillpolygon (pts, 9);
          // 右耳廓
          pts[0].x = long (121 * size + posx);    pts[0].y = long (-256.00 * size + posy);
          pts[1].x = long (139 * size + posx);    pts[1].y = long (-273.00 * size + posy);
          pts[2].x = long (169 * size + posx);    pts[2].y = long (-273.00 * size + posy);
          pts[3].x = long (188 * size + posx);    pts[3].y = long (-254.00 * size + posy);
          pts[4].x = long (197 * size + posx);    pts[4].y = long (-235.00 * size + posy);
          pts[5].x = long (201 * size + posx);    pts[5].y = long (-216.00 * size + posy);
          pts[6].x = long (190 * size + posx);    pts[6].y = long (-193.00 * size + posy);
          pts[7].x = long (178 * size + posx);    pts[7].y = long (-181.00 * size + posy);
          pts[8].x = long (119 * size + posx);    pts[8].y = long (-254.00 * size + posy);
          fillpolygon (pts, 9);
          // 左耳毛
          setlinecolor (RGB (54, 36, 19));
          setfillcolor (RGB (54, 36, 19));
          pts[0].x = long (-181 * size + posx);    pts[0].y = long (-163.00 * size + posy);
          pts[1].x = long (-191 * size + posx);    pts[1].y = long (-178.00 * size + posy);
          pts[2].x = long (-187 * size + posx);    pts[2].y = long (-192.00 * size + posy);
          pts[3].x = long (-194 * size + posx);    pts[3].y = long (-211.00 * size + posy);
          pts[4].x = long (-188 * size + posx);    pts[4].y = long (-233.00 * size + posy);
          pts[5].x = long (-183 * size + posx);    pts[5].y = long (-214.00 * size + posy);
          pts[6].x = long (-174 * size + posx);    pts[6].y = long (-202.00 * size + posy);
          pts[7].x = long (-170 * size + posx);    pts[7].y = long (-206.00 * size + posy);
          pts[8].x = long (-170 * size + posx);    pts[8].y = long (-223.00 * size + posy);
          pts[9].x = long (-153 * size + posx);    pts[9].y = long (-228.00 * size + posy);
          pts[10].x = long (-167 * size + posx);    pts[10].y = long (-235.00 * size + posy);
          pts[11].x = long (-161 * size + posx);    pts[11].y = long (-260.00 * size + posy);
          pts[12].x = long (-148 * size + posx);    pts[12].y = long (-253.00 * size + posy);
          pts[13].x = long (-147 * size + posx);    pts[13].y = long (-243.00 * size + posy);
          pts[14].x = long (-140 * size + posx);    pts[14].y = long (-251.00 * size + posy);
          pts[15].x = long (-125 * size + posx);    pts[15].y = long (-238.00 * size + posy);
          pts[16].x = long (-134 * size + posx);    pts[16].y = long (-232.00 * size + posy);
          pts[17].x = long (-139 * size + posx);    pts[17].y = long (-223.00 * size + posy);
          pts[18].x = long (-151 * size + posx);    pts[18].y = long (-225.00 * size + posy);
          pts[19].x = long (-147 * size + posx);    pts[19].y = long (-201.00 * size + posy);
          pts[20].x = long (-168 * size + posx);    pts[20].y = long (-191.00 * size + posy);
          pts[21].x = long (-177 * size + posx);    pts[21].y = long (-182.00 * size + posy);
          pts[22].x = long (-177 * size + posx);    pts[22].y = long (-165.00 * size + posy);
          fillpolygon (pts, 22);
          // 右耳毛
          pts[0].x = long (117 * size + posx);    pts[0].y = long (-254.00 * size + posy);
          pts[1].x = long (134 * size + posx);    pts[1].y = long (-265.00 * size + posy);
          pts[2].x = long (138 * size + posx);    pts[2].y = long (-253.00 * size + posy);
          pts[3].x = long (154 * size + posx);    pts[3].y = long (-254.00 * size + posy);
          pts[4].x = long (157 * size + posx);    pts[4].y = long (-245.00 * size + posy);
          pts[5].x = long (146 * size + posx);    pts[5].y = long (-238.00 * size + posy);
          pts[6].x = long (154 * size + posx);    pts[6].y = long (-226.00 * size + posy);
          pts[7].x = long (160 * size + posx);    pts[7].y = long (-233.00 * size + posy);
          pts[8].x = long (165 * size + posx);    pts[8].y = long (-232.00 * size + posy);
          pts[9].x = long (165 * size + posx);    pts[9].y = long (-217.00 * size + posy);
          pts[10].x = long (157 * size + posx);    pts[10].y = long (-214.00 * size + posy);
          pts[11].x = long (167 * size + posx);    pts[11].y = long (-206.00 * size + posy);
          pts[12].x = long (174 * size + posx);    pts[12].y = long (-213.00 * size + posy);
          pts[13].x = long (180 * size + posx);    pts[13].y = long (-232.00 * size + posy);
          pts[14].x = long (182 * size + posx);    pts[14].y = long (-243.00 * size + posy);
          pts[15].x = long (190 * size + posx);    pts[15].y = long (-224.00 * size + posy);
          pts[16].x = long (187 * size + posx);    pts[16].y = long (-201.00 * size + posy);
          pts[17].x = long (187 * size + posx);    pts[17].y = long (-190.00 * size + posy);
          pts[18].x = long (194 * size + posx);    pts[18].y = long (-191.00 * size + posy);
          pts[19].x = long (181 * size + posx);    pts[19].y = long (-178.00 * size + posy);
          pts[20].x = long (163 * size + posx);    pts[20].y = long (-179.00 * size + posy);
          pts[21].x = long (165 * size + posx);    pts[21].y = long (-191.00 * size + posy);
          pts[22].x = long (154 * size + posx);    pts[22].y = long (-195.00 * size + posy);
          pts[23].x = long (150 * size + posx);    pts[23].y = long (-201.00 * size + posy);
          pts[24].x = long (154 * size + posx);    pts[24].y = long (-216.00 * size + posy);
          pts[25].x = long (139 * size + posx);    pts[25].y = long (-215.00 * size + posy);
          pts[26].x = long (137 * size + posx);    pts[26].y = long (-224.00 * size + posy);
          pts[27].x = long (145 * size + posx);    pts[27].y = long (-225.00 * size + posy);
          pts[28].x = long (136 * size + posx);    pts[28].y = long (-235.00 * size + posy);
          pts[29].x = long (128 * size + posx);    pts[29].y = long (-232.00 * size + posy);
          pts[30].x = long (118 * size + posx);    pts[30].y = long (-251.00 * size + posy);
          fillpolygon (pts, 31);
          // 左眼
          // 正常状态
          if (flag == 1)
          {
              setlinecolor (RGB (5, 2, 1));
              setfillcolor (RGB (5, 2, 1));
          }
          // 僵直状态
          else if (flag == 2)
          {
              setlinecolor (RGB (251, 252, 251));
              setfillcolor (RGB (251, 252, 251));
          }
          // 红眼状态
          else if (flag == 3)
          {
              setlinecolor (LIGHTRED);
              setfillcolor (LIGHTRED);
          }
          pts[0].x = long (-112 * size + posx);    pts[0].y = long (-201.00 * size + posy);
          pts[1].x = long (-75 * size + posx);    pts[1].y = long (-201.00 * size + posy);
          pts[2].x = long (-61 * size + posx);    pts[2].y = long (-186.00 * size + posy);
          pts[3].x = long (-55 * size + posx);    pts[3].y = long (-157.00 * size + posy);
          pts[4].x = long (-46 * size + posx);    pts[4].y = long (-116.00 * size + posy);
          pts[5].x = long (-45 * size + posx);    pts[5].y = long (-88.00 * size + posy);
          pts[6].x = long (-71 * size + posx);    pts[6].y = long (-66.00 * size + posy);
          pts[7].x = long (-101 * size + posx);    pts[7].y = long (-65.00 * size + posy);
          pts[8].x = long (-121 * size + posx);    pts[8].y = long (-68.00 * size + posy);
          pts[9].x = long (-141 * size + posx);    pts[9].y = long (-80.00 * size + posy);
          pts[10].x = long (-160 * size + posx);    pts[10].y = long (-101.00 * size + posy);
          pts[11].x = long (-160 * size + posx);    pts[11].y = long (-113.00 * size + posy);
          pts[12].x = long (-151 * size + posx);    pts[12].y = long (-128.00 * size + posy);
          pts[13].x = long (-150 * size + posx);    pts[13].y = long (-164.00 * size + posy);
          pts[14].x = long (-135 * size + posx);    pts[14].y = long (-185.00 * size + posy);
          pts[15].x = long (-115 * size + posx);    pts[15].y = long (-200.00 * size + posy);
          pts[16].x = long (-114 * size + posx);    pts[16].y = long (-200.00 * size + posy);
          fillpolygon (pts, 17);
          // 右眼
          pts[0].x = long (71 * size + posx);    pts[0].y = long (-199.00 * size + posy);
          pts[1].x = long (109 * size + posx);    pts[1].y = long (-201.00 * size + posy);
          pts[2].x = long (127 * size + posx);    pts[2].y = long (-185.00 * size + posy);
          pts[3].x = long (134 * size + posx);    pts[3].y = long (-167.00 * size + posy);
          pts[4].x = long (144 * size + posx);    pts[4].y = long (-142.00 * size + posy);
          pts[5].x = long (146 * size + posx);    pts[5].y = long (-123.00 * size + posy);
          pts[6].x = long (152 * size + posx);    pts[6].y = long (-123.00 * size + posy);
          pts[7].x = long (151 * size + posx);    pts[7].y = long (-100.00 * size + posy);
          pts[8].x = long (148 * size + posx);    pts[8].y = long (-90.00 * size + posy);
          pts[9].x = long (130 * size + posx);    pts[9].y = long (-74.00 * size + posy);
          pts[10].x = long (108 * size + posx);    pts[10].y = long (-66.00 * size + posy);
          pts[11].x = long (86 * size + posx);    pts[11].y = long (-61.00 * size + posy);
          pts[12].x = long (69 * size + posx);    pts[12].y = long (-67.00 * size + posy);
          pts[13].x = long (47 * size + posx);    pts[13].y = long (-82.00 * size + posy);
          pts[14].x = long (38 * size + posx);    pts[14].y = long (-89.00 * size + posy);
          pts[15].x = long (40 * size + posx);    pts[15].y = long (-145.00 * size + posy);
          pts[16].x = long (48 * size + posx);    pts[16].y = long (-163.00 * size + posy);
          pts[17].x = long (57 * size + posx);    pts[17].y = long (-188.00 * size + posy);
          pts[18].x = long (71 * size + posx);    pts[18].y = long (-199.00 * size + posy);
          fillpolygon (pts, 19);
          // 左眼影
          setlinecolor (RGB (48, 123, 48));
          setfillcolor (RGB (48, 123, 48));
          pts[0].x = long (-132 * size + posx);    pts[0].y = long (-116.00 * size + posy);
          pts[1].x = long (-130 * size + posx);    pts[1].y = long (-116.00 * size + posy);
          pts[2].x = long (-117 * size + posx);    pts[2].y = long (-105.00 * size + posy);
          pts[3].x = long (-104 * size + posx);    pts[3].y = long (-94.00 * size + posy);
          pts[4].x = long (-84 * size + posx);    pts[4].y = long (-95.00 * size + posy);
          pts[5].x = long (-74 * size + posx);    pts[5].y = long (-106.00 * size + posy);
          pts[6].x = long (-68 * size + posx);    pts[6].y = long (-102.00 * size + posy);
          pts[7].x = long (-67 * size + posx);    pts[7].y = long (-92.00 * size + posy);
          pts[8].x = long (-80 * size + posx);    pts[8].y = long (-84.00 * size + posy);
          pts[9].x = long (-118 * size + posx);    pts[9].y = long (-85.00 * size + posy);
          pts[10].x = long (-137 * size + posx);    pts[10].y = long (-100.00 * size + posy);
          pts[11].x = long (-142 * size + posx);    pts[11].y = long (-106.00 * size + posy);
          fillpolygon (pts, 12);
          // 右眼影
          pts[0].x = long (61 * size + posx);    pts[0].y = long (-110.00 * size + posy);
          pts[1].x = long (59 * size + posx);    pts[1].y = long (-93.00 * size + posy);
          pts[2].x = long (78 * size + posx);    pts[2].y = long (-81.00 * size + posy);
          pts[3].x = long (102 * size + posx);    pts[3].y = long (-80.00 * size + posy);
          pts[4].x = long (127 * size + posx);    pts[4].y = long (-99.00 * size + posy);
          pts[5].x = long (131 * size + posx);    pts[5].y = long (-108.00 * size + posy);
          pts[6].x = long (121 * size + posx);    pts[6].y = long (-116.00 * size + posy);
          pts[7].x = long (120 * size + posx);    pts[7].y = long (-118.00 * size + posy);
          pts[8].x = long (118 * size + posx);    pts[8].y = long (-119.00 * size + posy);
          pts[9].x = long (107 * size + posx);    pts[9].y = long (-100.00 * size + posy);
          pts[10].x = long (90 * size + posx);    pts[10].y = long (-96.00 * size + posy);
          pts[11].x = long (77 * size + posx);    pts[11].y = long (-95.00 * size + posy);
          pts[12].x = long (64 * size + posx);    pts[12].y = long (-110.00 * size + posy);
          fillpolygon (pts, 13);
          // 肚白
          setlinecolor (RGB (255, 249, 240));
          setfillcolor (RGB (255, 249, 240));
          pts[0].x = long (-28 * size + posx);    pts[0].y = long (-97.00 * size + posy);
          pts[1].x = long (-53 * size + posx);    pts[1].y = long (-76.00 * size + posy);
          pts[2].x = long (-86 * size + posx);    pts[2].y = long (-50.00 * size + posy);
          pts[3].x = long (-126 * size + posx);    pts[3].y = long (-16.00 * size + posy);
          pts[4].x = long (-172 * size + posx);    pts[4].y = long (46.00 * size + posy);
          pts[5].x = long (-195 * size + posx);    pts[5].y = long (71.00 * size + posy);
          pts[6].x = long (-239 * size + posx);    pts[6].y = long (129.00 * size + posy);
          pts[7].x = long (-236 * size + posx);    pts[7].y = long (143.00 * size + posy);
          pts[8].x = long (-254 * size + posx);    pts[8].y = long (151.00 * size + posy);
          pts[9].x = long (-260 * size + posx);    pts[9].y = long (177.00 * size + posy);
          pts[10].x = long (-264 * size + posx);    pts[10].y = long (186.00 * size + posy);
          pts[11].x = long (-283 * size + posx);    pts[11].y = long (191.00 * size + posy);
          pts[12].x = long (-274 * size + posx);    pts[12].y = long (200.00 * size + posy);
          pts[13].x = long (-272 * size + posx);    pts[13].y = long (210.00 * size + posy);
          pts[14].x = long (-284 * size + posx);    pts[14].y = long (220.00 * size + posy);
          pts[15].x = long (-280 * size + posx);    pts[15].y = long (225.00 * size + posy);
          pts[16].x = long (-278 * size + posx);    pts[16].y = long (229.00 * size + posy);
          pts[17].x = long (-266 * size + posx);    pts[17].y = long (230.00 * size + posy);
          pts[18].x = long (-266 * size + posx);    pts[18].y = long (237.00 * size + posy);
          pts[19].x = long (-254 * size + posx);    pts[19].y = long (239.00 * size + posy);
          pts[20].x = long (-250 * size + posx);    pts[20].y = long (242.00 * size + posy);
          pts[21].x = long (-242 * size + posx);    pts[21].y = long (236.00 * size + posy);
          pts[22].x = long (-231 * size + posx);    pts[22].y = long (230.00 * size + posy);
          pts[23].x = long (-214 * size + posx);    pts[23].y = long (226.00 * size + posy);
          pts[24].x = long (-204 * size + posx);    pts[24].y = long (236.00 * size + posy);
          pts[25].x = long (-212 * size + posx);    pts[25].y = long (266.00 * size + posy);
          pts[26].x = long (-211 * size + posx);    pts[26].y = long (292.00 * size + posy);
          pts[27].x = long (205 * size + posx);    pts[27].y = long (292.00 * size + posy);
          pts[28].x = long (202 * size + posx);    pts[28].y = long (220.00 * size + posy);
          pts[29].x = long (239 * size + posx);    pts[29].y = long (225.00 * size + posy);
          pts[30].x = long (256 * size + posx);    pts[30].y = long (243.00 * size + posy);
          pts[31].x = long (267 * size + posx);    pts[31].y = long (237.00 * size + posy);
          pts[32].x = long (276 * size + posx);    pts[32].y = long (230.00 * size + posy);
          pts[33].x = long (287 * size + posx);    pts[33].y = long (230.00 * size + posy);
          pts[34].x = long (290 * size + posx);    pts[34].y = long (198.00 * size + posy);
          pts[35].x = long (260 * size + posx);    pts[35].y = long (160.00 * size + posy);
          pts[36].x = long (240 * size + posx);    pts[36].y = long (131.00 * size + posy);
          pts[37].x = long (192 * size + posx);    pts[37].y = long (74.00 * size + posy);
          pts[38].x = long (167 * size + posx);    pts[38].y = long (45.00 * size + posy);
          pts[39].x = long (169 * size + posx);    pts[39].y = long (34.00 * size + posy);
          pts[40].x = long (128 * size + posx);    pts[40].y = long (-12.00 * size + posy);
          pts[41].x = long (95 * size + posx);    pts[41].y = long (-41.00 * size + posy);
          pts[42].x = long (68 * size + posx);    pts[42].y = long (-60.00 * size + posy);
          pts[43].x = long (29 * size + posx);    pts[43].y = long (-88.00 * size + posy);
          pts[44].x = long (14 * size + posx);    pts[44].y = long (-95.00 * size + posy);
          pts[45].x = long (-17 * size + posx);    pts[45].y = long (-96.00 * size + posy);
          pts[46].x = long (-27 * size + posx);    pts[46].y = long (-97.00 * size + posy);
          fillpolygon (pts, 47);
          // 左手指
          setlinecolor (RGB (114, 103, 93));
          setfillcolor (RGB (114, 103, 93));
          pts[0].x = long (-261 * size + posx);    pts[0].y = long (191.00 * size + posy);
          pts[1].x = long (-261 * size + posx);    pts[1].y = long (204.00 * size + posy);
          pts[2].x = long (-240 * size + posx);    pts[2].y = long (208.00 * size + posy);
          pts[3].x = long (-240 * size + posx);    pts[3].y = long (194.00 * size + posy);
          pts[4].x = long (-258 * size + posx);    pts[4].y = long (190.00 * size + posy);
          fillpolygon (pts, 5);
          // 右手指
          pts[0].x = long (263 * size + posx);    pts[0].y = long (210.00 * size + posy);
          pts[1].x = long (276 * size + posx);    pts[1].y = long (215.00 * size + posy);
          pts[2].x = long (285 * size + posx);    pts[2].y = long (207.00 * size + posy);
          pts[3].x = long (286 * size + posx);    pts[3].y = long (200.00 * size + posy);
          pts[4].x = long (277 * size + posx);    pts[4].y = long (197.00 * size + posy);
          pts[5].x = long (271 * size + posx);    pts[5].y = long (191.00 * size + posy);
          pts[6].x = long (272 * size + posx);    pts[6].y = long (203.00 * size + posy);
          pts[7].x = long (266 * size + posx);    pts[7].y = long (207.00 * size + posy);
          fillpolygon (pts, 8);
          // 嘴巴
          setlinecolor (BLACK);
          setfillcolor (RGB (252, 252, 251));
          pts[0].x = long (0 * size + posx);    pts[0].y = long (-45.00 * size + posy);
          pts[1].x = long (-21 * size + posx);    pts[1].y = long (-31.00 * size + posy);
          pts[2].x = long (-31 * size + posx);    pts[2].y = long (-7.00 * size + posy);
          pts[3].x = long (-27 * size + posx);    pts[3].y = long (8.00 * size + posy);
          pts[4].x = long (-6 * size + posx);    pts[4].y = long (58.00 * size + posy);
          pts[5].x = long (8 * size + posx);    pts[5].y = long (55.00 * size + posy);
          pts[6].x = long (33 * size + posx);    pts[6].y = long (1.00 * size + posy);
          pts[7].x = long (30 * size + posx);    pts[7].y = long (-16.00 * size + posy);
          pts[8].x = long (2 * size + posx);    pts[8].y = long (-48.00 * size + posy);
          fillpolygon (pts, 9);
          // 胡须
          setlinecolor (BLACK);
          pts[0].x = long (-90 * size + posx);    pts[0].y = long (-49.00 * size + posy);
          pts[1].x = long (-160 * size + posx);    pts[1].y = long (-70.00 * size + posy);
          pts[2].x = long (-271 * size + posx);    pts[2].y = long (-71.00 * size + posy);
          pts[3].x = long (-294 * size + posx);    pts[3].y = long (-59.00 * size + posy);
          for (i = 0; i < 3; i++) { line (pts[i].x, pts[i].y, pts[i + 1].x, pts[i + 1].y); }
          // 胡须
          pts[0].x = long (-108 * size + posx);    pts[0].y = long (-34.00 * size + posy);
          pts[1].x = long (-194 * size + posx);    pts[1].y = long (-37.00 * size + posy);
          pts[2].x = long (-205 * size + posx);    pts[2].y = long (-30.00 * size + posy);
          pts[3].x = long (-251 * size + posx);    pts[3].y = long (-30.00 * size + posy);
          pts[4].x = long (-271 * size + posx);    pts[4].y = long (-21.00 * size + posy);
          pts[5].x = long (-292 * size + posx);    pts[5].y = long (-14.00 * size + posy);
          for (i = 0; i < 5; i++) { line (pts[i].x, pts[i].y, pts[i + 1].x, pts[i + 1].y); }
          // 胡须
          pts[0].x = long (89 * size + posx);    pts[0].y = long (-51.00 * size + posy);
          pts[1].x = long (215 * size + posx);    pts[1].y = long (-100.00 * size + posy);
          pts[2].x = long (304 * size + posx);    pts[2].y = long (-98.00 * size + posy);
          for (i = 0; i < 2; i++) { line (pts[i].x, pts[i].y, pts[i + 1].x, pts[i + 1].y); }
          // 胡须
          pts[0].x = long (110 * size + posx);    pts[0].y = long (-38.00 * size + posy);
          pts[1].x = long (158 * size + posx);    pts[1].y = long (-53.00 * size + posy);
          pts[2].x = long (264 * size + posx);    pts[2].y = long (-55.00 * size + posy);
          pts[3].x = long (311 * size + posx);    pts[3].y = long (-35.00 * size + posy);
          for (i = 0; i < 3; i++) { line (pts[i].x, pts[i].y, pts[i + 1].x, pts[i + 1].y); }
          // 鼻孔
          setlinecolor (BLACK);
          setfillcolor (RGB (145, 142, 126));
          pts[0].x = long (-14 * size + posx);    pts[0].y = long (-65.00 * size + posy);
          pts[1].x = long (-7 * size + posx);    pts[1].y = long (-81.00 * size + posy);
          pts[2].x = long (-2 * size + posx);    pts[2].y = long (-68.00 * size + posy);
          pts[3].x = long (9 * size + posx);    pts[3].y = long (-67.00 * size + posy);
          pts[4].x = long (14 * size + posx);    pts[4].y = long (-79.00 * size + posy);
          pts[5].x = long (21 * size + posx);    pts[5].y = long (-66.00 * size + posy);
          fillpolygon (pts, 6);
          // 眼球
          // 正常状态
          if (flag == 1)
          {
              setlinecolor (WHITE);
              setfillcolor (WHITE);
          }
          // 僵直状态
          else if (flag == 2)
          {
              setlinecolor (RGB (190, 190, 190));
              setfillcolor (WHITE);
          }
          // 红眼状态
          else if (flag == 3)
          {
              setlinecolor (WHITE);
              setfillcolor (WHITE);
          }
      
          pts[0].x = long (-123 * size + posx);    pts[0].y = long (-176 * size + posy);
          pts[1].x = long (-132 * size + posx);    pts[1].y = long (-165 * size + posy);
          pts[2].x = long (-129 * size + posx);    pts[2].y = long (-154 * size + posy);
          pts[3].x = long (-122 * size + posx);    pts[3].y = long (-146 * size + posy);
          pts[4].x = long (-113 * size + posx);    pts[4].y = long (-142 * size + posy);
          pts[5].x = long (-102 * size + posx);    pts[5].y = long (-142 * size + posy);
          pts[6].x = long (-92 * size + posx);    pts[6].y = long (-153 * size + posy);
          pts[7].x = long (-94 * size + posx);    pts[7].y = long (-168 * size + posy);
          pts[8].x = long (-98 * size + posx);    pts[8].y = long (-177 * size + posy);
          pts[9].x = long (-106 * size + posx);    pts[9].y = long (-181 * size + posy);
          pts[10].x = long (-118 * size + posx);    pts[10].y = long (-181 * size + posy);
          fillpolygon (pts, 11);
      
          pts[0].x = long (78 * size + posx);    pts[0].y = long (-178.00 * size + posy);
          pts[1].x = long (72 * size + posx);    pts[1].y = long (-171.00 * size + posy);
          pts[2].x = long (74 * size + posx);    pts[2].y = long (-151.00 * size + posy);
          pts[3].x = long (83 * size + posx);    pts[3].y = long (-141.00 * size + posy);
          pts[4].x = long (101 * size + posx);    pts[4].y = long (-142.00 * size + posy);
          pts[5].x = long (108 * size + posx);    pts[5].y = long (-154.00 * size + posy);
          pts[6].x = long (106 * size + posx);    pts[6].y = long (-170.00 * size + posy);
          pts[7].x = long (101 * size + posx);    pts[7].y = long (-181.00 * size + posy);
          pts[8].x = long (92 * size + posx);    pts[8].y = long (-185.00 * size + posy);
          pts[9].x = long (81 * size + posx);    pts[9].y = long (-184.00 * size + posy);
          fillpolygon (pts, 10);
      }
      
      
      
      // 准备进程源文件 //
      
      
      // 准备进程主循函数
      void game::carry_prepare ()
      {
          TCHAR s[25];
          int i, j;
          // 鼠标定义
          ExMessage m;
          // 准备进程控制参数初始化
          int    exit_prepare = 0;
          // 绘制界面
          draw_scene_prepare ();
          // 主循开始
          while (exit_prepare == 0)
          {
              if (peekmessage (&m, EM_MOUSE | EM_KEY))
              {
                  // 左键单击判断
                  if (m.message == WM_LBUTTONDOWN)
                  {
                      // 判断是否点击了按钮,按钮状态是否为激活
                      for (i = 0; i < num_button; i++)
                      {
                          if (m.x > boxm[i].posx1 && m.y > boxm[i].posy1 && m.x < boxm[i].posx2 && m.y < boxm[i].posy2 && boxm[i].type == 0)
                          {
                              break;
                          }
                      }
      
                      // 开始游戏按钮
                      if (i == 0)
                      {
                          // 开始进程控制参数置零
                          exit_start = 0;
                          // 准备进程控制参数置一,结束主循
                          exit_prepare = 1;
                      }
                      // 设置按钮
                      else if (i == 1)
                      {
                          // 按钮状态参数更新
                          boxm[0].type = 1;
                          boxm[1].type = 1;
                          boxm[2].type = 1;
                          boxm[3].type = 0;
                          boxm[4].type = 0;
                          boxm[5].type = 0;
                          boxm[6].type = 0;
                          boxm[7].type = 1;
                          boxm[8].type = 1;
                          boxm[9].type = 0;
                          boxm[10].type = 0;
                          boxm[11].type = 0;
                      }
                      // 退出按钮
                      else if (i == 2)
                      {
                          // 总进程控制参数置一,跳过开始进程
                          exit_carry = 1;
                          // 准备进程控制参数置一,结束主循
                          exit_prepare = 1;
                      }
                      // 设置生成间隔按钮
                      else if (i == 3)
                      {
                          InputBox (s, 10, _T ("设置生成间隔(0 ~ 30),0 等效为一次生成 9 个"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= 0 && j <= 30)
                          {
                              speed_creact = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      // 设置存在时间按钮
                      else if (i == 4)
                      {
                          InputBox (s, 10, _T ("设置存在时间(0 ~ 200),0 为没有存在时间"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= 0 && j <= 200)
                          {
                              speed_gopher_life = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      // 设置僵直时间按钮
                      else if (i == 5)
                      {
                          InputBox (s, 10, _T ("设置僵直时间(0 ~ 50),0 为没有僵直时间"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= 0 && j <= 50)
                          {
                              speed_gopher_beaten = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      // 返回按钮
                      else if (i == 6)
                      {
                          // 按钮状态参数更新
                          boxm[0].type = 0;
                          boxm[1].type = 0;
                          boxm[2].type = 0;
                          boxm[3].type = 1;
                          boxm[4].type = 1;
                          boxm[5].type = 1;
                          boxm[6].type = 1;
                          if (hole_full_end == 0)
                          {
                              boxm[7].type = 0;
                              boxm[8].type = 1;
                          }
                          else if (hole_full_end == 1)
                          {
                              boxm[7].type = 1;
                              boxm[8].type = 0;
                          }
                          boxm[9].type = 1;
                          boxm[10].type = 1;
                          boxm[11].type = 1;
                      }
                      // 溢满结束状态切换按钮
                      else if (i == 7 || i == 8)
                      {
                          // 切换至开
                          if (hole_full_end == 0)
                          {
                              hole_full_end = 1;
                              boxm[7].type = 1;
                              boxm[8].type = 0;
                          }
                          // 切换至关
                          else if (hole_full_end == 1)
                          {
                              hole_full_end = 0;
                              boxm[7].type = 0;
                              boxm[8].type = 1;
                          }
                      }
                      // 设置红眼数量按钮
                      else if (i == 9)
                      {
                          InputBox (s, 10, _T ("设置红眼数量(0 ~ 10),0 为没有红眼,10 为全部是红眼"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= 0 && j <= 10)
                          {
                              gopher_red_eye_num = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      // 设置红眼得分按钮
                      else if (i == 10)
                      {
                          InputBox (s, 10, _T ("设置红眼得分(-20 ~ 20),负数为惩罚,正数为奖励"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= -20 && j <= 20)
                          {
                              point_punishment = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      // 设置生成数量按钮
                      else if (i == 11)
                      {
                          InputBox (s, 10, _T ("设置生成数量(0 ~ 10),0 为不生成鼹鼠"));
                          _stscanf_s (s, _T ("%d"), &j);
                          if (j >= 0 && j <= 10)
                          {
                              every_creact_num = j;
                          }
                          else
                          {
                              MessageBox (hOut, _T ("输入错误,不在范围内"), _T ("来自小豆子的提醒"), MB_OK);
                          }
                      }
                      if (i < num_button && exit_prepare == 0)
                      {
                          // 点击按钮后,根据按钮激活参数,重新绘制界面
                          draw_scene_prepare ();
                          if (i == 1 || i == 3 || i == 4 || i == 5 || i == 9 || i == 10 || i == 11)
                          {
                              // 生成间隔
                              _stprintf_s (s, _T ("%0.1d"), speed_creact);
                              draw_word (30, 245, 125, s);
      
                              // 存在时间
                              _stprintf_s (s, _T ("%0.1d"), speed_gopher_life);
                              draw_word (30, 245, 225, s);
      
                              // 僵直时间
                              _stprintf_s (s, _T ("%0.1d"), speed_gopher_beaten);
                              draw_word (30, 245, 325, s);
      
                              // 红眼数量
                              _stprintf_s (s, _T ("%0.1d"), gopher_red_eye_num);
                              draw_word (30, 595, 125, s);
      
                              // 红眼得分
                              _stprintf_s (s, _T ("%0.1d"), point_punishment);
                              draw_word (30, 595, 225, s);
      
                              // 生成数量
                              _stprintf_s (s, _T ("%0.1d"), every_creact_num);
                              draw_word (30, 595, 325, s);
      
                          }
                          FlushBatchDraw ();
                      }
                  }
              }
          }
      }
      
      
      // 准备进程初始化函数    
      void game::initialization_prepare ()
      {
          // 按钮设置初始化
          // 按钮数量参数初始化
          num_button = 12;
      
          // 按钮结构体参数初始化
          boxm[0].posx1 = 300; boxm[0].posy1 = 110; boxm[0].posx2 = 500; boxm[0].posy2 = 170; boxm[0].text = _T ("普通模式"); boxm[0].type = 0;
          boxm[1].posx1 = 300; boxm[1].posy1 = 210; boxm[1].posx2 = 500; boxm[1].posy2 = 270; boxm[1].text = _T ("设置");        boxm[1].type = 0;
          boxm[2].posx1 = 300; boxm[2].posy1 = 410; boxm[2].posx2 = 500; boxm[2].posy2 = 470; boxm[2].text = _T ("退出");        boxm[2].type = 0;
      
          boxm[3].posx1 = 100; boxm[3].posy1 = 110; boxm[3].posx2 = 300; boxm[3].posy2 = 170; boxm[3].text = _T ("生成间隔___"); boxm[3].type = 1;
          boxm[4].posx1 = 100; boxm[4].posy1 = 210; boxm[4].posx2 = 300; boxm[4].posy2 = 270; boxm[4].text = _T ("存在时间___");    boxm[4].type = 1;
          boxm[5].posx1 = 100; boxm[5].posy1 = 310; boxm[5].posx2 = 300; boxm[5].posy2 = 370; boxm[5].text = _T ("僵直时间___");    boxm[5].type = 1;
          boxm[6].posx1 = 300; boxm[6].posy1 = 410; boxm[6].posx2 = 500; boxm[6].posy2 = 470; boxm[6].text = _T ("返回");        boxm[6].type = 1;
          boxm[9].posx1 = 450; boxm[9].posy1 = 110; boxm[9].posx2 = 650; boxm[9].posy2 = 170; boxm[9].text = _T ("红眼数量___"); boxm[9].type = 1;
          boxm[10].posx1 = 450; boxm[10].posy1 = 210; boxm[10].posx2 = 650; boxm[10].posy2 = 270; boxm[10].text = _T ("红眼得分___");    boxm[10].type = 1;
          boxm[11].posx1 = 450; boxm[11].posy1 = 310; boxm[11].posx2 = 650; boxm[11].posy2 = 370; boxm[11].text = _T ("生成数量___");    boxm[11].type = 1;
      
          boxm[7].posx1 = 300; boxm[7].posy1 = 310; boxm[7].posx2 = 500; boxm[7].posy2 = 370; boxm[7].text = _T ("溢满结束:关");    boxm[7].type = 0;
          boxm[8].posx1 = 300; boxm[8].posy1 = 310; boxm[8].posx2 = 500; boxm[8].posy2 = 370; boxm[8].text = _T ("溢满结束:开");    boxm[8].type = 1;
          // 得分
          start_point = 0;
      
      }
      
      
      // 准备进程绘制函数
      void game::draw_scene_prepare ()
      {
          // 画布绘制
          setbkcolor (WHITE);
          cleardevice ();
          // 按钮绘制
          draw_button ();
          // 标题绘制
          draw_word (50, 340, 20, _T ("打地鼠"));
          FlushBatchDraw ();
      }
      
      
      // 开始进程源文件 //
      
      
      
      // 开始进程主循函数
      void game::carry_start ()
      {
          // 鼠标定义
          ExMessage m;
          int i;
          // 绘制
          draw_scene_start ();
          // 时间初始化
          start_t1 = clock ();
          start_t2 = clock ();
          // 结束时间初始化
          start_endtime = 30000;
          // 特殊情况处理
          // 生成时间间隔为 0,将等效为每次生成数量为 9
          if (speed_creact == 0)
          {
              speed_creact = 1;
              every_creact_num = 9;
          }
          // 普通模式
          while (exit_start == 0)
          {
              if (peekmessage (&m, EM_MOUSE | EM_KEY))
              {
                  // 左键单击判断
                  if (m.message == WM_LBUTTONDOWN)
                  {
                      // 单击在田地范围
                      if (m.x < 639 && m.x > 256 && m.y > 124 && m.y < 475)
                      {
                          // 判断是否点击了地洞
                          for (i = 0; i < 9; i++)
                          {
                              // 矩形范围判断
                              if (m.x > box[i].posx_hole - 25 && m.y > box[i].posy_hole - 85 && m.x < box[i].posx_hole + 35 && m.y < box[i].posy_hole - 20
                                  && (box[i].type == 1 || box[i].type == 3))
                              {
                                  // 正常鼹鼠
                                  if (box[i].type == 1)
                                  {
                                      // 增加得分
                                      start_point++;
                                  }
                                  // 红眼鼹鼠
                                  else if (box[i].type == 3)
                                  {
                                      // 减少得分
                                      start_point += point_punishment;
                                  }
                                  // 更改为僵直状态
                                  box[i].type = 2;
                                  // 重置为僵直时间
                                  box[i].time_life = speed_gopher_beaten;
                                  break;
                              }
                          }
                      }
                      else
                      {
                          // 判断是否点击了按钮
                          for (i = 0; i < num_button; i++)
                          {
                              if (m.x > boxm[i].posx1 && m.y > boxm[i].posy1 && m.x < boxm[i].posx2 && m.y < boxm[i].posy2 && boxm[i].type == 0)
                              {
                                  break;
                              }
                          }
                          // 返回按钮
                          if (i == 0)
                          {
                              exit_start = 1;
                          }
                      }
                      // 绘制                    
                      draw_scene_start ();
                  }
              }
      
              // 时间更新,以及退出判断
              start_t2 = clock ();
              if ((start_t2 - start_t1) % 100 <= 10)
              {
                  // 达到时间间隔,生成新鼹鼠
                  if ((start_t2 - start_t1) % (speed_creact * 100) <= 10)
                  {
                      // 根据每次生成数量参数进行生成
                      for (i = 0; i < every_creact_num; i++)
                      {
                          creact_gopher ();
                          // 某次生成完已结束,直接结束循环,退出,避免生成多个结束提示框
                          if (exit_start != 0)
                          {
                              break;
                          }
                      }
                  }
                  // 鼹鼠状态更新
                  for (i = 0; i < 9; i++)
                  {
                      // 存在时间减少
                      if (box[i].type != 0)
                      {
                          box[i].time_life--;
                      }
                      // 时间减少至零,鼹鼠消失,修改地洞参数
                      if (box[i].time_life <= 0)
                      {
                          box[i].type = 0;
                      }
                  }
                  draw_scene_start ();
                  Sleep (10);
              }
              if ((start_t2 - start_t1) >= start_endtime)
              {
                  draw_scene_start ();
                  // 退出提示
                  MessageBox (hOut, _T ("时间到了,结束啦"), _T ("来自小豆子的提醒"), MB_OK);
                  exit_start = 1;
              }
          }
      }
      
      
      // 开始进程初始化函数
      void game::initialization_start ()
      {
          int i;
          // 按钮设置初始化
          num_button = 1;
      
          boxm[0].posx1 = 710; boxm[0].posy1 = 130;    boxm[0].posx2 = 790; boxm[0].posy2 = 190;    boxm[0].text = _T ("返回"); boxm[0].type = 0;
      
          // 地洞参数初始化
          i = 0; box[i].posx_hole = 300; box[i].posy_hole = 250;
          i = 1; box[i].posx_hole = 420; box[i].posy_hole = 250;
          i = 2; box[i].posx_hole = 540; box[i].posy_hole = 250;
          i = 3; box[i].posx_hole = 280; box[i].posy_hole = 350;
          i = 4; box[i].posx_hole = 420; box[i].posy_hole = 350;
          i = 5; box[i].posx_hole = 560; box[i].posy_hole = 350;
          i = 6; box[i].posx_hole = 260; box[i].posy_hole = 450;
          i = 7; box[i].posx_hole = 420; box[i].posy_hole = 450;
          i = 8; box[i].posx_hole = 580; box[i].posy_hole = 450;
      
          for (i = 0; i < 9; i++)
          {
              box[i].type = 0;
              box[i].posx_gopher = box[i].posx_hole + 5;
              box[i].posy_gopher = box[i].posy_hole - 52;
          }
      
          // 绘制
          draw_scene_start ();
      }
      
      
      // 开始进程绘制函数
      void game::draw_scene_start ()
      {
          int i;
      
          // 绘制主背景
          float posx, posy, size;
          POINT pts[100];
      
          setlinestyle (PS_SOLID, 1);
          // 天空
          setlinecolor (RGB (199, 234, 255));
          setfillcolor (RGB (199, 234, 255));
          fillrectangle (0, 0, 800, 120);
          // 土地
          setlinecolor (RGB (184, 147, 69));
          setfillcolor (RGB (184, 147, 69));
          fillrectangle (0, 120, 800, 480);
      
          setlinecolor (RGB (195, 152, 58));
          setfillcolor (RGB (195, 152, 58));
          pts[0].x = 240;    pts[0].y = 120;
          pts[1].x = 50;    pts[1].y = 480;
          pts[2].x = 780;    pts[2].y = 480;
          pts[3].x = 620;    pts[3].y = 120;
          fillpolygon (pts, 4);
      
          setlinecolor (RGB (152, 109, 58));
          setfillcolor (RGB (152, 109, 58));
          pts[0].x = 255;    pts[0].y = 120;
          pts[1].x = 75;    pts[1].y = 480;
          pts[2].x = 755;    pts[2].y = 480;
          pts[3].x = 605;    pts[3].y = 120;
          fillpolygon (pts, 4);
      
          // 树叶
          posx = 300; posy = 300; size = 1;
          setlinecolor (RGB (38, 153, 0));
          setfillcolor (RGB (38, 153, 0));
          pts[0].x = long (178 * size + posx);    pts[0].y = long (-231 * size + posy);
          pts[1].x = long (174 * size + posx);    pts[1].y = long (-225 * size + posy);
          pts[2].x = long (170 * size + posx);    pts[2].y = long (-220 * size + posy);
          pts[3].x = long (162 * size + posx);    pts[3].y = long (-214 * size + posy);
          pts[4].x = long (156 * size + posx);    pts[4].y = long (-214 * size + posy);
          pts[5].x = long (148 * size + posx);    pts[5].y = long (-214 * size + posy);
          pts[6].x = long (140 * size + posx);    pts[6].y = long (-217 * size + posy);
          pts[7].x = long (139 * size + posx);    pts[7].y = long (-221 * size + posy);
          pts[8].x = long (133 * size + posx);    pts[8].y = long (-217 * size + posy);
          pts[9].x = long (125 * size + posx);    pts[9].y = long (-216 * size + posy);
          pts[10].x = long (120 * size + posx);    pts[10].y = long (-220 * size + posy);
          pts[11].x = long (117 * size + posx);    pts[11].y = long (-219 * size + posy);
          pts[12].x = long (111 * size + posx);    pts[12].y = long (-217 * size + posy);
          pts[13].x = long (107 * size + posx);    pts[13].y = long (-217 * size + posy);
          pts[14].x = long (99 * size + posx);    pts[14].y = long (-221 * size + posy);
          pts[15].x = long (97 * size + posx);    pts[15].y = long (-228 * size + posy);
          pts[16].x = long (96 * size + posx);    pts[16].y = long (-229 * size + posy);
          pts[17].x = long (90 * size + posx);    pts[17].y = long (-229 * size + posy);
          pts[18].x = long (84 * size + posx);    pts[18].y = long (-227 * size + posy);
          pts[19].x = long (78 * size + posx);    pts[19].y = long (-230 * size + posy);
          pts[20].x = long (74 * size + posx);    pts[20].y = long (-233 * size + posy);
          pts[21].x = long (65 * size + posx);    pts[21].y = long (-241 * size + posy);
          pts[22].x = long (69 * size + posx);    pts[22].y = long (-251 * size + posy);
          pts[23].x = long (64 * size + posx);    pts[23].y = long (-251 * size + posy);
          pts[24].x = long (58 * size + posx);    pts[24].y = long (-254 * size + posy);
          pts[25].x = long (56 * size + posx);    pts[25].y = long (-260 * size + posy);
          pts[26].x = long (59 * size + posx);    pts[26].y = long (-267 * size + posy);
          pts[27].x = long (61 * size + posx);    pts[27].y = long (-269 * size + posy);
          pts[28].x = long (56 * size + posx);    pts[28].y = long (-274 * size + posy);
          pts[29].x = long (52 * size + posx);    pts[29].y = long (-277 * size + posy);
          pts[30].x = long (52 * size + posx);    pts[30].y = long (-284 * size + posy);
          pts[31].x = long (56 * size + posx);    pts[31].y = long (-287 * size + posy);
          pts[32].x = long (51 * size + posx);    pts[32].y = long (-294 * size + posy);
          pts[33].x = long (52 * size + posx);    pts[33].y = long (-300 * size + posy);
          pts[34].x = long (350 * size + posx);    pts[34].y = long (-300 * size + posy);
          pts[35].x = long (361 * size + posx);    pts[35].y = long (-295 * size + posy);
          pts[36].x = long (365 * size + posx);    pts[36].y = long (-288 * size + posy);
          pts[37].x = long (360 * size + posx);    pts[37].y = long (-278 * size + posy);
          pts[38].x = long (358 * size + posx);    pts[38].y = long (-276 * size + posy);
          pts[39].x = long (365 * size + posx);    pts[39].y = long (-269 * size + posy);
          pts[40].x = long (368 * size + posx);    pts[40].y = long (-261 * size + posy);
          pts[41].x = long (363 * size + posx);    pts[41].y = long (-257 * size + posy);
          pts[42].x = long (360 * size + posx);    pts[42].y = long (-251 * size + posy);
          pts[43].x = long (358 * size + posx);    pts[43].y = long (-247 * size + posy);
          pts[44].x = long (356 * size + posx);    pts[44].y = long (-245 * size + posy);
          pts[45].x = long (356 * size + posx);    pts[45].y = long (-241 * size + posy);
          pts[46].x = long (355 * size + posx);    pts[46].y = long (-238 * size + posy);
          pts[47].x = long (349 * size + posx);    pts[47].y = long (-234 * size + posy);
          pts[48].x = long (344 * size + posx);    pts[48].y = long (-233 * size + posy);
          pts[49].x = long (340 * size + posx);    pts[49].y = long (-226 * size + posy);
          pts[50].x = long (336 * size + posx);    pts[50].y = long (-222 * size + posy);
          pts[51].x = long (329 * size + posx);    pts[51].y = long (-220 * size + posy);
          pts[52].x = long (320 * size + posx);    pts[52].y = long (-220 * size + posy);
          pts[53].x = long (314 * size + posx);    pts[53].y = long (-222 * size + posy);
          pts[54].x = long (312 * size + posx);    pts[54].y = long (-225 * size + posy);
          pts[55].x = long (306 * size + posx);    pts[55].y = long (-220 * size + posy);
          pts[56].x = long (297 * size + posx);    pts[56].y = long (-218 * size + posy);
          pts[57].x = long (285 * size + posx);    pts[57].y = long (-216 * size + posy);
          pts[58].x = long (279 * size + posx);    pts[58].y = long (-220 * size + posy);
          pts[59].x = long (271 * size + posx);    pts[59].y = long (-222 * size + posy);
          pts[60].x = long (270 * size + posx);    pts[60].y = long (-226 * size + posy);
          pts[61].x = long (267 * size + posx);    pts[61].y = long (-220 * size + posy);
          pts[62].x = long (262 * size + posx);    pts[62].y = long (-215 * size + posy);
          pts[63].x = long (258 * size + posx);    pts[63].y = long (-213 * size + posy);
          pts[64].x = long (251 * size + posx);    pts[64].y = long (-214 * size + posy);
          pts[65].x = long (248 * size + posx);    pts[65].y = long (-217 * size + posy);
          pts[66].x = long (247 * size + posx);    pts[66].y = long (-218 * size + posy);
          pts[67].x = long (237 * size + posx);    pts[67].y = long (-228 * size + posy);
          pts[68].x = long (227 * size + posx);    pts[68].y = long (-235 * size + posy);
          pts[69].x = long (217 * size + posx);    pts[69].y = long (-242 * size + posy);
          pts[70].x = long (204 * size + posx);    pts[70].y = long (-244 * size + posy);
          pts[71].x = long (190 * size + posx);    pts[71].y = long (-242 * size + posy);
          pts[72].x = long (179 * size + posx);    pts[72].y = long (-239 * size + posy);
          fillpolygon (pts, 73);
          // 树枝
          posx = 300; posy = 295; size = 1;
          setlinecolor (RGB (122, 71, 18));
          setfillcolor (RGB (122, 71, 18));
          pts[0].x = long (174 * size + posx);    pts[0].y = long (-172 * size + posy);
          pts[1].x = long (171 * size + posx);    pts[1].y = long (-178 * size + posy);
          pts[2].x = long (173 * size + posx);    pts[2].y = long (-185 * size + posy);
          pts[3].x = long (187 * size + posx);    pts[3].y = long (-191 * size + posy);
          pts[4].x = long (196 * size + posx);    pts[4].y = long (-207 * size + posy);
          pts[5].x = long (192 * size + posx);    pts[5].y = long (-221 * size + posy);
          pts[6].x = long (188 * size + posx);    pts[6].y = long (-229 * size + posy);
          pts[7].x = long (183 * size + posx);    pts[7].y = long (-233 * size + posy);
          pts[8].x = long (180 * size + posx);    pts[8].y = long (-231 * size + posy);
          pts[9].x = long (176 * size + posx);    pts[9].y = long (-229 * size + posy);
          pts[10].x = long (172 * size + posx);    pts[10].y = long (-233 * size + posy);
          pts[11].x = long (153 * size + posx);    pts[11].y = long (-232 * size + posy);
          pts[12].x = long (134 * size + posx);    pts[12].y = long (-233 * size + posy);
          pts[13].x = long (116 * size + posx);    pts[13].y = long (-237 * size + posy);
          pts[14].x = long (110 * size + posx);    pts[14].y = long (-241 * size + posy);
          pts[15].x = long (107 * size + posx);    pts[15].y = long (-246 * size + posy);
          pts[16].x = long (113 * size + posx);    pts[16].y = long (-248 * size + posy);
          pts[17].x = long (119 * size + posx);    pts[17].y = long (-253 * size + posy);
          pts[18].x = long (123 * size + posx);    pts[18].y = long (-248 * size + posy);
          pts[19].x = long (128 * size + posx);    pts[19].y = long (-248 * size + posy);
          pts[20].x = long (134 * size + posx);    pts[20].y = long (-249 * size + posy);
          pts[21].x = long (136 * size + posx);    pts[21].y = long (-252 * size + posy);
          pts[22].x = long (146 * size + posx);    pts[22].y = long (-253 * size + posy);
          pts[23].x = long (147 * size + posx);    pts[23].y = long (-255 * size + posy);
          pts[24].x = long (157 * size + posx);    pts[24].y = long (-249 * size + posy);
          pts[25].x = long (163 * size + posx);    pts[25].y = long (-245 * size + posy);
          pts[26].x = long (171 * size + posx);    pts[26].y = long (-242 * size + posy);
          pts[27].x = long (178 * size + posx);    pts[27].y = long (-241 * size + posy);
          pts[28].x = long (175 * size + posx);    pts[28].y = long (-248 * size + posy);
          pts[29].x = long (173 * size + posx);    pts[29].y = long (-253 * size + posy);
          pts[30].x = long (173 * size + posx);    pts[30].y = long (-259 * size + posy);
          pts[31].x = long (174 * size + posx);    pts[31].y = long (-262 * size + posy);
          pts[32].x = long (178 * size + posx);    pts[32].y = long (-264 * size + posy);
          pts[33].x = long (179 * size + posx);    pts[33].y = long (-260 * size + posy);
          pts[34].x = long (183 * size + posx);    pts[34].y = long (-247 * size + posy);
          pts[35].x = long (186 * size + posx);    pts[35].y = long (-242 * size + posy);
          pts[36].x = long (192 * size + posx);    pts[36].y = long (-240 * size + posy);
          pts[37].x = long (197 * size + posx);    pts[37].y = long (-242 * size + posy);
          pts[38].x = long (199 * size + posx);    pts[38].y = long (-247 * size + posy);
          pts[39].x = long (197 * size + posx);    pts[39].y = long (-250 * size + posy);
          pts[40].x = long (193 * size + posx);    pts[40].y = long (-253 * size + posy);
          pts[41].x = long (191 * size + posx);    pts[41].y = long (-256 * size + posy);
          pts[42].x = long (190 * size + posx);    pts[42].y = long (-259 * size + posy);
          pts[43].x = long (196 * size + posx);    pts[43].y = long (-265 * size + posy);
          pts[44].x = long (198 * size + posx);    pts[44].y = long (-266 * size + posy);
          pts[45].x = long (203 * size + posx);    pts[45].y = long (-261 * size + posy);
          pts[46].x = long (208 * size + posx);    pts[46].y = long (-251 * size + posy);
          pts[47].x = long (206 * size + posx);    pts[47].y = long (-247 * size + posy);
          pts[48].x = long (208 * size + posx);    pts[48].y = long (-246 * size + posy);
          pts[49].x = long (219 * size + posx);    pts[49].y = long (-245 * size + posy);
          pts[50].x = long (223 * size + posx);    pts[50].y = long (-248 * size + posy);
          pts[51].x = long (226 * size + posx);    pts[51].y = long (-254 * size + posy);
          pts[52].x = long (228 * size + posx);    pts[52].y = long (-261 * size + posy);
          pts[53].x = long (227 * size + posx);    pts[53].y = long (-263 * size + posy);
          pts[54].x = long (234 * size + posx);    pts[54].y = long (-263 * size + posy);
          pts[55].x = long (233 * size + posx);    pts[55].y = long (-258 * size + posy);
          pts[56].x = long (232 * size + posx);    pts[56].y = long (-246 * size + posy);
          pts[57].x = long (236 * size + posx);    pts[57].y = long (-245 * size + posy);
          pts[58].x = long (241 * size + posx);    pts[58].y = long (-247 * size + posy);
          pts[59].x = long (250 * size + posx);    pts[59].y = long (-252 * size + posy);
          pts[60].x = long (248 * size + posx);    pts[60].y = long (-248 * size + posy);
          pts[61].x = long (248 * size + posx);    pts[61].y = long (-243 * size + posy);
          pts[62].x = long (259 * size + posx);    pts[62].y = long (-244 * size + posy);
          pts[63].x = long (270 * size + posx);    pts[63].y = long (-250 * size + posy);
          pts[64].x = long (272 * size + posx);    pts[64].y = long (-250 * size + posy);
          pts[65].x = long (272 * size + posx);    pts[65].y = long (-248 * size + posy);
          pts[66].x = long (270 * size + posx);    pts[66].y = long (-243 * size + posy);
          pts[67].x = long (266 * size + posx);    pts[67].y = long (-240 * size + posy);
          pts[68].x = long (259 * size + posx);    pts[68].y = long (-236 * size + posy);
          pts[69].x = long (250 * size + posx);    pts[69].y = long (-234 * size + posy);
          pts[70].x = long (248 * size + posx);    pts[70].y = long (-234 * size + posy);
          pts[71].x = long (244 * size + posx);    pts[71].y = long (-221 * size + posy);
          pts[72].x = long (246 * size + posx);    pts[72].y = long (-213 * size + posy);
          pts[73].x = long (246 * size + posx);    pts[73].y = long (-200 * size + posy);
          pts[74].x = long (250 * size + posx);    pts[74].y = long (-188 * size + posy);
          pts[75].x = long (253 * size + posx);    pts[75].y = long (-183 * size + posy);
          pts[76].x = long (255 * size + posx);    pts[76].y = long (-179 * size + posy);
          pts[77].x = long (259 * size + posx);    pts[77].y = long (-177 * size + posy);
          pts[78].x = long (262 * size + posx);    pts[78].y = long (-174 * size + posy);
          fillpolygon (pts, 79);
          // 树帽
          posx = 300; posy = 295; size = 1;
          setlinecolor (RGB (40, 176, 0));
          setfillcolor (RGB (40, 176, 0));
          pts[0].x = long (98 * size + posx);    pts[0].y = long (-255 * size + posy);
          pts[1].x = long (102 * size + posx);    pts[1].y = long (-250 * size + posy);
          pts[2].x = long (108 * size + posx);    pts[2].y = long (-245 * size + posy);
          pts[3].x = long (118 * size + posx);    pts[3].y = long (-253 * size + posy);
          pts[4].x = long (122 * size + posx);    pts[4].y = long (-247 * size + posy);
          pts[5].x = long (128 * size + posx);    pts[5].y = long (-245 * size + posy);
          pts[6].x = long (136 * size + posx);    pts[6].y = long (-253 * size + posy);
          pts[7].x = long (144 * size + posx);    pts[7].y = long (-254 * size + posy);
          pts[8].x = long (149 * size + posx);    pts[8].y = long (-260 * size + posy);
          pts[9].x = long (170 * size + posx);    pts[9].y = long (-271 * size + posy);
          pts[10].x = long (176 * size + posx);    pts[10].y = long (-264 * size + posy);
          pts[11].x = long (181 * size + posx);    pts[11].y = long (-266 * size + posy);
          pts[12].x = long (189 * size + posx);    pts[12].y = long (-276 * size + posy);
          pts[13].x = long (194 * size + posx);    pts[13].y = long (-268 * size + posy);
          pts[14].x = long (198 * size + posx);    pts[14].y = long (-270 * size + posy);
          pts[15].x = long (207 * size + posx);    pts[15].y = long (-268 * size + posy);
          pts[16].x = long (209 * size + posx);    pts[16].y = long (-264 * size + posy);
          pts[17].x = long (213 * size + posx);    pts[17].y = long (-264 * size + posy);
          pts[18].x = long (222 * size + posx);    pts[18].y = long (-264 * size + posy);
          pts[19].x = long (240 * size + posx);    pts[19].y = long (-262 * size + posy);
          pts[20].x = long (247 * size + posx);    pts[20].y = long (-257 * size + posy);
          pts[21].x = long (260 * size + posx);    pts[21].y = long (-251 * size + posy);
          pts[22].x = long (267 * size + posx);    pts[22].y = long (-258 * size + posy);
          pts[23].x = long (276 * size + posx);    pts[23].y = long (-256 * size + posy);
          pts[24].x = long (285 * size + posx);    pts[24].y = long (-254 * size + posy);
          pts[25].x = long (291 * size + posx);    pts[25].y = long (-256 * size + posy);
          pts[26].x = long (292 * size + posx);    pts[26].y = long (-259 * size + posy);
          pts[27].x = long (289 * size + posx);    pts[27].y = long (-263 * size + posy);
          pts[28].x = long (282 * size + posx);    pts[28].y = long (-261 * size + posy);
          pts[29].x = long (276 * size + posx);    pts[29].y = long (-260 * size + posy);
          pts[30].x = long (272 * size + posx);    pts[30].y = long (-264 * size + posy);
          pts[31].x = long (266 * size + posx);    pts[31].y = long (-262 * size + posy);
          pts[32].x = long (260 * size + posx);    pts[32].y = long (-260 * size + posy);
          pts[33].x = long (253 * size + posx);    pts[33].y = long (-261 * size + posy);
          pts[34].x = long (249 * size + posx);    pts[34].y = long (-264 * size + posy);
          pts[35].x = long (245 * size + posx);    pts[35].y = long (-266 * size + posy);
          pts[36].x = long (238 * size + posx);    pts[36].y = long (-264 * size + posy);
          pts[37].x = long (214 * size + posx);    pts[37].y = long (-266 * size + posy);
          pts[38].x = long (213 * size + posx);    pts[38].y = long (-269 * size + posy);
          pts[39].x = long (209 * size + posx);    pts[39].y = long (-272 * size + posy);
          pts[40].x = long (193 * size + posx);    pts[40].y = long (-280 * size + posy);
          pts[41].x = long (185 * size + posx);    pts[41].y = long (-277 * size + posy);
          pts[42].x = long (182 * size + posx);    pts[42].y = long (-273 * size + posy);
          pts[43].x = long (178 * size + posx);    pts[43].y = long (-271 * size + posy);
          pts[44].x = long (175 * size + posx);    pts[44].y = long (-271 * size + posy);
          pts[45].x = long (170 * size + posx);    pts[45].y = long (-273 * size + posy);
          pts[46].x = long (147 * size + posx);    pts[46].y = long (-262 * size + posy);
          pts[47].x = long (149 * size + posx);    pts[47].y = long (-267 * size + posy);
          pts[48].x = long (148 * size + posx);    pts[48].y = long (-269 * size + posy);
          pts[49].x = long (145 * size + posx);    pts[49].y = long (-265 * size + posy);
          pts[50].x = long (139 * size + posx);    pts[50].y = long (-259 * size + posy);
          pts[51].x = long (132 * size + posx);    pts[51].y = long (-258 * size + posy);
          pts[52].x = long (123 * size + posx);    pts[52].y = long (-260 * size + posy);
          pts[53].x = long (119 * size + posx);    pts[53].y = long (-256 * size + posy);
          pts[54].x = long (110 * size + posx);    pts[54].y = long (-255 * size + posy);
          pts[55].x = long (103 * size + posx);    pts[55].y = long (-257 * size + posy);
          pts[56].x = long (100 * size + posx);    pts[56].y = long (-258 * size + posy);
      
      
          fillpolygon (pts, 57);
          // 栏杆和栅栏
          for (i = 0; i < 7; i++)
          {
              draw_left_railing (450 - i * 23, 10 + i * 43, 0.9);
              draw_left_fence (366 - i * 23, 200 + i * 43, 1);
      
              draw_right_railing (190 + i * 19, -40 + i * 43, 0.9);
              draw_right_fence (250 + i * 19, 213 + i * 43, 1);
          }
          i = 7;
          draw_left_railing (450 - i * 23, 10 + i * 43, 0.9);
          draw_right_railing (190 + i * 19, -40 + i * 43, 0.9);
          // 云朵
          draw_cloud (300, 300, 1);
          draw_cloud (-10, 200, 0.7);
          draw_cloud (-360, 350, 1.2);
      
          // 绘制鼹鼠
          for (i = 0; i < 9; i++)
          {
              if (box[i].type != 0) { draw_gopher (box[i].posx_gopher, box[i].posy_gopher, 0.1, box[i].type); }
              draw_hole (box[i].posx_hole, box[i].posy_hole, 0.1);
          }
      
          // 绘制按钮
          draw_button ();
      
          // 绘制得分和时间
          TCHAR s[20];
      
          // 时间
          draw_word (30, 05, 125, _T ("时间:"));
          _stprintf_s (s, _T ("%0.1f"), float ((start_endtime - (start_t2 - start_t1))) / 1000.0);
          draw_word (30, 10, 165, s);
          draw_word (30, 70, 165, _T ("秒"));
      
          // 得分
          draw_word (30, 10, 225, _T ("得分:"));
          _stprintf_s (s, _T ("%0.1d"), start_point);
          draw_word (30, 10, 265, s);
      
          FlushBatchDraw ();
      }
      
      
      // 鼹鼠生成函数
      void game::creact_gopher ()
      {
          int i, j, k;
          // 空位检测
          k = 0;
          for (i = 0; i < 9; i++)
          {
              if (box[i].type == 0)
              {
                  k = 1;
                  break;
              }
          }
          // 溢满退出检测
          if (hole_full_end == 1 && k == 0)
          {
              // 退出提示
              exit_start = 1;
              draw_scene_start ();
              MessageBox (hOut, _T ("没有位置了,结束啦"), _T ("来自小豆子的提醒"), MB_OK);
          }
          // 有空位,则随机生成一只鼹鼠
          if (k == 1)
          {
              do
              {
                  i = rand () % 9;
              } while (box[i].type != 0);
              // 是否是红眼
              j = rand () % (11 - gopher_red_eye_num);
              // 地洞状态更新
              // 正常鼹鼠
              if (j != 0 || gopher_red_eye_num == 0)
              {
                  box[i].type = 1;
              }
              // 红眼鼹鼠
              else if (j == 0)
              {
                  box[i].type = 3;
              }
              // 存在时间更新
              box[i].time_life = speed_gopher_life + 1;
          }
      }
      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/xiangxin1030/article/details/128695968,作者:C语言小火车,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:C语言刷题 | 温度转换(11)

      下一篇:【Flink网络数据传输】OperatorChain的设计与实现

      相关文章

      2025-05-13 09:53:13

      计算机初级选手的成长历程——扫雷详解

      计算机初级选手的成长历程——扫雷详解

      2025-05-13 09:53:13
      坐标 , 游戏
      2025-04-22 09:24:51

      怎么只用语言实现扫雷?

      怎么只用语言实现扫雷?

      2025-04-22 09:24:51
      代码 , 实现 , 数组 , 游戏
      2025-04-09 09:15:47

      《Java游戏编程原理与实践教程》读书笔记(第4章——Java游戏程序的基本框架)

      《Java游戏编程原理与实践教程》读书笔记(第4章——Java游戏程序的基本框架)

      2025-04-09 09:15:47
      动画 , 图像 , 屏幕 , 方法 , 游戏 , 绘制
      2025-04-09 09:14:12

      前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)

      前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)

      2025-04-09 09:14:12
      png , 位置 , 案例 , 游戏 , 管道
      2025-03-21 09:33:42

      【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)

      【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)

      2025-03-21 09:33:42
      array , index , 函数 , 游戏
      2025-03-10 09:53:07

      手把手教你使用JavaScript打造一款扫雷游戏

      手把手教你使用JavaScript打造一款扫雷游戏

      2025-03-10 09:53:07
      div , 标记 , 游戏 , 点击 , 页面
      2025-03-06 09:16:45

      【实战项目】用C语言+easyX编写游戏:找方块

      【实战项目】用C语言+easyX编写游戏:找方块

      2025-03-06 09:16:45
      游戏 , 编写 , 项目
      2025-03-05 09:11:15

      数组架构雷区图,函数驱动扫雷路

      数组架构雷区图,函数驱动扫雷路

      2025-03-05 09:11:15
      数组 , 棋盘 , 游戏
      2025-03-05 09:08:19

      前端小案例——网页井字棋

      前端小案例——网页井字棋

      2025-03-05 09:08:19
      样式 , 格子 , 游戏 , 玩家 , 设置
      2025-03-03 09:36:20

      动手做简易版俄罗斯方块

      动手做简易版俄罗斯方块

      2025-03-03 09:36:20
      Pygame , 游戏
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5244978

      查看更多

      最新文章

      怎么只用语言实现扫雷?

      2025-04-22 09:24:51

      前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)

      2025-04-09 09:14:12

      【Python】超简单的华容道小游戏制作+保姆级讲解(附源码)

      2025-03-21 09:33:42

      手把手教你使用JavaScript打造一款扫雷游戏

      2025-03-10 09:53:07

      【实战项目】用C语言+easyX编写游戏:找方块

      2025-03-06 09:16:45

      【Python】异常处理相关练习

      2025-02-25 08:55:28

      查看更多

      热门文章

      【Python】字谜游戏

      2023-02-13 07:59:59

      Python实现24点游戏

      2024-10-24 07:45:52

      Pygame 游戏编程详解

      2024-12-19 08:44:01

      JavaSE:实现象棋游戏

      2024-11-01 09:14:24

      C++游戏开发指南(新改)

      2024-11-26 09:47:29

      基于Python的pygame库的五子棋游戏

      2024-12-19 08:41:42

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Python实现黑客帝国多种代码雨

      怎么只用语言实现扫雷?

      【Python】异常处理相关练习

      探索Python世界的趣味之旅:自制贪吃蛇游戏

      【动态规划】【前缀和】【C++算法】LCP 57. 打地鼠

      【C++博弈论 动态规划】1690. 石子游戏 VII|1951

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号