实现贪吃蛇程序的整个代码:

1.实现贪吃蛇程序的整个代码:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>课件_老师</title>

</head>

<body>

<canvas id="canvas"></canvas> <input type="button" value="开始游戏" id="play" >

<script>

window.onload = function()

{

var canvas = document.getElementById("canvas");

var context = canvas.getContext("2d");

var playG = document.getElementById("play");

canvas.width = 400;

canvas.height = 400;

canvas.style.border = "1px solid #ccc";

var foodx = 0; // 食物的x坐标

var foody = 0; // 食物的y坐标

var size = 8; // 每一块大小

var long = 10; // 初始蛇身长度

var x = y = 8; // 初始坐标

var dir = 2; // 0 左 1 上 2 右 3 下 方向

var times = 100; // 运动速度

var map = []; // 存储蛇身数据

var timer = null; // 定时器名称

var onOff=true;

playG.onclick = playGame;

function playGame()

{

if(onOff)

{

timer = setInterval(move,times);

food();

onOff=false;

};

}

function move()

{

/*运动方向;*/

switch(dir)

{

case 0: x = x - size; break;

case 1: y = y - size; break;

case 2: x = x + size; break;

case 3: y = y + size; break;

}

// 判断撞墙

if(x>=400 || x<0 || y<0 || y>=400)

{

alert("你挂掉了,原因是你撞墙了!");

window.location.reload();/*每次挂掉以后就重新开始,让游戏重新加载*/

}

// 判断撞自己

for(var i=0; i<map.length; i++)

{

if(x == map[i].x && y == map[i].y)

{

alert("你挂掉了,原因是你撞自己了!");

window.location.reload();

}

}

if(map.length > long)

{

var cl = map.shift();

context.clearRect(cl.x,cl.y,size,size);

}

map.push({‘x‘:x,‘y‘:y});

context.fillRect(x,y,size,size);

// 吃到食物

if(foodx*size ==x && foody*size == y)

{

long++;

times -=5;

clearInterval(timer);

onOff=true;

playGame();

}

}

document.onkeydown = function(ev)

{

var ev = ev || event;

var cod = ev.keyCode - 37;

switch(cod){

case 0: dir = 0; break;

case 1: dir = 1; break;

case 2: dir = 2; break;

case 3: dir = 3; break;

}

}

// 随机生成食物

function food()

{

foodx = Math.floor(Math.random()*50);

foody = Math.floor(Math.random()*50);

/*排除生成食物的时候,不让食物生成在自己身上;*/

for(var i=0; i<map.length; i++)

{

if( foodx*size == map[i].x && foody*size == map[i].y )

{

food();

return false;

}

}

context.save();

context.fillStyle = "#000";

context.fillRect(foodx*size,foody*size,size,size);

context.restore();

}

}

</script>

</body>

</html>

时间: 2024-08-22 07:17:19

实现贪吃蛇程序的整个代码:的相关文章

零基础HTML5游戏制作教程 第6章 贪吃蛇的实现及代码

第6章 贪吃蛇的实现及代码 讲了不少东西了,老讲理论的东西没劲呀,我们不如先试着做一个小游戏吧. 作为我们的第一个游戏,当然是越简单越好.<贪吃蛇>大家应该都玩过吧?我觉得我玩过的游戏中,她应该算是最简单的一个了.好,就让我们从做<贪吃蛇>开始,享受自己做游戏的乐趣吧. 由于这个游戏是本教程的第一个实际的游戏例子,我会讲的比较详细一些.请大家重点注意编程的思路和实现的方法,这些远比代码本身要重要. 一,蛇身的制作 蛇身由一系列方格组成,初始我们设定蛇身的长度是4,以后每吃到一次食物

贪吃蛇程序

// ConsoleApplication3.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include<iostream>#include<windows.h>#include<time.h>#include<stdlib.h>#include<conio.h>#define N 21using namespace std;void gotoxy(int x, int y)//位置函

俄罗斯方块和贪吃蛇游戏软件:C语言应用初始感受

C语言课程设以一节课,老师提供了一个C语言的飞俄罗斯方块让我们感受,我们所学的C语言课程,主要是各种语句的练习,这次是用我们所学过的知识来感受一个实际的系统. 首先安装c-free,然后是将代码贴进去运行 界面虽然有点简单,但这确实使用C语言做出来的游戏. 分析一下程序,感觉没有太复杂的,就是上学期学习的简单语句的组合,但是用的非常好.首先看看用到了几种语句: 1.首先是在屏幕上显示的语句printf, 2.另外一个就是多条件判断switch--case 应用方法 switch(tetris->

Java小游戏贪吃蛇

package snake; import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.Arrays;import java.util.Itera

C语言实现贪吃蛇之全靠数组篇

贪吃蛇游戏的设计思路很简单,相信有过一些编程经验的同学都不至于束手无策,可在我刚刚接触编程时,这个小小的贪吃蛇游戏可是让我费了不少脑筋,如今学习编程已经快一年了,前几天又看了一遍K&R,打算写几个贪吃蛇程序巩固一下知识.我打算写若干篇贪吃蛇的博客,从简单粗糙的开始,不断改良,希望能给初学C语言的同学一点借鉴. 话不多说,我们现在就开始吧,首先我们整理一下思路.首先我们要明确,既然贪吃蛇游戏理论上可以无限继续下去,那么游戏主体一定就是一个循环.蛇的移动就在这个循环中完成.如果是初学编程的话,可能会

如何用Python写一个贪吃蛇AI

前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD,它把矩形中出现的食物吃了个遍, 然后华丽丽地把整个矩形填满,真心是看得赏心悦目.作为一个CSer, 第一个想到的是,这东西是写程序实现的(因为,一般人干不出这事. 果断是要让程序来干的)第二个想到的是,写程序该如何实现,该用什么算法? 既然开始想了,就开始做.因为Talk is cheap,要sho

Pascal小游戏 贪吃蛇

一段未完成的Pascal贪吃蛇 说这段代码未完成其实是没有源代码格式化,FP中一行最多只有255字符宽. uses crt; const screenwidth=50; screenheight=24; wallchar='#'; snakechar='*'; ; type point=record x,y:integer; end; var snake:array [0..500] of point; map:array [0..screenwidth,0..screenheight] of

Devc++贪吃蛇

使用Devc++写的一个简单版贪吃蛇程序,不过,在未配置之前,是不包含图形库的,所以需要自己配置新的环境 -------------------------------------------------------------------分割线---------------------------------------------------------------------------------- #include<stdio.h>#include<graphics.h>

贪吃蛇和俄罗斯方块软件

C语言课程设的第一节课,老师提供了一个C语言的飞俄罗斯方块让我们感受,我们所学的C语言课程,主要是各种语句的练习,这次是用我们所学过的知识来感受一个实际的系统.我感觉特别新奇,也对c语言这门课程产生了很大的兴趣. 想要做c语言文件的第一步就是安装C-FREE软件,然后就是将源代码写入.虽然界面简陋,而且操作还不流畅.但是已经体现出了他的奥妙之所在. 分析一下程序,感觉没有太复杂的,就是上学期学习的简单语句的组合,但是用的非常好.首先看看用到了几种语句: 1.首先是在屏幕上显示的语句printf,