贪吃蛇

贪吃蛇代码100行c/c++

半城伤御伤魂 提交于 2020-10-25 15:39:08
贪吃蛇 基础知识 :结构体、数组 、srand()随机函数 以及#include <conio.h> 头文件下面的控制台输入 简单易懂没什么难的内容 运行环境 VScode2019 dev好像运行的更稳定 晕 、 代码这么短值得说的是 运用了 head 和tail 吧 ,呃好像队列 (自己也不知道为啥想起来用这个) 贪吃蛇吃掉食物后tail就减减, 然后变为蛇的长度就增加啦 没吃的话一直走蛇身体的长度不变(害 我擦 自己也不会解释了 。。。 代码说话吧) 人狠话不多 代码: 在这里插入代码片 ```#include < stdio . h > # include <stdlib.h> # include <stdio.h> // 随机函数的头文件 # include <iostream> //输入输出流吧 c也可以 cout 换成printf 就好了 # include <conio.h> # include <ctime> using namespace std ; char s [ 1000 ] [ 1000 ] ; int N = 28 , M = 80 , direction = 75 , k = 77 , grade = 0 ; int head = 4 , tail = 1 , leng , x , y , z = 1000 , game = 1 ; struct

【博客同步】【微信首发】GC-server的安装与使用

烈酒焚心 提交于 2020-10-25 11:13:26
天阳代码第一款“上公众号”的产品,终终终终于发布了。 下载链接: https://pan.baidu.com/s/1z8iAqAlK7B0z9TrtjXmlfQ 提取码:spvl 如果链接失效请反馈。 下载完成后,解压后再解压里面的git.zip和MinGW.zip,运行一键更新.bat后方可使用 下面附上使用教程(为保证大小小于10MB,加了很多快进,水印我也是没办法啊,没钱) 每次,只要双击“一键更新.bat”,就可以升级到最新版,每次打开C++文件夹里的GC_server.exe(注意,不是GC_server.cpp,GC_server.cpp是源代码,无法使用!GC_server.exe是软件,可以使用),就可以开开心心的玩了。 目前开发中的功能: VIP与充值 解决贪吃蛇没法玩的bug(已解决) 保证在Linux和Mac OS上也能运行 新增第五人格游戏 把失传的拯救公主游戏抢救回来(已解决) 欢迎大家提出宝贵意见! 来源: oschina 链接: https://my.oschina.net/u/4262079/blog/4449268

理解A*寻路算法具体过程

孤街浪徒 提交于 2020-10-24 18:24:17
这两天研究了下 A* 寻路算法, 主要学习了 这篇文章 , 但这篇翻译得不是很好, 我花了很久才看明白文章中的各种指代. 特写 此篇博客 用来总结, 并写了寻路算法的代码, 觉得有用的同学可以看看. 另外因为图片制作起来比较麻烦, 所以我用的是原文里的图片. 当然寻路算法不止 A* 这一种, 还有递归, 非递归, 广度优先, 深度优先, 使用堆栈等等, 有兴趣的可以研究研究~~ 简易地图 如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用 B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块. 二维数组在游戏中的应用是很多的, 比如贪吃蛇和俄罗斯方块基本原理就是移动方块而已. 而大型游戏的地图, 则是将各种"地貌"铺在这样的小方块上. 寻路步骤 1. 从起点A开始, 把它作为待处理的方格存入一个"开启列表", 开启列表就是一个等待检查方格的列表. 2. 寻找起点A周围可以到达的方格, 将它们放入"开启列表", 并设置它们的"父方格"为A. 3. 从"开启列表"中删除起点 A, 并将起点 A 加入"关闭列表", "关闭列表"中存放的都是不需要再次检查的方格 图中浅绿色描边的方块表示已经加入 "开启列表" 等待检查. 淡蓝色描边的起点 A 表示已经放入 "关闭列表" , 它不需要再执行检查. 从

正确的「记事本」打开方式:能渲染3D图像,还能玩贪吃蛇

