贪吃蛇游戏的简单设计

C++简单的贪吃蛇游戏设计 设计一款简答的贪吃蛇小游戏,w、s、a、d控制蛇头改变方向,如果蛇吃到食物,则长度加一并且加一分,如果蛇撞到边界或者自身,则游戏结束。 阅读详情

 最近整理以前写的一些程序,大多数价值不大,都是些学习时练手的简陋程序,很多还是半成品,不过自己看着倍感亲切啊,呵呵!其中有一个贪吃蛇的小游戏,用C++写的,不过没用MFC,呵呵,有点非主流啊!不过当时刚开始学windows程序设计,使用SDK编程,貌似还不知道MFC和KFC有啥不同吧...

其实这个设计的很糟糕,不过是我第一次进行相对复杂和完整的面向对象设计吧,还是有纪念意义的。

 

//*******************************************************************************

/*结点类,基本蛇身结点和食物的模型*/

class Node
{
private: 
  int m_left,m_top;  //结点左上坐标
   
  COLORREF  col_fill,col_line; //绘制结点的颜色
public:
 
  void SetLeft(int x)
  {
      m_left=x;
  }

  void SetTop(int y)
  {
      m_top=y;
  }

  void SetFillColor(COLORREF cl_f)
  {
      col_fill=cl_f;
  }

  void SetLineColor(COLORREF cl_l)
  {
      col_line=cl_l;
  }

  int GetLeft(){return m_left;}
  int GetTop(){return m_top;}
  COLORREF GetFillColor(){return col_fill;}
  COLORREF GetLineColor(){return col_line;}
 
};

 

//****************************************************************

/*蛇类*/
class Snake
{
private:
    Node m_hnode,m_node;   //头结点对象,蛇身结点对象
    Node *m_snakenode[MAXLENGTH];   //蛇身结点数组
    int len;  //当前蛇身长度
    int m_direction;  //当前运动方向
    
public:
     void SetHeadNode(int x,int y,COLORREF fillcolor,COLORREF linecolor)  //设置头结点属性
    {
       m_hnode.SetLeft(x);
       m_hnode.SetTop(y);
       m_hnode.SetFillColor(fillcolor);
       m_hnode.SetLineColor(linecolor);
    }
 
    void SetNode(COLORREF fillcolor,COLORREF linecolor)  //设置蛇身结点属性
    {
   
       m_node.SetFillColor(fillcolor);
       m_node.SetLineColor(linecolor);
    }

      void SetDir(int dir)  //设置当前运动方向
   {
       m_direction=dir;
   }

   void SetLen(int length)  //设置蛇身长度
   {
       =length;
   }
 

    Node GetNode(){return m_node;}
    Node *GetHeadNode(){return &m_hnode;}

    Node* GetSnakeNode(int i){return m_snakenode[i];}

    void AddNode()  //吃到食物后添加结点
    {
        Node* pNode=new Node;
        m_snakenode[len]=pNode;
        len++;
    }
    int GetLen(){return len;};
    int GetDirection(){return m_direction;}
    

};

//**************************************************************************

 

JAVA游戏开发-超炫酷贪吃蛇游戏源码及教程 一.前言 某日,看见隔壁家的小朋友在玩一款网络爆款贪吃蛇游戏,感觉很好玩。自己刚好正在学习JAVA编程,也想实现一个类似功能的游戏Demo练手,在网上查看了不少源码案例,全都是很古老的方块式贪吃蛇游戏案例,没有想要的实现,因此自己动手实现一个JAVA版的贪吃蛇游戏。 我在这个Dome完成之后重写了这个游戏的Android版,并重新更名为《蛇王传说》。也欢迎大家下载试玩。游戏下载地址:https... 阅读详情

相关推荐

Java编写简单的贪吃蛇小游戏(GUI)

贪吃蛇 文章目录贪吃蛇1、游戏的主启动类2、图片3、游戏的面板 图片素材 1、游戏的主启动类 package com.lan.snake; import javax.swing.*; //游戏的主启动类 public class StarGame { public static void main(String[] args) { //1.新建一个窗口 ...

qq_42847094的博客 813

贪吃蛇详解Windows编程(四)

