贪吃蛇

javascript 贪吃蛇

╄→гoц情女王★ 提交于 2020-12-22 23:44:38
1、创建地图 (10x10,宽度20格子) 2、创造人物(蛇头,设置初始位置,绝对位置【0,0】,开始游戏游戏后方向,速度) 3、创造食物(随机坐标,上一个结束后创建下一个,不能生成在蛇身体位置,可以格子和蛇身加唯一index) 4、移动人物(蛇头,监测键盘keycode 37、38、39、40,相应位置改变) 5、碰撞食物(事件判断,食物加入到蛇头后面,跟随移动,积分增加) 6、游戏结束判断(1、超出边框【可以检测蛇头头部位置或和所有格子碰撞检测】 2、撞击自身) 拓展: 1、控制游戏难度,改变定时器时间,改变speed 2、排行榜,企业应用,游戏结束弹出表单,可以填写信息到排行榜。 < html > < head > < meta charset ="UTF-8" > < title > 贪吃蛇 </ title > < style type ="text/css" > * { margin : 0 ; padding : 0 ; } ul { list-style : none ; } #container { border : 1px solid #ccc ; border-bottom : none ; border-right : none ; position : relative ; } #container > div { float : right ; }

js原生实现贪吃蛇(解决连续键盘事件)

喜夏-厌秋 提交于 2020-12-22 19:45:37
分析 把贪吃蛇这个游戏当做一个对象,他又由一下部分组成: 1.食物; Food (宽,高,颜色,坐标xy) 2.小蛇; Snake (宽,高,颜色,坐标xy,小蛇移动) 3.游戏规则;Game(地图map) (游戏结束和胜利,用户键盘控制,解决连续键盘事件) 我们将这三部分也当做三个对象,逐个分析,对它们添加自己的属性和方法,因为地图比较简单只需要设置样式即可,就不做分析,分析顺序按照难度从易到难来分析;(形参皆为游戏对象后期传进去的属性) 声明:本文有借助CSDN博主id: 那个方 的思路(吐槽下:原贴上缺少地图对象,还有几行莫名代码(可能是缺失对象的));然后处理了几个bug,添加了几个功能,如下: 撞击自己game over 食物不会刷新在小蛇的身体上 解决连续键盘事件game.flag 添加游戏胜利条件 添加游戏开始(重新开始) 添加暂停继续 代码如下:(有具体注释) <!DOCTYPE html> < html lang = " en " > < head > < meta charset = " UTF-8 " /> < meta name = " viewport " content = " width=device-width, initial-scale=1.0 " /> < title > 贪吃蛇 </ title > < style type = " text

菜鸟学IT之第一次作业

耗尽温柔 提交于 2020-12-20 23:06:12
作业的要求来自于: https://www.cnblogs.com/greyzeng/p/9581624.html 反思· 为何要来上课并且认真参与? 在大学中的师生关系? 自我简述题目 心得 · 学习态度 有关于为什么来上课并认真参与其中的问题,在我看来在不同的年龄阶段有不同的看法。 (图片转载弥心高三) 在高考结束后,父母问我读什么的时候?我记得当时的状态是懵的!那时候才发现自己的爱好是没有的,高中的时候一直是说我要考上什么什么学校、读什么什么大学,然而大学读什么专业,有什么专业却无从而知。从小学开始一直到高中的梦想仅仅只是为了看看父母与老师念念不忘的大学是什么样子的。但是当目标达成的时候却感到一片迷茫,原来从始至终我一直在走别人规划好的路,认为大人选择的路都是对的,但当自己选择要走什么路的时候却感到一片迷茫。在父母再三询问的时候,我只回了一句“不知道,还没想好!”。最后随着报考志愿的时间的到来匆匆忙忙的报考了当时社会上最热门的专业IT,仅仅是为了以后找到好的工作。由于专业不是自己最喜爱的,我对学习的看法也是有一些抵触心理,得过且过的。虽然说计算机专业软件工程的选择也符合我小时候想成为一个“黑客”的梦想(了解计算机后才知道我的梦想一直是错误的)但是也没有达到自己满意的程度。上课的时候除了老师讲到的重点的时候其余时间基本上都是在看小说或打游戏,课堂上没有做到认真听讲

【pygame】Python 制作五子棋人机对战

