贪吃蛇

用Js写的贪吃蛇游戏

核能气质少年 提交于 2020-02-23 19:11:41
<!doctype html > < html > < head > < title >snake </ title > < script > function Snake(canvas){ this.canvas = canvas; this.length = 0; this.direction = 'down'; this.body = [], this.head = function(){ return this.length == 0 ? null : this.body[0]; }; this.isAlive = true; this.onDie = null; this.onEat = null; this.speed = 200; this.auto = null; this.turnLeft = function(){ if( this.direction == 'left' || this.direction == 'right'){ return; }else{ this.direction = 'left'; } }; this.turnRight = function(){ if( this.direction == 'left' || this.direction == 'right'){ return; }else{ this.direction =

网页小游戏贪吃蛇制作笔记(2)---惊喜部分

南楼画角 提交于 2020-02-22 12:33:45
用if循环当游戏分数达到520分时,将弹出准备收获小惊喜的弹窗,再通过 window.location.href="js/suiprise.html"; 实现当前页面打开URL页面,从原来的页面跳转到另一个新的页面。 location.href 常见的几种形式: self . location . href ; //当前页面打开URL页面 window . location . href ; //当前页面打开URL页面 this . location . href ; //当前页面打开URL页面 location . href ; // 当前页面打开URL页面 parent . location . href ; //在父页面打开新页面 top . location . href ; //在顶层页面打开新页面 四、构建新的页面 1. 设置背景图片 在< head >对中创建< style >对,添加对象body{ }中包含背景图设置 background - image : url ( . . / img / b . jpg ) ; //设置背景图片,图片位于img文件中 background - size : auto ; //图片尺寸为原图尺寸 background - repeat : repeat ; //重复背景图,实现平铺 background - attachment

面向对象-贪吃蛇

北战南征 提交于 2020-02-13 13:43:43
初学面向对象比较难,基本每行都有注释,大家要耐心,细心。 < ! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title > 贪吃蛇 < / title > < style > . map { width : 400 px ; height : 400 px ; background - color : black ; position : relative ; } < / style > < / head > < body > < h2 id = "grade" > 0 < / h2 > < ! -- 记录分数 得起到事件监听的作用 -- > < div class = "map" > < / div > < script > // 根本性的 流程 先有数据准备数据 更新数据 再把数据渲染到视图上(数据驱动地图) { class Map { //Map地图类 rect 定义一个当前每个小格的宽。 constructor ( el , rect = 10 ) { //接收实例化对象gameMap的内容 this . el =

Java贪吃蛇感想

不想你离开。 提交于 2020-02-08 09:37:11
  暑假敲代码的效率真的不高呀,一个这种小游戏从最开始构思到最后实施代码,从最开始的Demo版本到最后的第四版本,花了一个星期了。本想再更新一个版本,加入双人对战模式,还想写个AI版,可是我估计按照现在我这种效率又要画上好多时间了。想想还是等以后有时间再写吧。。。虽然这游戏写起来看似不难,可是对现在的我来说,还是有点考验的。中途也遇到了不少问题,遇到了不少知识盲区。我发现设计游戏有时候比敲代码还要头疼,你从最开始基本没有什么头绪的状态到后来逐步开始思考游戏的玩法,怎么去实现,制定游戏规则,敲代码,调试代码,测试游戏,发现bug,寻找bug产生原因,调试,寻求方法修复,一步一步,还是需要思考挺多东西的。还有,程序写多了,代码到了一定数量级就会发现,程序的结构也是很重要的,各功能模块怎么抽象出来,怎么实现接口,怎么调用,怎么做到尽可能精简代码,可是值得考虑的。后来调整程序结构,把整个程序分到几个源文件中,又得重新思考怎么实现,数据怎么共享。怎么用一种数据结构来表示一种现实实体也是很重要的。比如我之前写过的一个2048小游戏,用什么来表示那一个个方块呢?那时候我还没用过Java画图函数,但是那段时间在学Java GUI ,所以我自然想到用一个Button来表示一个方块,其实现在我去重新写那个游戏,我自然不会用button了,因为用button表示方块时无法在移动中出现动画效果

java SE 学习第一个项目-贪吃蛇

耗尽温柔 提交于 2020-02-05 22:25:53
   经过一个学期以及寒假的学习,渐渐的对java这门语言有了一定的了解。java好在其面向对象的思想,以及封装、多态等一些与人解决问题相符合的思想,所以其才能一直排名靠前并且留存至今。在学习过程中,脑袋中慢慢的对javaSE形成了一个体系,以下是根据视频中我认为比较重要的学习一些模块以及我自己的学习顺序:   面向对象-异常处理-容器-IO处理-多线程-网络编程-GUI;   但这只是我做完贪吃蛇这个小游戏之后所获得的一些感悟所总结出来的,也许经过之后的学习以及项目经验的加深我会有另外的想法。   跟着视频完成贪吃蛇之后,我发现我学习Java的历程是:   一:懵懂无知,以为和学习C语言一样,只是完成一些小的算法题目,简单的排序以及简单的语法知识。这个过程是在学习到面向对象的时候,当时还在学校,因为课程比较多,无法拿出较多的时间来系统的学习Java,之后也只是为了应付考试将Java的视频看到了IO处理,却是跟本没有装进我的脑袋。   二:渐入佳境:进入了寒假又重新将之前的视频看了一下,视频中也是讲解知识点,以及根据每个知识点编出的一些小的练习题,在这个过程中慢慢对面向对象的思想有了一点思路,而且马士兵老师不断强调多态是什么,我好像能够稍微理解了一些。带着快要结束的激动心情结束了GUI这章的讲解。   三:可以将知识点串联起来了:最后这一个过程就是贪吃蛇项目过程中得到的一些感悟

贪吃蛇游戏-javascript

北慕城南 提交于 2020-02-01 10:17:09
贪吃蛇游戏-javascript 介绍 使用javascript的面向对象实现简单的贪吃蛇小游戏 分析 1. 蛇和食物都在一个容器中 2. 蛇碰到容器时游戏结束 3. 食物随机生成 4. 蛇吃食物后, 食物消失, 重新生成食物, 自身长度+1 5. 其中包含对象: 蛇, 食物, 游戏 对象分析 食物 属性 宽, 高, 位置, 颜色 方法 渲染食物(随即生成) 被吃掉时删除该食物 蛇 属性 高, 宽, 位置, 颜色, 运动方向, 身体 方法 渲染蛇 移动方法 - 蛇在移动时,包含吃的方法(当蛇头碰到食物, 删除食物, 蛇身长度+1, 重新生成食物) 游戏 属性 食物, 蛇, 容器 方法 蛇运动 (当蛇头碰到边界时, 游戏结束) 通过键盘控制移动 代码实现 index.html页面 < ! DOCTYPE html > < html > < head > < meta charset = "utf-8" / > < title > 贪吃蛇游戏 < / title > < link rel = "stylesheet" type = "text/css" href = "css/index.css" / > < / head > < body > < div id = "map" > < / div > < / body > < / html > < script type =

HTML游戏之贪吃蛇

荒凉一梦 提交于 2020-01-29 08:48:43
HTML游戏之贪吃蛇Snake,代码来自github作者 Steven Lambert < ! DOCTYPE html > < html > < head > < title > < / title > < style > html , body { height : 100 % ; margin : 0 ; } body { background : black ; display : flex ; align - items : center ; justify - content : center ; } canvas { border : 1 px solid white ; } < / style > < / head > < body > < canvas width = "400" height = "400" id = "game" > < / canvas > < script > var canvas = document . getElementById ( 'game' ) ; var context = canvas . getContext ( '2d' ) ; var grid = 16 ; var count = 0 ; var snake = { x : 160 , y : 160 , // snake velocity. moves one

python实现贪吃蛇小游戏

做~自己de王妃 提交于 2020-01-27 05:23:08
用python中的pygame模块来实现 面向过程编程 import random import pygame import sys from pygame . locals import * snake_speed = 8 #贪吃蛇的速度 windows_width = 800 windows_height = 600 #游戏窗口的大小 cell_size = 10 #贪吃蛇身体方块大小,注意身体大小必须能被窗口长宽整除 map_width = int ( windows_width / cell_size ) map_height = int ( windows_height / cell_size ) # 颜色定义 white = ( 255 , 255 , 255 ) black = ( 0 , 0 , 0 ) gray = ( 230 , 230 , 230 ) dark_gray = ( 40 , 40 , 40 ) DARKGreen = ( 0 , 155 , 0 ) Green = ( 0 , 255 , 0 ) Red = ( 255 , 0 , 0 ) blue = ( 0 , 0 , 255 ) dark_blue = ( 0 , 0 , 139 ) BG_COLOR = white #游戏背景颜色 # 定义方向 UP = 1 DOWN = 2 LEFT =

贪吃蛇,自动找苹果吃(动态链表实现)(未做到完全躲避蛇身)理论上分数可刷到无限大

家住魔仙堡 提交于 2020-01-23 03:15:32
通过动态链表实现 自定义蛇身长度,速度,地图大小,规则 蛇自动吃苹果时: 无视蛇吃自己死亡规则分数可刷到无限大(蛇可叠加),加上蛇吃自己平均分15分左右 测试版,待改善 以下是演示效果 动态链表贪吃蛇,实现自动追踪食物,分可刷到无限大 规则控制内容 # define LEN 5 //初始长度 int speed = 0 ; //初始速度 int autotexta = 1 ; //蛇吃后是否增长,1为增长 int autotextb = 0 ; //判定蛇吃自己开关,1为打开 /*刷测试模块(及游戏结束后立刻重新开始)*/ int texta = 1 ; //刷测试次数开关,1为开 int times = 100 ; //刷几次 int limit = 0 ; //得分最高限制,仅限于刷次数时有效,0为无限次 int pause = 0 ; //刷测试时结束暂停 /*自动控制模块*/ int autoall = 1 ; //自动控制总开关 int auto1 = 0 ; int auto2 = 0 ; 移动蛇模块 void movesnake ( ) { if ( _kbhit ( ) ) { fflush ( stdin ) ; ch = _getch ( ) ; } struct snake * lsd = tail ; if ( change ) { gotoxy ( lsd

贪吃蛇游戏(二)

左心房为你撑大大i 提交于 2020-01-19 01:19:57
贪吃蛇游戏(二) 转自大佬(…) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include<windows.h> //光标设计API #include<time.h> //食物随机 #include<conio.h> //按键监控 //音乐 #include<mmsystem.h> #pragma comment(lib,"Winmm.lib") //用户系统 //定义变量 char reg_name[30] = "", reg_pwd[10] = ""; char on_name[30], on_pwd[10]; //宏定义属性 //窗口属性 #define SNAKESIZE 100 //蛇的最大节数 #define MAPHEIGHT 40 //地图高度 #define MAPWIDTH 70 //地图宽度 void gotoxy(int x, int y);//1.辅助函数:光标移动 void drawMap();//2.画地图 void keyDown();//3.按键操作 void creatFood();//4.食物的产生 int snakeStatus();//5.蛇的状态:判断是否结束游戏 void