控制区的代码就不详细讲解了,自己看看就能明白,并没有什么难点。如果有兴趣的画还可以把界面做好一点,把功能做丰富一点。但是我觉得点到为止就行了。我用的是Win32空项目写的,你也可以用自动生成的代码写,但是我觉得那个太乱代码太多。 接下来是全部的代码: #include <windows.h> #include <vector> #include <time.h>//游戏区和控制区宽度高度 #def

_ACME_的博客 3313

利用C++写一个简单的贪吃蛇小游戏

首先,非常感谢白家名大佬参考提供的思路与方法,非常感谢!     首先写一个给光标定位的函数 void gotoxy(int x, int y) //光标定位 { COORD pos = { x,y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } 这个函数需要用win...

qq_40694605的博客 6791

【C/C++实战项目】贪吃蛇游戏

C语言代码实现贪吃蛇游戏设计、游戏机制、游戏界面、文件读写、自定义设置

phoenixFlyzzz的博客 7320

贪吃蛇(Windows SDK)

图形用windows api绘制,逻辑思路在类Snake中, 用list存储蛇坐标.初学者可以参考一下.

ARM 汇编指令:LSL(逻辑左移) 和 LSR(逻辑右移)

ARM 汇编中的 LSL(逻辑左移)和 LSR(逻辑右移)是基础移位指令,分别实现二进制位的左移和右移操作。LSL 低位补0,等效于乘以2^n;LSR 高位补0,等效于无符号除以2^n。这两个指令可以单独使用或与其他指令结合(如ADD、MOV等),利用ARM的"桶形移位器"硬件实现高效运算。关键特性包括:移位范围0-31(LSL)或1-32(LSR),可选更新标志位,以及与其他指令结合时的无额外开销优势。LSR与ASR(算术右移)的主要区别在于高位填充方式,分别适用于无符号和有符号数处理

guigenyi的专栏 1813

Snake Game---贪吃蛇WINAPI版

    经过几天的构思, 终于有一点思路了. 现把雏形贴上, 供大家指点一二. 只实现了移动, 其它的未完成.   用VC++6.0 Win32 Application工程编译通过. /* include files and constant variables here.*/#ifndef _RESOURCE_H_#define _RESOURCE_H_

eryar 939

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2185

【源码】用Win32 SDK写的贪吃蛇,欢迎交流

先看运行效果吧:使用mingw编译,语言为C++,下面开始源代码,分为两个文件:以下是header.h:Code: /* LiZhuohua     2010/7/6  */   #ifndef _SNAKE_HEADER_H_   #define _SNAKE_HEADER_H_   #define

AllStarGame的专栏 1325

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 911

一文带你了解SOA接口测试

了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的

怿星科技的博客 7156

简单贪吃蛇小游戏的设计与实现

简单的贪吃蛇小游戏实现

2402_86037826的博客 1005

对数周期天线hfss建模_Ansoft HFSS 在设计对数周期天线时的仿真方法-HFSS教程

AnsoftHFSS在设计对数周期天线时的仿真方法文章来源: ANSYS 2011中国用户大会优秀论文 录入: mweda.com 点击数:【摘要】 本文通过 ANSOFT HFSS 设计了一个对数周期天线,在仿真分析时,发现随着求解频率的不同,天线的求解结果差别较大,求解误差较大。通过在 HFSS 中尝试不同的求解设置方法, 最终通过将天线模型剖分网格最大长度限定在 1/50λ的...

weixin_42186728的博客 2099

基于linux的贪吃蛇游戏设计_源于Jquery开发贪吃蛇游戏——简单思路分析总结

前言刚开始是学习前端那会,在熟悉 HTML+CSS+JS 后,我开始尝试去做贪吃蛇游戏。没想到在一顿瞎搞后还真搞出来了一个简陋版的贪吃蛇。哈哈!因为这是我刚开始学习前端的时候做的,所以代码有点简陋,甚至可能存在不合理的地方。大家看的时候须得留心。实现思路概述本项目实现思路是非常简单的。即在地图(也就是贪吃蛇可以活动的范围)上,找到一个点做坐标原点,然后将地图划分成一个坐标系。借助坐标系,就可以通过...

weixin_39617484的博客 192

基于Meteoinfo与TrajStat的后向轨迹聚类分析实战:从数据准备到可视化制图

本文详细介绍了基于Meteoinfo与TrajStat进行后向轨迹聚类分析的完整实战流程。从Java环境配置、Meteoinfo软件与TrajStat插件安装,到精准获取NOAA气象数据、设置参数进行批量轨迹计算,再到利用聚类分析提炼主要气流路径,并最终完成专业地图可视化与制图。文章旨在帮助环境与气象研究者快速掌握从数据准备到成果输出的全链路操作。

