iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++实现超简单的贪吃蛇游戏实例介绍
  • 894
分享到

c++实现超简单的贪吃蛇游戏实例介绍

2024-04-02 19:04:59 894人浏览 泡泡鱼
摘要

目录设计思路实现代码效果设计思路         建议先将代码复制下来跑一遍再来看思路!!!         通俗易懂,请仔细看。         值得注意的是我给出的代码没有加墙体

设计思路

        建议先将代码复制下来跑一遍再来看思路!!!

        通俗易懂,请仔细看。

        值得注意的是我给出的代码没有加墙体,如有需要自己添加。

        也没有难度设计,同上。

地图大小(这里设计了墙体,代码中未实现)

设置一个整形数组map,其大小为1600,对应着地图的大小为1600,并初始化数组,令数组中的值全为0,0代表空地。

我们通过设定窗口的宽度为80,打印时每个map[i] 所对应的字符占两格位置即可实现每打印40个map[i]就换行的效果。

这样地图的长宽即为40x40.

      2.墙体

墙体在地图的最外围,意味着当map[i]中的i为地图边界时,对应着墙体,使用if语句判断i的值,符合位于边界的条件打印墙体即可。

通过地图的大小我们了解到,当0<=i<=39时,map[i]对应着第一行,也就是地图的边界 ,同样的,地图左边界的i满足i%40==0,右边界的i满足(i+1)%40==0,,同理下边界。将上述符合的条件放入if语句中即可实现打印墙体的功能。

        3.蛇

蛇是如何移动呢?并且保持一定长度。其实我们只需要一个蛇头就可以办到,因为蛇身只是旧蛇头的位置,所以我们一直只需更新蛇头坐标就能达到目的,如何保持长度呢?,因为我们更新新的蛇头,去掉旧的蛇尾是很显然的事了,在地图大小中我们提到,map[i] 如果等于0,就是空地,让蛇尾的值变成0就行了,因为蛇一直在移动,所以当前蛇尾的前一节蛇身会是下一刻的蛇尾,很自然的联想到了以1为公差的一组数1234,分别对应蛇身的值,如果我们想使蛇连续的动起来,新蛇头的值为4,在加入新蛇头前将蛇尾变为0,蛇尾前一节蛇身变为此刻蛇尾对应的值为1,使蛇整体减去1,此时的蛇的值为0123,加入蛇头4,01234,此刻原蛇尾变为空地,原蛇尾前一截蛇身变为此刻的蛇尾。贪吃蛇的持续移动便完成了。

       4.食物

很自然的,在上面3节map[i]为0,正整数时都有了对应的含义,食物我们便使其 map[i] =-1.因为贪吃蛇游戏中食物的生成要求是随机的,但我们的c++课程中并没有提到,便在网上查找到了随机数生成的函数srand(上面的设定窗口大小也是如此),生成的随机数i可能超出数组大小,对i取1600的余数即可。食物只能生成在空地上,当map[i]等于0时,令map[i]=-1。新的食物便生成了。容易忽略的一点是,我们并没有给墙体map[i]的值,也就是所墙体的值在数组中对应的是空地,只不过通过i的位置来判断是否为墙体,在这里,同样也要加入墙体的位置到判断条件,以免食物生成在墙体内。新的食物在旧的食物被吃掉后立即生成。

      5.死亡判定

我们通过新蛇头所对应的值来判断蛇是否死亡

        (1)map[headx+heady*40]>0, 由3我们可以知道,蛇身所对应的map [i]  值大于0,新蛇头所对应的map值大于0也就意味着新蛇头在蛇身生成,按

照贪吃蛇的规则,游戏结束

       (2)(headx+heady*40)满足墙体的打印条件时,意味着蛇头在墙体生成,游戏结束

实现代码


#include<bits/stdc++.h>
#include<windows.h>
#include<iOStream>
#include<coNIO.h>
int main() {
    int headx = 0, heady = 0, len = 5, map[1600] = { 0 }, i = 0;
    char c = 'd', cl = 'd',body=3,head=2;
    
    srand((unsigned)time(0));
    system("mode con:cols=80 lines=40");
    map[rand() % 1600] = -1;
    while (true)
    {
        if (_kbhit())//判断键盘输入
        {
            cl =_getch();
            if (cl < 97) cl += 32;
            if (cl == 'a' && c != 'd' || cl == 'd' && c != 'a' ||cl == 'w' && c != 's' || cl == 's' && c != 'w')//判断输入方向是否与原方向冲突
                c = cl;
        }
        
        if (c == 'a') headx--;
        if (c == 'd') headx++;
        if (c == 'w') heady--;
        if (c == 's') heady++;
        
        if(headx==-1||headx==40||heady==-1||heady==40)
            break;
        
        if (map[heady * 40 + headx])
        {
            if (map[heady * 40+headx] > 0) break;
            
            if (map[heady * 40 + headx] < 0)
            {
                len++;
                for (i = rand() % 1600; map[i] || !(map[i] = -1); i = rand() % 1600);
            }
        }
        
        else for (i = 0; i < 1600; i++)
        {
            if (map[i] > 0) map[i] -= 1;
        }
        system("cls");
        
        for (map[heady * 40 + headx] = len, i = 0; i < 1600; i++)
        {
            if (map[i] == len) {
                printf("%2d", map[i]);
                continue;
            }
            if (map[i] > 0)  printf("%2d", map[i]);
            if (map[i] == 0)  printf("%2d", map[i]);
            if (map[i] == -1) printf("%2d", map[i]);//打印
         }
        Sleep(100);
    }
}

效果

 如果你仔细阅读了代码,将数字替换成你想要的符号(占两个字符大小如果是一个字符要加一个空格)是很简单的事情

如果你想要游戏循环进行,也是很容易办到的。