两盒软妹~` 提交于 2020-10-09 07:04:28
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 渲染3D图像,一个「记事本」就够了。 最近,GitHub上一名叫“Kyle Halladay”的小哥,便上传了这样一个项目,用记事本来渲染图像。 效果是这样的: 立方体旋转、阴影变化,还挺有内味的。 还有贪吃蛇效果的: 那么,小哥是如何拿记事本,就做到这些效果的呢? 正确的「记事本」打开方式 据小哥介绍,所有的输入和渲染效果,都是在记事本中完成。 在此之前,需要做一些设置工作。 首先,是将键盘事件(Key Event),发送到正在运行的记事本。 这里就要用到 Visual Studio 提供的一个叫 Spy + + 的工具,可以列出组成给定应用程序的所有窗口。 Spy + + 显示了要找的记事本子窗口是“编辑”窗口。 一旦我知道了这一点,就只需要搞清楚 Win32函数调用的正确组合,用来获得该 UI 元素的 HWND,然后将输入发送过去。 得到的 HWND 是这样的: { HWND curWnd = GetTopWindow(0); //0 arg means to get the window at the top of the Z order char classNameBuf[256]; while (curWnd != NULL){ DWORD curPid;

用easyx图形库做一个简单的c++小游戏---贪吃蛇

巧了我就是萌 提交于 2020-10-07 07:08:01
用easyx图形库做一个简单的c++小游戏———贪吃蛇 开发环境:visual c++6.0 库:easyx图形库 下载地址>>> ( https://easyx.cn/downloads/ ) 我把游戏分成三个界面,第一个是初始界面,第二个是游戏界面,第三个就是死亡界面。分别写到3个函数里去调用。 成果展示: 初始界面: 游戏界面: 死亡界面: 附上代码: # include <easyx.h> //图形库graphics.h # include <iostream> //cpp头文件 # include <conio.h> //按键操作的头文件 # include <time.h> //提取时间,用来生成随机数 using namespace std ; void area1 ( ) ; //开始界面 void area2 ( ) ; //游戏界面 void area3 ( ) ; //结束界面 int main ( ) { initgraph ( 500 , 500 ) ; //初始一个图形区域(宽500,长500) BeginBatchDraw ( ) ; //开始绘图 area1 ( ) ; //开始界面 area2 ( ) ; //游戏界面 area3 ( ) ; //死亡界面 return 0 ; } void area1 ( ) { //开始界面的函数 do {

python实现简陋的贪吃蛇小游戏

雨燕双飞 提交于 2020-10-04 09:56:23
简陋的贪吃蛇小游戏 # -*- coding:utf-8 -*- # 导入库 import sys import time import random import pygame from pygame . locals import * # 参数设置 WIDTH = 640 HEIGHT = 480 BLOCK = 20 WHITE = ( 255 , 255 , 255 ) GREEN = ( 0 , 255 , 0 ) RED = ( 255 , 0 , 0 ) # 退出程序 def terminal ( ) : pygame . quit ( ) sys . exit ( ) # 绘制食物 def draw_food ( window , point ) : rect = pygame . Rect ( point [ 0 ] , point [ 1 ] , BLOCK , BLOCK ) pygame . draw . rect ( window , RED , rect ) # 绘制贪吃蛇 def draw_snake ( window , snake_body ) : for point in snake_body : rect = pygame . Rect ( point [ 0 ] , point [ 1 ] , BLOCK , BLOCK ) pygame .

原生JS实现一个简单的贪吃蛇小游戏

天涯浪子 提交于 2020-10-01 05:23:06
原生JS实现一个简单的贪吃蛇小游戏 利用javascript制作一个简单的贪吃蛇小游戏 相信在我们90后的童年中你们肯定在电视上或者在诺基亚手机上玩过一款叫贪吃蛇的小游戏,今天我就用js来完成一个简单的贪吃蛇小游戏。 首先在写代码之前我们得先知道贪吃蛇这个游戏运行的机制是什么: 下面是效果图 利用javascript制作一个简单的贪吃蛇小游戏 相信在我们90后的童年中你们肯定在电视上或者在诺基亚手机上玩过一款叫贪吃蛇的小游戏,今天我就用js来完成一个简单的贪吃蛇小游戏。 首先在写代码之前我们得先知道贪吃蛇这个游戏运行的机制是什么: (1)首先我们我们一打开游戏,是根据你屏幕的大小来控制贪吃蛇可活动的范围的,页面上会出现蛇还有蛇要吃的蛋。 (2)当你按下上下左右的时候,蛇会跟着你按的方向前进。 (3)当你的蛇头运动到蛋位置的时候,蛋就会消失,并且会在屏幕的另外一个地方重新产生一个蛋,并且你蛇的身子会变长。 (4)当你不小心控制蛇吃到自己的时候,那么游戏就结束了。这些规则相信大家都知道吧,其实代码编写也是按照这个规则顺序来执行的。并不会很难。 下面是蛇的样式和蛇的结构 (个人审美不行 所以可能样式并不是那么好看) <style> *{ margin: 0; padding: 0; } body{ background-color: black; } #pm{ position:

原生JS实现一个简单的打字小游戏

六眼飞鱼酱① 提交于 2020-09-27 02:59:11
原生JS实现一个简单的打字小游戏 利用javascript制作一个简单的打字小游戏 之前写了一个贪吃蛇小游戏好像反响不错 今天我来写一个比贪吃蛇更low更简单的打字小游戏 打字小游戏原理 接下来咋们直接康康代码: HTML和CSS JS 利用javascript制作一个简单的打字小游戏 之前写了一个贪吃蛇小游戏好像反响不错 今天我来写一个比贪吃蛇更low更简单的打字小游戏 之前贪吃蛇小游戏链接: 贪吃蛇小游戏 . 打字小游戏原理 根据字母的unicode编码 生成相应的随机数 在把随机数转换成字母 关键就是下面两行代码: zmcode = 65 + Math . floor ( Math . random ( ) * 26 ) ; var zm = String . fromCharCode ( zmcode ) ; 然后根据键盘按下事件 判断按下的键(keyCode)和随机生成字母(zmcode)有没有相等就可以知道你输入的字母有没有正确,错误字母颜色变红,正确就在随机生成一个字母。 接下来咋们直接康康代码: HTML和CSS <style> *{ margin: 0; padding: 0; } body{ background-color: #000000; } h1{ text-align: center; font-size: 400px; color:

C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!

我是研究僧i 提交于 2020-08-19 03:20:28
接上文《C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!》如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三、蛇的运动 上次我已经教大家画出蛇了,现在我就教大家让蛇动起来。为了让大家更好理解,蛇的移动就用最简单的办法,这里就不用链表,顺序队列什么的了。蛇的移动就是头往前移动,然后后面的身体移动到前一节身体原来的位置上。就像这样: 那蛇头怎么办呢? 为了确定蛇头的位置,我们定义一个变量原来存储蛇现在的方向。 intdirection; //蛇的方向 我们可以通过direction的值来标记现在蛇的方向。比如0代表上,1代表下。。。 为了方便,我们定义一些常量 //定义direction的每个值代表的方向 #defineUP 0 #defineDOWN 1 #defineLEFT 2 #defineRIGHT 3 这样,我们就可以这样写: 写好的move函数如下 然后move写好了,我们还要写个循环,这样就可以让蛇一直动了。地图画完一次并且画了蛇之后,我们要把光标移动到起始位置。最简单的办法是每一次画地图的时候都把关标移动到(0,0)。 修改drawMap函数为下面这样。在开头加一个设置位置的语句。 然后建立一个循环,不断地画蛇,移动。 然后观察一下,蛇确实走了,但是蛇的痕迹还在。 这样我们可以在蛇移动函数里面,擦去上一次的尾巴。

C语言简单贪吃蛇学习

谁都会走 提交于 2020-08-16 14:27:07
刚刚学完C语言想着写个小项目巩固一下基础知识,为下一步学习打下坚实的基础,然后开始在各大网站博客寻找能做的项目,最终选择了贪吃蛇小游戏,大部分都是调用的库函数,没有用到链表,指针等较复杂的知识点。 直接上代码! #define _CRT_SECURE_NO_WARNINGS //防止编译出错 #include<stdio.h> #include<graphics.h> //需按照Easy图形库 #include<conio.h> #include<time.h> #include<stdlib.h> typedef struct point { int x; int y; }mypoint; //蛇的属性 struct Snake { mypoint xy[100]; //蛇身最长100节 int num; //蛇的长度 char position; //方向 }snake; //食物的属性 struct Food { mypoint fdxy; int flag; int grade; }food; //窗口句柄 HWND hwnd = NULL; //方向枚举 enum position{up,down,left,right}; //初始化蛇 void initSnake() { snake.xy[2].x = 0; snake.xy[2].y = 0; snake.xy[1]