只愿长相守 提交于 2020-12-13 10:57:00
本文代码基于 python3.6 和 pygame1.9.4。 五子棋比起我之前写的几款游戏来说,难度提高了不少。如果是人与人对战,那么,电脑只需要判断是否赢了就可以。如果是人机对战,那你还得让电脑知道怎么下。 我们先从简单的问题来看。 开端 画棋盘 首先肯定是要画出棋盘来,用 pygame 画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到,就不赘述了。 画棋子 需要说一下的是画棋子,因为没找到什么合适的棋子图片,所以只要自己来画棋子。 我们用 pygame.draw.circle 画出来的圆形是这样的: 锯齿状十分明显, pygame.draw 中有画抗锯齿直线的函数 aaline ,但是并没有 aacircle 这样的函数来画一个抗锯齿的圆。 这里就需要用到 pygame.gfxdraw 啦。 pygame.gfxdraw 目前还仅是实验版本,这意味着这个 API 可能会在以后的 pygame 版本中发生变化或消失。 要绘制抗锯齿和填充形状,请首先使用函数的aa *版本,然后使用填充版本。例如: col = (255, 0, 0) surf.fill((255, 255, 255)) pygame.gfxdraw.aacircle(surf, x, y, 30, col) pygame.gfxdraw.filled_circle

单机和弱联网游戏内购

泄露秘密 提交于 2020-12-02 16:41:55
内购的概念是很好理解,就比如游戏本身是免费的,一般是手机游戏,但是游戏里面会有道具或者金币等需要花钱来购买,这样在游戏内部收费的方式,就称之为内购 一:分析程序内购逻辑 程序逻辑分析=>最重要的是流程分析/流程图=>核心(层次) 关键性信息查找=>静态(整体分析与局部分析)/动态 在分析的过程中,我们会去筛选一些关键信息,通过这些关键信息更快速的去实现想要的功能, 二:内购关键信息 1.内购关键词 如果能够明确游戏是类属以下哪一种的话,就可以在搜索栏直接搜索下列关键词。 和游戏搜索方法名: onResult,onchinabilling,resulton,Paycenter,Callback。 联通游戏搜索方法名: OnPayResult,PayResulton,Activity,result,callback。 电信爱游戏搜索方法名: buySuccess/paySuccess支付成功,buyCancel/payCancel支付取消,buyFailed/payFailed支付失败. 移动mm搜索方法名: onBillingFinish,Billing,CallBack,onresult。针对以上关键方法搜索无用的情况下,需要对关键onsuccess()函数进行筛选与定位。 支付宝和银行卡方法名 : handle,message。 支付宝搜索字符: 搜索字符串“9000”。

C语言实现贪吃蛇

元气小坏坏 提交于 2020-11-26 04:50:56
网易云课程链接: C语言贪吃蛇教程 该教程是win32控制台的小游戏代码,只要学完C语言就可以用来作为项目练手,本篇博客主要会记录一些我不太熟悉或我认为有意义的内容 教程关于游戏规则有一处Bug:在撞墙的瞬间改变方向蛇不会死,此处我在自己的代码中做了修改 封面(封皮+音乐) #pragma comment(lib,"winmm.lib")是什么意思 导入winmm.lib库,有了它才可以支持对windows 多媒体的编程 #pragma 是一条编译器指令,是给告诉编译器你要链接一些东西,然后在后面的comment里面指明是什么东西 使用播放文件的路径: PlaySound("10+往事只能回味.wav", NULL, SND_FILENAME | SND_ASYNC); 使用播放文件资源ID: #include"resource.h" 双引号导入工程头文件(非系统头文件) PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_ASYNC); 此处注意把常量写左侧可避免少打一个等号(赋值报错),另需注意不要写成 “ ”,双引号表示常量字符串会返回首地址。 显示背景、边框 shift+Tab 向前缩进,不按Tab向后缩进 随机蛇 nX对应x坐标对应列,nY对应y坐标对应行 参考: Visual Studio

用Pyhton Turtle 模块做小游戏

