菜鸟学C++:做一个最最简单的贪吃蛇游戏

#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
#define HEIGHT 20
#define WIDTH 20
using namespace std;
void setMap(char maps[HEIGHT][WIDTH])
{
      int i,j;
      for(i=0;i<=WIDTH-1;i++)
      {
            maps[0][i]=‘-‘;
            maps[HEIGHT-1][i]=‘-‘;
      }
      for(j=1;j<=HEIGHT-2;j++)
      {
            maps[j][0]=‘|‘;
            maps[j][WIDTH-1]=‘|‘;
      }

      for(i=1;i<=HEIGHT-2;i++)
      {
            for(j=1;j<=WIDTH-2;j++)
                  maps[i][j]=‘ ‘;
      }

}
void showMap(char maps[HEIGHT][WIDTH])
{
      int i,j;
        for(i=0;i<HEIGHT;i++){
            cout << "\t";
            for(j=0;j<WIDTH;j++)
                  cout<<maps[i][j]<<‘ ‘;    //
                  cout<<endl;
      }
}

void countdown()
{
      int i,j;
      long   start;
      int timeover=1;

      for(i=2;i>=0;i--)
      {
            start=clock();
            while(clock()-start<=1000);
            system("cls");
            cout<<"The game is going to START! "<<i<<"s"<<endl;
      }
}
void initialization(int pos[2][100])
{
      for(int i=0;i<4;i++)
      {
            pos[0][i]=1;
            pos[1][i]=i+1;
      }
}
void setFood(char maps[HEIGHT][WIDTH],int *x,int *y)
{

}
int main()
{
      countdown();//倒计时
      char maps[HEIGHT][WIDTH];
      setMap(maps);//设置地图
      int tcsPos[2][100];
      initialization(tcsPos);//初始化蛇的位置

      int i,j;
      int head=3,tail=0;
      for(i=1;i<=3;i++)
            maps[1][i]=‘*‘;
      maps[1][4]=‘#‘; //初始化蛇身
      int x1,y1;

      srand(time(0));
      do
      {
            x1=rand()%20+1;
            y1=rand()%20+1;
      }while(maps[x1][y1]!=‘ ‘);
      maps[x1][y1]=‘*‘;
       system("cls");

      showMap(maps);//画地图+蛇

      char direction = 77;//右
      int x,y;
      while(1)
      {
            int timeover=1;
            long start=clock();
            while((timeover=(clock()-start<=900))&&!kbhit());
            if(timeover){
                  getch();direction=getch();
            }
            switch(direction){
                  case 72:x=tcsPos[0][head]-1;y=tcsPos[1][head];break;//上
                  case 80:x=tcsPos[0][head]+1;y=tcsPos[1][head];break;//下
                  case 75:x=tcsPos[0][head];y=tcsPos[1][head]-1;break;//左
                  case 77:x=tcsPos[0][head];y=tcsPos[1][head]+1;;//右
            }
            if(!(direction==72||direction==80||direction==75 ||direction==77)) //  按键非方向键
                  {cout << "\tGame over!" << endl;return 0;}
            if(maps[x][y]!=‘ ‘&&!(x==x1&&y==y1))
            {
                  cout<<"\tGame over!"<<endl;return 0;
            }
            if(x==x1&&y==y1)
            {
                  maps[x][y]=‘#‘;
                  maps[tcsPos[0][head]][tcsPos[1][head]]=‘*‘;
                  head=head+1;
                  tcsPos[0][head]=x;
                  tcsPos[1][head]=y;
                  do                //画米粒
                  {
                        x1=rand()%20+1;
                        y1=rand()%20+1;
                  }while(maps[x1][y1]!=‘ ‘);
                  maps[x1][y1]=‘*‘;
                  system("cls");
                  showMap(maps);
            }
            else
            {
                  maps[tcsPos[0][tail]][tcsPos[1][tail]]=‘ ‘;
                  tail=(tail+1)%100;
                  maps[tcsPos[0][head]][tcsPos[1][head]]=‘*‘;
                  head=(head+1)%100;
                  tcsPos[0][head]=x;
                  tcsPos[1][head]=y;
                  maps[tcsPos[0][head]][tcsPos[1][head]]=‘#‘;
                  system("cls");
                  showMap(maps);
            }
      }
      return 0;
}
时间: 2025-01-03 20:42:46

菜鸟学C++:做一个最最简单的贪吃蛇游戏的相关文章

做一个简单的贪吃蛇游戏