这只是个demo,你可以根据自己的需要任意的改写。

到此这篇关于c++实现超简单的贪吃蛇游戏实例介绍的文章就介绍到这了,更多相关c++贪吃蛇游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: c++实现超简单的贪吃蛇游戏实例介绍

本文链接: https://www.lsjlt.com/news/160342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c++实现超简单的贪吃蛇游戏实例介绍
    目录设计思路实现代码效果设计思路         建议先将代码复制下来跑一遍再来看思路!!!         通俗易懂,请仔细看。         值得注意的是我给出的代码没有加墙体...
    99+
    2024-04-02
  • c++如何实现超简单的贪吃蛇游戏
    小编给大家分享一下c++如何实现超简单的贪吃蛇游戏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!设计思路        建议先将代码复制下来跑一遍再来看思路!!! ...
    99+
    2023-06-22
  • C++实现简单贪吃蛇小游戏
    本文实例为大家分享了C++实现简单贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 1 贪吃蛇游戏原理 1.1 构造蛇身:定义一个坐标数组,存放的是蛇的每一节蛇身所在的坐标位置。 1...
    99+
    2024-04-02
  • Java实现简单的贪吃蛇游戏
    本文实例为大家分享了Java实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 代码 启动类 package snake; import javax.swing.*; /...
    99+
    2024-04-02
  • python实现简单的贪吃蛇游戏
    本文实例为大家分享了python实现贪吃蛇游戏的具体代码,加入按钮、难度、音乐、得分功能,供大家参考,具体内容如下 贪吃蛇小游戏,可以显示出得分,又背景音乐,难度选择和开始重启按钮设...
    99+
    2024-04-02
  • C语言实现简单的贪吃蛇游戏
    本文实例为大家分享了C语言实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 用指针数组来表示蛇,p[0]表示蛇头 控制方向:w,s,a,d-->上下左右  j,...
    99+
    2024-04-02
  • unity实现简单的贪吃蛇游戏
    本文实例为大家分享了unity实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 SatUIController代码 using UnityEngine; using Un...
    99+
    2024-04-02
  • C++实现简易贪吃蛇游戏
    C++实现建议贪吃蛇(不会闪屏幕) 使用vs2013完成。记录踏上游戏开发的道路。 效果图 代码 // 2021.7.24.1贪吃蛇.cpp : 定义控制台应用程序的入口点。 ...
    99+
    2024-04-02
  • Java实现简单版贪吃蛇游戏
    本文实例为大家分享了Java实现简单版贪吃蛇游戏的具体代码,供大家参考,具体内容如下 这是一个比较简洁的小游戏,主要有三个类,一个主类,一个食物类,一个贪吃蛇类。 1、首先定义主类...
    99+
    2024-04-02
  • python实现简单贪吃蛇小游戏
    本文实例为大家分享了python实现简单贪吃蛇的具体代码,供大家参考,具体内容如下 1. 导入游戏库 import pgzrun import random 2.游戏初始化 # 窗口...
    99+
    2024-04-02
  • java实现简单贪吃蛇小游戏
    本文实例为大家分享了java实现贪吃蛇小游戏,供大家参考,具体内容如下 有两个类,放在同一文件下下即可,背景图片,标题,蛇尾可自行更改 import java.awt.*; im...
    99+
    2024-04-02
  • Java实现简单的贪吃蛇小游戏
    本文实例为大家分享了Java实现简单的贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 1. 程序结构 程序结构图如图: 2. 程序设计思路 2.1 Data类 作用:连接stat...
    99+
    2024-04-02
  • C语言实现简单的贪吃蛇小游戏
    本文实例为大家分享了C语言实现简单贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 #温馨提示:以下设计在VS2019下完美运行,完整代码附在末尾,供大家学习参考 (1)游戏进入界面...
    99+
    2024-04-02
  • Java怎么实现简单的贪吃蛇游戏
    本篇内容主要讲解“Java怎么实现简单的贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么实现简单的贪吃蛇游戏”吧!本文实例为大家分享了Java实现简单贪吃蛇游戏的具体代码,供...
    99+
    2023-06-20
  • C语言如何实现简单的贪吃蛇游戏
    本篇内容主要讲解“C语言如何实现简单的贪吃蛇游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何实现简单的贪吃蛇游戏”吧!运行效果代码#include <Windows....
    99+
    2023-07-04
  • 基于Java实现简单贪吃蛇游戏
    本文实例为大家分享了Java实现简单贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇小游戏制作方法 首先需要的准备有: 1、掌握Java基础知识,即Java SE 2、了解一定...
    99+
    2024-04-02
  • C++如何实现简易贪吃蛇游戏
    这篇文章主要介绍C++如何实现简易贪吃蛇游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C++实现建议贪吃蛇(不会闪屏幕)使用vs2013完成。记录踏上游戏开发的道路。效果图代码// 2021.7.24....
    99+
    2023-06-20
  • 基于Pygame实现简单的贪吃蛇游戏
    目录导入相关的包设置屏幕大小以及基本参数设置贪吃蛇的位置,以及移动的大小绘制蛇让蛇动起来实现贪吃蛇拐弯实现随机食物吃食物完整代码 导入相关的包 import pygame, sy...
    99+
    2024-04-02
  • C#实现贪吃蛇小游戏
    本文实例为大家分享了C#实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 之前一直想写一个贪吃蛇小游戏,上个周末终于有时间做了一个,现在和大家分享。 界面 界面比较简单,一个按钮...
    99+
    2024-04-02
  • 怎么用C语言实现简单的贪吃蛇游戏
    这篇文章主要讲解了“怎么用C语言实现简单的贪吃蛇游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现简单的贪吃蛇游戏”吧!本文实例为大家分享了C语言实现简单贪吃蛇游戏的具体代码...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作