本小妞迷上赌 提交于 2020-11-23 07:38:49
前面我们用 Turtle模块模拟了贪吃蛇的游戏,现在我们来模拟另外一个经典的小游戏 Pong Game。这个经典的乒乓球游戏在手机和文群星上面当年也是风靡一时的。现在看看怎么实现。 当然界面是比较丑一点,我是随便找了一个贴图当背景,主要看看功能怎么实现的。这个游戏很多地方设计和贪吃蛇相似,关键点搞定反弹角度的数学关系,其他都很容易。 分解一下基本功能: 1.设计2个拍子,可以上下控制移动 2.球会自己跑 3.球碰墙壁会反弹 4.球碰拍子会反弹 5.球出界算分 6.接球以后会加速 解决方案: 2个拍子就是2个海龟的对象,通过监听事件控制 球是另外一个海龟对象,设定x坐标和y坐标的初始值,每次goto移动一下就好了 球到了边界反弹,注意他的Y坐标其实还是按照初始的方向递增,X方向反过来了,因此我们修改一下x,y的递增方向就好了 球到了拍子反弹,这是X坐标不变化,Y坐标反过来 显示牌是一个新的海龟对象,每次更新里面的显示参数就是了 加速的效果其实是修改timeout sleep的时间,每次改小一点点刷新快了看起来就更快了 直接上源代码: main.py from turtle import Turtle, Screen from paddle import Paddle import time from ball import Ball from scoreboard import

代码-贪吃蛇

半世苍凉 提交于 2020-10-31 19:01:49
贪吃蛇游戏代码 <!DOCTYPE html> < html > < head > < style > * { box-sizing : border-box ; } html, body { background-color : #000 ; height : 100% ; } body { background : #222 ; background : -webkit-radial-gradient ( #333, #111 ) ; background : radial-gradient ( #333, #111 ) ; background-position : center center ; background-repeat : no-repeat ; background-size : cover ; color : #fff ; font : 100%/1.5 sans-serif ; overflow : hidden ; } /*================================================ Score ================================================*/ .score { color : rgba ( 255, 255, 255, 0.5 ) ; font-size :

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

笑着哭i 提交于 2020-10-28 04:48:44
点击上方“ 迈微电子研发社 ”,选择“ 星标★ ”公众号 重磅干货,第一时间送达 渲染3D图像,一个「记事本」就够了。 最近,GitHub上一名叫“Kyle Halladay”的小哥,便上传了这样一个项目,用记事本来渲染图像。 效果是这样的: 立方体旋转、阴影变化,还挺有内味的。 还有贪吃蛇效果的: 那么,小哥是如何拿记事本,就做到这些效果的呢? 正确的「记事本」打开方式 据小哥介绍,所有的输入和渲染效果,都是在记事本中完成。 在此之前,需要做一些设置工作。 首先,是将键盘事件 (Key Event) ,发送到正在运行的记事本。 这里就要用到 Visual Studio 提供的一个叫 Spy + + 的工具,可以列出组成给定应用程序的所有窗口。 Spy + + 显示了要找的记事本子窗口是“编辑”窗口。 一旦我知道了这一点,就只需要搞清楚 Win32函数调用的正确组合,用来获得该 UI 元素的 HWND,然后将输入发送过去。 得到的 HWND 是这样的: HWND GetWindowForProcessAndClassName(DWORD pid, const char* className) { HWND curWnd = GetTopWindow( 0 ); // 0 arg means to get the window at the top of the Z order

【STM32学习 自制STM32游戏机】

荒凉一梦 提交于 2020-10-26 12:48:37
2020年科协招新需要出训练题,让新生了解一下单片机,所以我这边打算出一道游戏机的题,让新生用单片机实现一个游戏机,共3个游戏可选,分别为:贪吃蛇,打地鼠和推箱子,由于是针对于0基础新生,所以在指标上不做过多要求,只要实现出效果就行。 我负责的是贪吃蛇和推箱子 参考博客 (单片机原理与应用)大液晶屏的游戏设计(推箱子) 基于stm32、0.96寸OLED实现的贪吃蛇小游戏(详细源码注释) 推箱子 推箱子顾名思义就是控制游戏里的人将所有箱子全部推到指定位置就算通关,这个游戏在以前的手机上都挺常见的。本次题目主要是 要求新生自己找到一些推箱子的地图,并将地图里的要素显示在选择的屏幕上,然后通过按键/摇杆来控制游戏里的人移动,并完成关卡 ,关卡数做的越多,给分越高,5个封顶。 基本设计思路 OLED屏幕 用单片机制作游戏机最大的难点就在于屏幕,你要通过单片机来控制题目显示地图中的种种要素,比如推箱子的箱子,墙壁,人物等,因此根据自己想要实现游戏先对屏幕进行选型,然后熟悉自己的屏幕是非常重要的 在我自己实现方案的时候,我选择的是常用的OLED屏幕,OLED屏幕对于显示一些简单信息是非常方便的,建议一定要学会如何使用,很多时候一些设计用OLED屏幕就足够了。 OLED控制 在某宝上买到的OLED一般是SSD1306,通信方式一般是SPI或IIC,哪一种都可以