p4q5r6s7t的博客 804

Atlas 300I Duo - vllm部署Qwen3-VL-8B-Instruct

本文介绍了在Ascend NPU环境下部署Qwen3-VL-8B大语言模型的步骤。主要包括:1)安装驱动、docker和vllm镜像;2)创建特权容器并挂载设备与目录;3)进入容器安装指定版本的transformers;4)设置环境变量和NPU卡配置;5)启动vllm服务;6)测试API接口。部署过程涉及多块NPU卡的使用,需注意内存碎片化问题,最终通过vllm框架提供模型推理服务。

m0_50105717的博客 1561

python简单游戏程序设计_用python写一个简单的贪吃蛇游戏

不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩?Python 虽然并不是一个“为游戏而生”的语言,但也有着自己的游戏引擎。最常用的就是 pygame 。另外还有一个知名游戏引擎 cocos2d ,它的最初版本就是基于 python 的 cocos2d-python。这两个引擎我们都有过案例,其中 pygame 更是做过一个较为详尽的入门教程 --《打飞机》小游戏,链接见文末。今...

weixin_39863759的博客 167

从零到精通:BLDC电机驱动电路详解与设计思路

这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。

weixin_43199439的博客 3102

python贪吃蛇程序设计_python实现简单贪吃蛇游戏

本文实例为大家分享了python实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下代码:from turtle import *from random import randrangefrom time import sleep### 定义变量snake = [[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]apple_x = randrange(-20,20)*...

weixin_39908462的博客 237

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【无标题】基于ncurses库简单设计贪吃蛇游戏

基于ncurse库创建蛇的二位坐标结构体并创建线程来实现游戏界面的动态刷新

qiao代码的木偶人的博客 640

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java小游戏—贪吃蛇

游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、 游戏的速度选择更新界面、游戏分数的显示更新界面、新生方块的预览、游戏开始按钮、 暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。通过对游戏线程控制实现游戏不同难度(移动速度)设定,通过键盘监听器设置实现贪吃蛇移动方向控制,用集合存储蛇身,通过对集合的操作实现蛇身的移动,吃到食物集合长度加一,以线程中断弹窗实现游戏结束。的一个贪吃蛇游戏软件,主要实现游戏的开始、暂停、退出、 等功能,分为:游戏主界面模块、游戏控制模块以二个模块。

m0_54570435的博客 8932

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

教你如何用C语言做一个简单的贪吃蛇

小时候大家可能都玩过贪吃蛇,但有没有想过自己做一个出来玩玩看。今天我们就教大家用C语言做一个简单的贪吃蛇游戏。这里没有采用图形界面去做,而是采用win32控制台。 首先,先把做好的游戏初始界面和游戏截图先展示一下。

OMGMac的博客 4万+

贪吃蛇游戏-小程序游戏

<canvas>组件和小程序界面API的相关用法 1.需求分析 本项目一共需要2个页面,即首页和游戏页面,其中首页用于呈现关卡菜单,点击对应难度的关卡后进入游戏界面 1.1首页功能需求 首页需要包含标题和关卡列表 关卡列表包含两种游戏模式,即简单模式和困难模式,主要区别在于贪吃蛇移动速度的快慢。 点击关卡图片可以打开对应的游戏界面 1.2游戏页功能需求 游戏页面需要显示当前得分,游戏画面,方向键和“重新开始”按钮 点击方向键可以使贪吃蛇上,下,左,右转方向前进和吃食物 游戏画

m0_46965984的博客 9158

Python实现贪吃蛇小游戏(二)

使用 python 第三方库 pygame 实现贪吃蛇小游戏。

奇点.的博客 4218

[C#学习记录]C#实现简单类似贪吃蛇游戏

通过C#实现类似贪吃蛇的游戏及延伸想法

LumosDXH的博客 2332

使用C++编写的简单贪吃蛇游戏

在本文中,我们将学习如何使用C++编写一个简单的贪吃蛇游戏。这个程序包括游戏场景、移动方向、食物和蛇的身体等基本元素。

bill_bwdf的博客 1811
上一篇: 一个五子棋判断获胜的算法
下一篇: 24点问题
cx08030072
博客等级 码龄17年 21粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值