频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

利用C++实现的贪吃蛇游戏

来源:CSDN 作者:oosky2004 出处:巧巧读书 2005-11-09 进入讨论组
下一页 1 2 3 4 5 6 

  在tc 3.0下调试通过,因为tc 3.0不支持bool 类型,所以程序中自定义了个枚举类型变量bool
  如果在vc或者bc中运行,可以把这个bool类型注释掉.
  贪吃蛇的核心算法时如何实现移动和吃掉食物.
  没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色重绘这个节点.
  然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果.
  而在吃到食物的时候,则只需把食物入队即可.





  // greedsnake.cpp
  #include <bios.h>
  #include <conio.h>
  #include <dos.h>
  #include <graphics.h>
  #include <stdlib.h>
  #include <time.h>
  #include "conf.h"

  typedef struct node
  {
  int x,y;
  struct node *next;
  }Node;

  typedef struct
  {
  Node *head,*tail;
  int length;
  }Snake;
  typedef struct                   
  {
  int left,top,right,bottom;
  }Frame;

  typedef enum                    //四个方向
  {
  up,down,left,right
  }Direction;
  typedef enum
  {
  false,true
  }bool;

  void InitGraphMode();                     //初始化图形驱动
  void CloseGraphMode();               
  void Foot(int,int);                           
  void Head(int,int);
  void CreateFrame();                    //完成整个游戏框架的绘制   
  void CreateSnake();                    //创建一条两个节点的蛇,蛇的每一节是队列中的一个节点
  bool PlayGame();                        //游戏的主体函数,
  int Hit(int,int);                               //判断是否越界,或者撞到自身,两个参数分别是新的头接点的x,y坐标
  bool GameOver();                        //绘制游戏结束时弹出的对话框                      
  void Enqueue(Node);                    //入队函数
  Node Dequeue();                        //出队函数
  void ClearKeyBuf();                       //清除键盘缓冲,此函数可以消除不停的按无效键的影响


URl收藏 http://www.qqread.com/cpp/k120712030.html 更多文章 更多内容请看游戏开发网络游戏攻略C/C++技术专题专题,或进入讨论组讨论。
更多专题 【深 度 阅 读】 相 关 文 章
    下一页 1 2 3 4 5 6 
    收藏此文】【 】【打印】【关闭
    相关图文阅读
    频道图文推荐
    健 康 咨 询
    时 尚 咨 询
    巧巧读书宗旨
    相关专题
    讨论组问题推荐
    站内各频道最新更新文档
    站内最新制作专题
    热门关键字导读
    Photoshop教 程照片处理 照片制作 PS快捷键 抠图
    计 算 机 故 障XP系统修复
    艺 术 与 设 计设计 流媒体 设计欣赏 边框
    计 算 机 安 全ARP
    站内频道文章精选
    巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章