كود لعبة الثعبان ( رائعة )الرمز:<html>
<head>
<script type="text/javascript">
/****************************************************
* Cross Browser Snake game- By Brady Mulhollem-
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]*This game is available at
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]****************************************************/
function cbsnake(){
//Pixels to move at once
this.jump = 8;
//Size of snake. Make this one less than jump. Doesn't have to be,but adds good effect
this.sos = 7;
//Size of board
//DANGER!!! this.sofb must be EVENLY dividable by this.jump DANGER!!!!
this.sofb = 400;
//Set things up
this.daway = this.sofb - this.jump;
this.correct = new Array();
this.correct[0] = 0;
while(this.correct[this.correct.length -1] != this.daway){
this.correct[this.correct.length] = this.correct[this.correct.length -1]+this.jump
}
this.zero = 0;
var
gameboard = ' <div class="board" id="board"> <div id="i2">
This is a simple game of Snake. Select a speed then use your arrow keys
to attempt and eat the apple(red block), but watch out for the walls
and yourself. At any time you can pause the game by pressing the space
bar.This game is available at <a
href="
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]Tech 101</a> and <a
href="
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]Drive</a> </div> </div><div class="board"
id="score"> <span id="cscore">0</span> <span
id="buttons"> <button type="button" id="slow"
onClick="snake.slow()">Slow</button> <button type="button"
id="medium" onClick="snake.medium()">Medium</button>
<button type="button" id="fast"
onClick="snake.fast()">Fast</button>
</span></div>';
document.write(gameboard);
}
cbsnake.prototype.setup = function(setspeed){
var thisObj = this;
//Score...
this.score = 0;
//Snake Direction
this.sdir = 'none';
this.sdirb = 'none';
this.sdirp = 'none';
//Snake arrays
this.ctop = new Array();
this.cleft = new Array();
//Top of snake class
this.ctop[0] = 200;
this.ctop[1] = -8;
//Left of Snake class
this.cleft[0] = 200;
this.cleft[1] = -8;
//current top of apple
this.atop = 0;
//current left of apple
this.aleft = 0;
//Milliseconds between move
this.speed = setspeed;
document.getElementById('board').innerHTML
= '<div id="apple"></div><div id="snake0"
class="snake"></div><div id="snake1"
class="snake"></div>';
this.moveapple();
this.stopgame = false;
setTimeout(function(){ thisObj.msnake() },this.speed);
document.onkeydown = function(e){ return thisObj.snakedir(e); };
}
cbsnake.prototype.slow = function(){
this.setup(100);
this.buttons('true');
document.getElementById('slow').blur();
}
cbsnake.prototype.medium = function(){
this.setup(70);
this.buttons('true');
document.getElementById('medium').blur();
}
cbsnake.prototype.fast = function(){
this.setup(30);
this.buttons('true');
document.getElementById('fast').blur();
}
cbsnake.prototype.rannum = function(num1,num2){
num1 = parseInt(num1);
num2 = parseInt(num2);
var generator = Math.random()*(Math.abs(num2-num1));
generator = Math.round(num1+generator);
return generator;
}
cbsnake.prototype.moveapple = function(){
var usethis = false;
while(!usethis){
this.atop = this.correct[this.rannum(0,this.correct.length-1)];
this.aleft = this.correct[this.rannum(0,this.correct.length-1)];
if(this.numInArray(this.ctop,this.cleft,this.atop,this.aleft) == 0){
usethis = true;
}
}
document.getElementById('apple').style.top = this.atop+"px";
document.getElementById('apple').style.left = this.aleft+"px";
}
cbsnake.prototype.snakedir = function(e){
if(!e){
//IE...
e = window.event;
}
switch(e.keyCode){
case 38:
if(this.sdir != 'down' && this.sdirp != 'down'){
this.sdirb = 'up';
this.sdirp = 'up';
}
break;
case 40:
if(this.sdir != 'up' && this.sdirp != 'up'){
this.sdirb = 'down';
this.sdirp = 'down';
}
break;
case 37:
if(this.sdir != 'right' && this.sdirp != 'right'){
this.sdirb = 'left';
this.sdirp = 'left';
}
break;
case 39:
if(this.sdir != 'left' && this.sdirp != 'left'){
this.sdirb = 'right';
this.sdirp = 'right';
}
break;
case 32:
if(this.sdir == 'none' && this.sdirp != 'none'){
this.sdirb = this.sdirp;
this.sdirp = 'none';
}
else{
this.sdirp = this.sdir;
this.sdirb = 'none';
}
break;
}
return this.stopgame;
}
cbsnake.prototype.msnake = function(){
if(this.stopgame === false){
if(this.sdir != 'none'){
this.moveall();
}
var thisObj = this;
switch(this.sdir){
case 'up':
this.ctop[0] = this.ctop[0] - this.jump;
document.getElementById('snake0').style.top = this.ctop[0]+"px";
if((this.ctop[0] == this.zero && this.sdirb == 'up') || this.ctop[0] < this.zero){
this.gover();
}
break;
case 'down':
this.ctop[0] = this.ctop[0] + this.jump;
document.getElementById('snake0').style.top = this.ctop[0]+"px";
if((this.ctop[0] == this.daway && this.sdirb == 'down') || this.ctop[0] > this.daway){
this.gover();
}
break;
case 'left':
this.cleft[0] = this.cleft[0] - this.jump;
document.getElementById('snake0').style.left = this.cleft[0]+"px";
if((this.cleft[0] == this.zero && this.sdirb == 'left') || this.cleft[0] < this.zero){
this.gover();
}
break;
case 'right':
this.cleft[0] = this.cleft[0] + this.jump;
document.getElementById('snake0').style.left = this.cleft[0]+"px";
if((this.cleft[0] == this.daway && this.sdirb == 'right') || this.cleft[0] > this.daway){
this.gover();
}
break;
}
if(this.sdir != 'none'){
this.hitself();
this.happle();
}
this.sdir = this.sdirb
setTimeout(function(){ thisObj.msnake() },this.speed);
}
}
cbsnake.prototype.gover = function(){
if(!this.stopgame){
this.stopgame = true;
var inner = document.getElementById('board').innerHTML;
document.getElementById('board').innerHTML
= inner+'<div id="notice">Game Over! Your Score was
'+this.score+'</div><div id="i2">This is a simple game of
Snake. Select a speed then use your arrow keys to attempt and eat the
apple(red block), but watch out for the walls and yourself. At any time
you can pause the game by pressing the space bar.This game is available
at <a
href="
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]Tech 101</a> and <a
href="
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]Drive</a></div>';
document.getElementById('apple').style.backgroundColor = '#D7BEBE';
for(i=0;i<this.cleft.length;i++){
document.getElementById('snake'+i).style.backgroundColor = '#BEBEBE';
}
this.buttons('');
}
}
cbsnake.prototype.happle = function(){
if(this.atop == this.ctop[0] && this.aleft == this.cleft[0]){
//HIT!!!
this.score++;
document.getElementById('cscore').innerHTML = this.score;
this.moveapple();
this.addsnake();
}
}
cbsnake.prototype.addsnake = function(){
var newsnake = document.createElement('div');
var newid = 'snake'+this.cleft.length;
newsnake.setAttribute('id',newid);
//this crap is for IE. I would rather add the class name.
newsnake.style.position = 'absolute';
newsnake.style.top = '-10px';
newsnake.style.left = '-10px';
newsnake.style.display = 'none';
newsnake.style.backgroundColor = 'black';
newsnake.style.height = '7px';
newsnake.style.width = '7px';
newsnake.style.overflow = 'hidden';
document.getElementById('board').appendChild(newsnake);
this.cleft[this.cleft.length] = -10;
this.ctop[this.ctop.length] = -10;
}
cbsnake.prototype.moveall = function(){
var i = this.ctop.length - 1;
while(i != 0){
document.getElementById('snake'+i).style.top = document.getElementById('snake'+(i-1)).style.top;
document.getElementById('snake'+i).style.left = document.getElementById('snake'+(i-1)).style.left;
document.getElementById('snake'+i).style.display = 'block';
this.ctop[i] = this.ctop[i-1];
this.cleft[i] = this.cleft[i-1];
i = i - 1;
}
}
cbsnake.prototype.numInArray = function(array,array2,value,value2){
var n = 0;
for (var i=0; i < array.length; i++) {
if (array[i] === value && array2[i] === value2) {
n++;
}
}
return n;
}
cbsnake.prototype.hitself = function(){
if(this.numInArray(this.ctop,this.cleft,this.ctop[0],this.cleft[0]) > 1){
this.gover();
}
}
cbsnake.prototype.buttons = function(setto){
document.getElementById('slow').disabled = setto;
document.getElementById('medium').disabled = setto;
document.getElementById('fast').disabled = setto;
}
</script>
<style type="text/css">
.board{
width: 399px;
background-color: lightgrey;
border: 1px solid gray;
position: relative;
margin-left: 0;
margin-top: 0;
}
#board{
height: 399px;
border-bottom: 0px;
}
#apple{
position: absolute;
background-color: red;
height: 7px;
width: 7px;
overflow: hidden;
}
.snake{
position: absolute;
top: 200px;
left: 200px;
background-color: black;
height: 7px;
width: 7px;
overflow: hidden;
}
.snake2{
position: absolute;
top: -10px;
left: -10px;
background-color: black;
height: 7px;
width: 7px;
overflow: hidden;
}
#score{
height: 50px;
margin-top: 0px;
}
#cscore{
color: black;
padding-left: 10px;
float: left;
width: 25%;
font-size: xx-large;
}
#buttons{
float: right;
width: 50%;
text-align: right;
padding-top: 10px;
}
#notice{
position: absolute;
top: 1em;
left: 1em;
right: 1em;
text-align: center;
font-size: 150%;
}
#i2{
position: absolute;
bottom: 1em;
left: 1em;
right: 1em;
text-align: center;
font-size: 95%;
}
</style>
</head>
<body>
<script type="text/javascript">
var snake = new cbsnake();
</script>
</body>
</html>