贪吃蛇.zip

  • rain cat
    了解作者
  • C/C++
    开发工具
  • 47KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-11-20 11:12
    上传日期
C++学习阶段小练习,贪吃蛇范例,使用基本C++知识,即可实现,有助于强化基础知识
贪吃蛇.zip
  • 贪吃蛇
  • Debug
  • 贪吃蛇.tlog
  • CL.write.1.tlog
    404B
  • CL.read.1.tlog
    25KB
  • link.command.1.tlog
    1.1KB
  • link.read.1.tlog
    2.6KB
  • 贪吃蛇.lastbuildstate
    212B
  • link.write.1.tlog
    384B
  • CL.command.1.tlog
    702B
  • vc141.idb
    243KB
  • snake.obj
    36KB
  • vc141.pdb
    100KB
  • 贪吃蛇.log
    95B
  • snake.h
    429B
  • 贪吃蛇.vcxproj.filters
    1KB
  • snake.c
    4KB
  • 贪吃蛇.vcxproj.user
    165B
  • 贪吃蛇.vcxproj
    7.5KB
内容介绍
#include<stdio.h> #include<string.h> #include<time.h> #include<stdlib.h> #include<conio.h> #include<Windows.h> #include"snake.h" /* 1,定义蛇结构体 2,初始化蛇和食物 3,开始游戏 蛇和墙的碰撞 蛇和自身的碰撞 蛇和食物的碰撞 重新随机食物 蛇身体增长 分数增长 方向键控制 4,游戏结束 */ void InitFood() { food[0] = rand() % WIDE; food[1] = rand() % HIGH; } void InitSnake() { snake.size = 2; snake.body[0].X = WIDE / 2; snake.body[0].Y = HIGH / 2; snake.body[1].X = WIDE / 2-1; snake.body[1].Y = HIGH / 2; } void ShowUI() { //显示蛇的位置,显示食物位置 COORD coord; coord.X = lx; coord.Y = ly; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); putchar(' '); for (int i = 0; i < snake.size; i++) { coord.X = snake.body[i].X; coord.Y = snake.body[i].Y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); if (i == 0) { putchar('@'); } else { putchar('*'); } } coord.X = food[0]; coord.Y = food[1]; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); putchar('#'); } void PlayGame() { char key = 'D'; while (snake.body[0].X>=0 && snake.body[0].X<WIDE && snake.body[0].Y>=0 && snake.body[0].Y<HIGH) { ShowUI(); //方向控制 while (_kbhit()) { key = _getch(); } switch (key) { case 'D':case 'd':dx = 1; dy = 0; break; case 'A':case 'a':dx = -1; dy = 0; break; case 'W':case 'w':dx = 0; dy = -1; break; case 'S':case 's':dx = 0; dy = 1; break; default: dx = 1; dy = 0; break; } //是否和自身碰撞 for (int i = 1; i < snake.size; i++) { if (snake.body[0].X == snake.body[i].X && snake.body[0].Y == snake.body[i].Y) { return; } } //食物碰撞 if (snake.body[0].X == food[0] && snake.body[0].Y == food[1]) { InitFood(); snake.size++; score+=10; //关卡,增加速度,障碍物 } lx = snake.body[snake.size-1].X; ly = snake.body[snake.size-1].Y; for (int i = snake.size-1;i > 0; i--) { snake.body[i].X = snake.body[i - 1].X; snake.body[i].Y = snake.body[i - 1].Y; } snake.body[0].X += dx; snake.body[0].Y += dy; Sleep(300); } } void InitWall() { for (int i = 0; i <=HIGH; i++) { for (int j = 0; j <= WIDE; j++) { if (i == HIGH) { putchar('='); } else if (j == WIDE) { putchar('#'); } else { putchar(' '); } } putchar('\n'); } } void over() { for (int i = 0; i < HIGH; i++) { for (int j = 0; j < WIDE; j++) { if (i == 5) { for (int i = 0; i < 15; i++) { putchar('*'); } printf(" 游戏结束!!! "); for (int i = 36; i < WIDE; i++) { putchar('*'); } break; }else if(i==6){ for (int i = 0; i < 15; i++) { putchar('*'); } printf(" 游戏得分:%d ",score); for (int i = 36; i < WIDE; i++) { putchar('*'); } break; } else if (i == 7) { for (int i = 0; i < 15; i++) { putchar('*'); } printf(" 再来一次输入:Y/y "); for (int i = 36; i < WIDE; i++) { putchar('*'); } break; } else if (i == 8) { for (int i = 0; i < 15; i++) { putchar('*'); } printf(" 任意键结束 "); for (int i = 36; i < WIDE; i++) { putchar('*'); } break; } else{ putchar('*'); } } putchar('\n'); } } int main() { char tip = 'Y'; srand((unsigned int)time(NULL)); //去除控制台光标 CONSOLE_CURSOR_INFO cci; cci.dwSize = sizeof(cci); cci.bVisible = FALSE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci); while (tip == 'Y' || tip == 'y') { system("cls"); score = 0; InitWall(); InitFood(); InitSnake(); PlayGame(); system("cls"); over(); cci.bVisible = TRUE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci); tip=getchar(); getchar(); } printf("游戏结束,欢迎再来\n"); return 0; }
评论
    相关推荐
    • 贪吃蛇.zip
      简易Java贪吃蛇,实现计分功能和实现开始暂停结束页面功能,是平时作业,小菜鸡一个
    • 贪吃蛇.zip
      用labview写的一个贪吃蛇程序,使用了状态机模式
    • 贪吃蛇
      NULL 博文链接:https://bicashy.iteye.com/blog/1540304
    • 贪吃蛇小游戏
      C语言开发的贪吃蛇小游戏,支持windows/linux
    • C贪吃蛇
      摘要:VC/C++源码,游戏编程,贪吃蛇 C贪吃蛇源码,部分代码及注释如下:  int i,key;  int score=0;/*得分*/  int gamespeed=50000;/*游戏速度自己调整*/  struct Food  {  int x;/*食物的横坐标*/  ...
    • 贪吃蛇.rar
      本代码是vc++6.0的贪吃蛇C语言程序,运行之后就可以玩
    • 贪吃蛇
      贪吃蛇 源代码 C# 感兴趣的朋友,可以下载下来研究研究
    • 贪吃蛇
      NULL 博文链接:https://as3.iteye.com/blog/1014571
    • 贪吃蛇
      贪吃蛇 c++
    • 贪吃蛇.zip
      贪吃蛇小游戏python的个人制作嗯嗯嗯嗯