贪吃蛇完整代码(史上最详细)

Python贪吃蛇 (完整代码+详细注释+粘贴即食) 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:Wangdali time:2021年1月24日16:08:44 #python实现:贪吃蛇 ''' 游戏玩法:回车开始游戏;空格暂停游戏/继续游戏;方向键/wsad控制小蛇走向 ''' ''' 思路:用列表存储蛇的身体;用浅色表示身体,深色背景将身体凸显出来; 蛇的移动:仔细观察,是:身体除头和尾不动、尾部消失,头部增加,所以,新添加的元素放在列表头部、删除尾部元素; 游戏结束判定策略:超出 阅读详情
//0丶头文件
#include<stdio.h> //标准函数
#include<stdlib.h> //库文件
#include<graphics.h> //图形窗口
#include<conio.h> //控制台
#define SNAKE_NUM 500 //蛇的最大节数

//1丶蛇方向
enum DIR 
{
   UP, //上
   DOWN, //下
   LEFT, //左
   RIGHT, //右
}

//2丶蛇结构
struct snake
{
   int size; //蛇的节数
   int speed; //蛇的速度
   int dir; //蛇的方向
   POINT coor[SNAKE_NUM]; //蛇坐标
}sanke;

//3丶食物结构
struct food
{
   int x; //食物横坐标
   int y; //食物纵坐标
   int r; //食物半径
   bool flag; 食物是否被吃
   DWORD color; //食物颜色
}food;

//4丶数据初始化
void GameInit()
{
   initgraph(640,480); //初始化图形窗口大小
   srand(GetTickCount()); //从开机到现在经过的毫秒数,随机生成食物
   snake.size=3; //初始化蛇的节数
   snake.speed=10; //初始化蛇的速度
   snake.dir=RIGHT; //初始化蛇的方向

   for(int i=0;i<snake.size;i++) 
   {
      snake.coor[i].x=40-10*i; //初始化蛇的三段节数代表 0 1 2 依此类推
      snake.coor[i].y=10; 
   }

   food.x=rand()%640; 
   food.y=rand()%480;
   food.r=rand()%10+5; //随机生成半径为0~4的食物
   food.flag=true;
   food.color=RGB(rand()%256,rand()%256,rand()%256);
}

//5丶游戏绘制
void GameDraw()
{
   BeginBatchDraw(); //双缓冲绘制
   setbkcolor(RGB(28,115,119)); //图形窗口背景颜色
   cleardevice(); //清空图形
   setfillcolor(GREEN); //蛇和食物颜色

   for(int i=0;i<snake.size;i++) 
   {
     solidcircle(snake.coor[i].x,snake.coor[i].y,5); //绘制蛇 solidcircle - 圆形填充物
   }
   if(food.flag)
   {
     solidcircle(food.x,food.y,food.r); //绘制食物
   }
   EndBatchDraw(); //结束绘制
}

//6丶让蛇动起来
void snakeMove()
{
   for(int i=0;i<snake.size;i++)
   {
    snake.coor[i]=snake.coor[i-1]; //移动时位置发生改变
   }

   switch(_getch()) //_getch()接收按键
   {
     case UP:
     snake.coor[0].y-=snake.speed;
     if(snake.coor[0].y+10<=0)
     {
       snake.coor[0].y=480;
     }
     break;
        case DOWN:
     snake.coor[0].y+=snake.speed;
     if(snake.coor[0].y-10>=480)
     {
       snake.coor[0].y=0;
     }
     break;
        case LEFT:
     snake.coor[0].x-=snake.speed;
     if(snake.coor[0].x+10<=0)
     {
       snake.coor[0].x=640;
     }
     break;
        case RIGHT:
     snake.coor[0].x-=snake.speed;
     if(snake.coor[0].x-10>=640)
     {
       snake.coor[0].x=0;
     }
     break;
   }
}

