贪吃蛇双人对战版——C语言

最近写的,用于交最后一次结构化程序设计课的作业,闲暇之余传到网上,仅供参考,新手上路,请多指教。

话不多说,先附上下载链接。http://download.csdn.net/detail/u013287454/8106587

好吧,链接太麻烦,那就 点此下载吧!

/** 游戏说明 **/

为了和其他版本的贪吃蛇有所不同,这次设计的贪吃蛇采用了双人对战模式:由两名玩家分别控制自己的蛇吃各自方框中的“食物”,每个食物可获得一分,也可以吃“炸弹”,“炸弹”可在对方区域内造成一个“障碍物”,吃“炸弹”减一分。一方的“蛇”“撞墙”或撞“障碍物”视为该方游戏结束,另一方可继续,直到“撞墙”或撞“障碍物”。游戏过程中可按 ESC键结束游戏进行分数评判。

由于游戏需要不断刷新界面,所以游戏代码主要在一个大循环中进行,按照清理、处理输入信息、逻辑转换、打印 的模式进行。

/** 代码说明 **/

main

{

//初始化界面

//循环

{

//清理界面

//处理出入信息

//改变小蛇位置

//打印界面

}

}

两个API的使用(windows.h):

BOOL SetConsoleCursorPosition(

HANDLE hConsoleOutput,  // handle to screen buffer(指定屏幕缓冲区)

COORD dwCursorPosition  // new cursor coordinates(指定 位置 dwCursorPosition.x dwCursorPosition.y)

);//设定光标位置

HANDLE GetStdHandle(

DWORD nStdHandle   // input, output, or error device(三个值 )

);//取得一个HANDLE

/** 函数说明 **/

BOOL init();//  游戏界面初始化

BOOL isContinue();//  判断“小蛇”是否全部活着

BOOL clean();//  清理“小蛇”

BOOL input();//  处理游戏过程中的输入信息

BOOL step();//  逻辑处理函数

BOOL draw();//  打印函数(打印小蛇,打印炸弹,打印障碍物,打印食物,实时更新对战分数

void Hint();//  游戏操作提示和作者签名

BOOL initSnakeManager();//  初始化小蛇,初始化操作边框,初始化操作按键

int GetSnakeNumber();//  获取小蛇的数量

StuSnake GetSnake(int nIndex);

BOOL UpdateSnake(StuSnake snake, int nIndex);  //异常处理

int chooseAmountMan();//  选择玩家人数(单人,双人对战)

intchooseLevel();//  选择难度

/** 未解决的bug **/

产生障碍物游戏是随机位置,所以可能和食物或者炸弹重合。另外,也可能有三个障碍物恰好包围了食物造成死局。另外障碍物也可能恰好产生在对手的蛇头前面造成对方直接死亡的这种出乎意外的结局,显然不是我们所期待的。其他bug暂时未发现。由于时间问题,这些bug我也就不去调了,初步设想是把贪吃蛇活动范围的正方形的每个点都做标记(二维数组),每次产生的障碍物都做上标记,这样可以避免障碍物重复,死局问题也可以解决(用对角线来判断是否包围食物)。

纯dos界面,codeblocks编译通过,其他编译器自测。可直接运行.exe。