这是一个贪吃蛇游戏,你可以忽略他的外表,好了,先上html代码 <style type="text/css"> * {margin: 0;padding: 0;} #container {width: 1000px;height: 550px;border: 1px solid #000;margin: 0 auto;} #container #ground {width: 1000px;height: 500px;background-color:#eeeeee;posi

Java 开发简单的贪吃蛇游戏

public class Test { public static void main(String[] args) { Game game = new Game(); game.start(); } } public class Node { private int x ; private int y ; public Node(){} public Node(int x , int y){ this.x = x ; this.y = y ; } public int getX() { ret

用PyQt5和python3.6做一个最简单的GUI的程序

一般的程序都要有个GUI来实现人机交互的功能,今天我们来用PyQt来做一个最简单的程序 软件需求:python3.6 用的是Anaconda3.6(自带PyQt5,pip)    pycharm PyQt5    QtTools 环境安装和配置 由于Anaconda自带了PyQt5,不用再安装,但要用pip下载QtTools. pip install PyQt5-tools 如果装的不是Anaconda,可以在pycharm里查一下有没有装pyqt的模块,没有的话直接pip下载安装 pip in

一个简单的“贪吃蛇”小游戏

一个简单的“贪吃蛇”小游戏 页面结构 简单的21x21的方块,页面结构 id为container的div包含所21个class名为row的div,每个row代表贪吃蛇的一整行,每个row中又包含21个div,代表这一行的每一个div方格,如果这个方格是空的话,div的类名为blank,如果这一个方格表示“贪吃蛇”的“食物”,div的类名为food,如果这一个方格表示“蛇”,div的类名为snake. CSS JS 然后我们思考下一个贪吃蛇游戏需要那些参数, 首先,界面中可见的元素无非就是空方格,

javascript之【贪吃蛇系列】第一弹:简单的贪吃蛇实现

参考博客:http://blog.csdn.net/sunxing007/article/details/4187038 以上博客是参考,毕竟第一次做,真让自己盲人摸象做不出来. 不过我在其上做了一些改进,界面等效果看起来更好一些. 下图是在Chrome上运行的效果,但是火狐和IE会不兼容,onkeydown事件不能正确调用 这里用了一张图把贪吃蛇制作过程的思想画了出来,画的有点简陋: 下面就是把代码发上来,上边有详细的解释: <html> <head> <title>

easyx图形库做贪吃蛇游戏

编程总是对着一个黑窗口,可以说是非常乏味了,于是喵喵就翻出来了以前用easyx图形库做图形界面的贪吃蛇游戏. 不过大家只是当做提高编程的乐趣来学习吧,想进一步做的话可以学习QT,还有其他的框架. 这是一个easyx图形库的学习教程,建议大家学完再看本文: https://www.easyx.cn/skills/List.aspx?id=7 首先看一下效果图: 实现的功能: 基本的吃食物长大,撞墙死亡,特殊食物,游戏暂停,重开游戏,记分数的功能. 游戏最高分的记录. 游戏关卡的选择. 加了游戏的音

简单的贪吃蛇

最近都在忙着复习考试,忙里偷闲,抽出时间写了个贪吃蛇,没时间写详细的思路了,代码里有比较详细的注释,有兴趣的同学可以自己看看.(感觉写的相对来说还是比较简短的,如果有什么写的不好或是不对的地方,欢迎各位指出).在写这个贪吃蛇时,我省去了很多不必要的功能,只实现了最基本的功能,界面也比较粗糙,游戏功能也不见得很完善,只是为了用尽量少的代码来实现主体功能,大家可以在这个基础上进行修改和完善. /*----------------------------------------------------

qtday03 简单版的贪吃蛇游戏

//snakegame.h #ifndef SNAKEGAME_H #define SNAKEGAME_H #include<QList> #include<QtWidgets/QLabel> #include<QtWidgets/QDialog> #include<QKeyEvent> #include<QTimer> /*枚举,表示方向*/ enum Direction{D_UP,D_DOWN,D_LEFT,D_RIGHT}; class S

【视频】半小时内编写一个贪吃蛇游戏

贪吃蛇编写提纲 致谢: 感谢 Ronnie Mooney ,我是在学习了他的视频后完成这个视频的,你可以在 [C#] Creating a Snake Game - Less than an Hour 找到他的视频(需翻墙,请自备梯子). 编写 Input 静态类 初始化静态变量 private static readonly Hashtable _keys = new Hashtable() 编写方法 public static void ChangeState(Keys key, bool