//7丶通过按键控制蛇的方向
void KeyControl()
{
  if(_kbhit())
  {
     switch(_getch())
     {
          case 'w':
          case 'W':
      case '72':
      if(snake.dir!=DOWN)
      {
      snake.dir=UP;
      }
      break;
      case 's':
      case 'S':
      case '80':
      if(snake.dir!=UP)
      {
      snake.dir=DOWN;
      }
      break;
      case 'a':
      case 'A':
      case '75':
      if(snake.dir!=RIGHT)
      {
      snake.dir=LEFT;
      }
      break;   
      case 'd':
      case 'D':
      case '78':
      if(snake.dir!=LEFT)
      {
      snake.dir=RIGHT;
      }
      break;
      case ' ': //空格暂停游戏逻辑
      while(1)
      {
        if(_getch()==' ')
        return;
      }
    }  
  } 
}

//8丶吃食物
void Eatfood()
{
  if(food.flag&&snake.coor[0].x>=food.x-food.r&&snake.coor[0].x<=food.x+food.r&&
    snake.coor[0].y>=food.y-food.r&&snake.coor[0].y<=food.y+food.r)
  {
    food.flag=false;
    snake.size++;
  }
  if(!food.flag) //食物被吃重新生成食物
  {

    food.x=rand()%640;
    food.y=rand()%480;
    food.r=rand()%10+5;
    food.flag=true;
    food.color=RGB(rand()%256,rand()%256,rand()%256);
  }
}

//9丶暂停游戏
void stop()
{
   if(_kbhit())
   {
      if(_getch()==' ')
      {
         while(_getch()==' ')
         {
 
         }
      }
   }
}

//10丶主函数
int main()
{
   GameInit(); //初始化数据
   
   while(1)
   {
      GameDraw(); //游戏绘制
      snakeMove(); //让蛇动起来
      KeyControl(); //通过按键改变蛇的方向
      Eatfood(); //吃食物
      Sleep(40); //控制蛇的速度
}







Python贪吃蛇简单的代码 在自学Python的过程中在网上查询资料时发现了一些好玩的东西,python的游戏库模块,它可以自己弄一个小游戏来玩玩,然后我在网上找了一些游戏的代码,,自己改了一些,弄出了一个简单贪吃蛇代码也是照着敲的只是稍微的改了一下 import pygame, sys, random, time from pygame.locals import * # 从pygame模块导入常用的函数和常量 #定义... 阅读详情

相关推荐

Pygame经典小游戏--贪吃蛇完整代码+部分代码讲解)

通过本次对贪吃蛇游戏的改进和优化,提升了游戏的可玩性和趣味性,为玩家带来更加丰富和多样的游戏体验。如果你也对这款游戏感兴趣,不妨自己动手尝试一下,相信你会在编程的过程中找到无尽的乐趣和成就感!

m0_62857127的博客 5592

从零开始实现贪吃蛇(完整代码)

本文将分为三个部分来讲解贪吃蛇的实现,分为贪吃蛇开始前的游戏画面、游戏中画面、游戏结束画面,那我们开始吧!

qq_65898266的博客 6473

c++贪吃蛇代码 完整

c++ 实现贪吃蛇完整源码 文章结构: 数据结构分析 程序运行分析 难点分析 一点思考 源代码 总结 数据结构分析: 1.双向队列:这里我才用双向队列的数据结构存储蛇身节点(这里的蛇身节点我才用结构体来存储蛇身信息) (因为贪吃蛇的实现还是比较简单的,所以也只涉及到了这一种数据结构) 程序运行分析 程序开始用户随机按下w,a,s,d中任意按键开始游戏并且作为蛇运动的初始方向,然后进入循环持...

温柔的博客 9万+

贪吃蛇完整代码 简便

代码贪吃蛇完整代码 简便。

li___12345的博客 7681

贪吃蛇代码

贪吃蛇代码: import pygame,sys,time,random from pygame.locals import * # 定义颜色变量,颜色范围在0-255之间,由红、绿、蓝三个颜色组成的 redColour = pygame.Color(255,0,0) blackColour = pygame.Color(0,0,0) Colour=pygame.Color(0,200,200) whiteColour = pygame.Color(255,255,255) greyColour =.

qq_51697761的博客 1万+