c语言联机游戏,C/C++ 游戏 贪吃蛇双人对战版相关推荐

  1. 用javascript+jquery编写的小游戏-贪吃蛇(双人对战版)

    前言 这是我在多年前初学jquery, 并结合javascript, 编写的一个小游戏.那洋洋洒洒几千行的js代码时刻提醒着我"不忘初心!". 效果演示 代码 引入文件 由于用到了 ...

  2. JAVA基于J2ME的手机游戏开发和实现——贪吃蛇

    随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注.以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理.数据存储.与服务器的通信 ...

  3. java小游戏代码压缩包_java 贪吃蛇小游戏 源码下载

    [实例简介] 使用java程序设计语言制作的一个贪吃蛇小游戏.游戏的控制模块应该做到易懂.易操作,以给玩家一个很好的游戏环境.在这个游戏的设计中,牵涉到图形界面的显示与更新.数据的收集与更新,还要应用 ...

  4. 用python自带的tkinter做游戏(一)—— 贪吃蛇 篇

    用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 本人新手,刚自学python满半年,现分享下心得,希望各位老手能指点一二,也希望和我一样的新手能共勉,谢谢~ 大家都知道用python做 ...

  5. c/c++游戏编程之控制台贪吃蛇(一)

    c/c++游戏编程之控制台贪吃蛇(一) c/c++游戏编程之控制台贪吃蛇(二) 欢迎你开启了c++的游戏编程世界之旅 如果你还未学过c++基本语法,请先学习基本语法再来学习游戏编程噢~. 对这样的&q ...

  6. c/c++游戏编程之控制台贪吃蛇(二)

    c/c++游戏编程之控制台贪吃蛇(一) c/c++游戏编程之控制台贪吃蛇(二) 为了解决"闪屏"问题,我们不再使用system("cls")进行清屏,而是直接用 ...

  7. 贪吃蛇大作战撞墙不死c语言,贪吃蛇大作战无敌版

    贪吃蛇大作战无敌版是款好玩的休闲类的游戏,游戏中拥有十分简单的画风,玩法十分的简单,你在游戏中简直是无敌的存在,贪吃蛇大作战无敌版撞到别人身上不会死,还可以随意翻出去,让你从此横行霸道于群蛇之间.玩法 ...

  8. 贪吃蛇大作战JavaFx版完整源码

    贪吃蛇大作战 Java版 项目源码:https://github.com/silence1772/JavaFX-GreedySnake (记得点star啊,收藏一个项目最好的方式是star而不是for ...

  9. 12行贪吃蛇html,贪吃蛇大作战无敌版

    贪吃蛇大作战无敌版下载是一款贪吃蛇类手游,在贪吃蛇大作战无敌版下载游戏中蛇分两种,蛇越多身体越笨重,但伤害也就越高,小蛇虽然伤害不高,但身体非常灵活,可以非常轻快地躲避大蛇的攻击,还等什么赶快来下载游 ...

最新文章

  1. 【C++】Effective STL:50条有效使用STL的经验
  2. 学习Python最好的途径——激发自己的学习兴趣!
  3. 本地Git关联远程Git时遇到的一些问题
  4. Fibonacci递归非递归方法
  5. spring cloud构建互联网分布式微服务云平台-Ribbon
  6. Java的反射机制(Reflection)
  7. 文本圆角背景_ppt模板航天日PPT,半透明几何圆角长方形文本框
  8. Solidworks踩坑随笔
  9. SQLSERVER数据库所有者SID问题
  10. Mac 下利用 FileMerge 进行代码比较、合并
  11. [MacOS][Google Chrome 浏览器] 鼠标右键需要双击才能弹出菜单
  12. 计算机标准红色,标准红色cmyk值
  13. html中怎么设置表格自动换行在哪里,【HTML】表格自动换行
  14. 70句计算机英语,70句必背的经典英文电影台词(中英双语)
  15. 北京集训TEST12——PA( Mortal Kombat)
  16. 方舟服务器占用多少内存,方舟生存进化占用多少内存
  17. husky 7 + lint-staged 11+ prettier 2 + eslint 7 配置
  18. 2020年度英国商业大奖获奖名单公布
  19. 推荐常用算法之-基于内容的推荐
  20. ffmpeg截取一段视频中一段视频

热门文章

  1. 全景照片是如何拍摄出来的?
  2. linux网络基础设置篇-----(查看网络连接情况,域名解析nslookup,本地映射,启用禁用网络接口,路由跟踪)
  3. 修改Textview内图片文字间距和图片大小
  4. Gym - 102920 C - Dessert Café (思维)
  5. lemming games 3 ! hdlbits
  6. sketch放入app组件_Sketch App 3中的基本图像编辑入门
  7. 小孩学计算机技术有什么好处,儿童学习电脑的好处
  8. Modbus通讯协议(一)——测试工具ModbusPoll和ModbusSlave
  9. 恒讯科技分析好消息尼泊尔有自己的绝地求生服务器了
  10. html怎么设置图片宽高比,CSS力图像调整尺寸和保持高宽比