100行Python代码实现贪吃蛇小游戏(超详细

贪吃蛇小游戏相信80、90后小时候肯定都玩过,那么你知道如果通过Python来实现吗?今天小千就来教大家。首先给大家看一下终的呈现效果: 基本准备 首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知道整个游戏分为四部分: 1.游戏显示:游戏界面、结束界面 2.贪吃蛇:头部、身体、食物判断、死亡判断 3.树莓:随机生成 4.按键控制:上、下、左、右 游戏显示 首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题

xiaoxijinger的博客 1万+

C语言简易贪吃蛇(附完整代码

贪吃蛇小游戏 这是楼主刚学完C语言写的第一个小游戏,代码主要参考: https://blog.csdn.net/qq_37074040/article/details/54766680 我在模仿代码的过程中发现了原作者程序中的一些bug,以下f附有我加以改进后的代码。 1.游戏界面 楼主认为这个小游戏游戏界面的核心在于光标的控制。只要我们能让光标到达...

Snowzhao的博客 4万+

贪吃蛇——C语言实现(详细代码讲解)

贪吃蛇——C语言实现 贪吃蛇是非常经典的一款游戏,本次我们模拟在控制台实现贪吃蛇游戏,也就是实现贪吃蛇的基本功能,比如在地图中,用“↑↓←→”控制移动蛇的方向,吃掉食物之后,蛇身体会变长等等。。。。 首先我们得分析,游戏中我们会碰见的一些情况。 ①蛇的部分,蛇的身子是一节一节的,此时容易联想到的数据结构就是顺序表,链表,如果把蛇比做顺序表或者链表,在之后吃到食物的时候,身子肯定会变长,这就...

Gary的面包屑小道 3万+

10分钟教你用C++写一个贪吃蛇附带AI功能(史上详细入门的贪吃蛇教程)附源代码下载

C++编写贪吃蛇小游戏快速入门 刚学完C++。一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能。希望大家Enjoy It. 效果图示 AI模式演示 整体规划+原理 大体上可以分为图上所示的几个类。不过……怎么看都有点强行面向对象的味道在里面。。[哭笑][哭笑][哭笑]。不管了……代码写得可能有点凌乱,下面我会为大家一一讲解。 整个程序设计...

DENGFAHENG的博客 8685

Python贪吃蛇游戏详细代码和注释

在写Python游戏项目时,重要的时python中的pygame库。安装pygame库和用法在我CSDN博客另一篇文章上。这里就不详细说了。下边时运行游戏界面。 下边是详细代码和注释 import pygame,sys,random,time from pygame.locals import * #从pygame模块导入常用的函数和常量 #定义颜色变量 black_colour...

Ljt101222的博客 3万+

C语言实现贪吃蛇详细版)

以上就是贪吃蛇的基本内容啦,完结撒花~下面有一些想说的话:这篇文章的完成时间是2023.5.12,我现在是一名大一下的计科学生,其实C语言在去年十月份的中旬就看完了翁恺老师的网课,那个时候其实就有能力完成这个贪吃蛇的编写了,但是知道现在才写完,其实是走了很多弯路,耽误了不少时间北哥,在加入北哥的知识星球”编程指北“后才回正了自己的学习方向,也希望大家都能在正确的道路上越走越远~

m0_73906588的博客 4万+

100行代码,轻松完成贪吃蛇小游戏,练完这个游戏你的Python就牛了

100行代码,轻松完成贪吃蛇小游戏,练完这个游戏你的Python就牛了

xiqng17111342931的博客 4946

贪吃蛇游戏(C语言实现)

通过简单的c代码实现了这一款经典的小游戏贪吃蛇~

Auraro_z的博客 9792

贪吃蛇游戏代码(C语言项目)

代码贪吃蛇游戏代码(C语言项目)

2401_83595513的博客 5863

C语言小游戏--贪吃蛇完整代码

本文基于C语言,写的一游戏代码,可以利用键盘控制小蛇的移动,吃到食物,小蛇长度增加,得分加一,碰到砖块或是自己游戏失败。

Liu1_1_的博客 4493

贪吃蛇_代码+解析

define UP 0 //上#define DOWN 1 //下#define LEFT 2 //左#define RIGHT 3 //右#define X 23 //X坐标#define Y 40 //Y坐标#define MAXLEN 200 //大长度#define MINTIME 75 //等待时间。

m0_72413130的博客 2457
下一篇: 1.1丶MySQL - 基础篇
工程师——狄狄
博客等级 码龄4年 12粉丝 19原创
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值