mirror of
https://github.com/flynx/Slang.git
synced 2025-10-29 10:40:07 +00:00
refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
8e0b6e244f
commit
d3effa4b4a
@ -91,19 +91,10 @@ var Snake = {
|
|||||||
|
|
||||||
// head...
|
// head...
|
||||||
var direction = cell.direction
|
var direction = cell.direction
|
||||||
var next =
|
if(directions.indexOf(direction) >= 0){
|
||||||
direction == 'n' ? (i < w ? l - w + i : i - w)
|
|
||||||
// XXX BUG: this returns 256 when at x = 0...
|
|
||||||
: direction == 's' ? (i > (l-w-1) ? i - (l-w) : i + w)
|
|
||||||
: direction == 'e' ? ((i+1)%w == 0 ? i - (w-1) : i + 1)
|
|
||||||
: direction == 'w' ? (i%w == 0 ? i + (w-1) : i - 1)
|
|
||||||
: null
|
|
||||||
if(next != null){
|
|
||||||
next = that._cells[next]
|
|
||||||
|
|
||||||
// turn...
|
// turn...
|
||||||
var turn = that.players[color] || ''
|
if(that.players[color] != ''){
|
||||||
if(turn != ''){
|
var turn = that.players[color] || ''
|
||||||
var j = turn == 'left' ? directions.indexOf(direction) - 1
|
var j = turn == 'left' ? directions.indexOf(direction) - 1
|
||||||
: directions.indexOf(direction) + 1
|
: directions.indexOf(direction) + 1
|
||||||
j = j < 0 ? 3 : j
|
j = j < 0 ? 3 : j
|
||||||
@ -111,6 +102,17 @@ var Snake = {
|
|||||||
that.players[color] = ''
|
that.players[color] = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// next cell index...
|
||||||
|
var next =
|
||||||
|
direction == 'n' ?
|
||||||
|
(i < w ? l - w + i : i - w)
|
||||||
|
: direction == 's' ?
|
||||||
|
(i > (l-w-1) ? i - (l-w) : i + w)
|
||||||
|
: direction == 'e' ?
|
||||||
|
((i+1)%w == 0 ? i - (w-1) : i + 1)
|
||||||
|
: (i%w == 0 ? i + (w-1) : i - 1)
|
||||||
|
next = that._cells[next]
|
||||||
|
|
||||||
var age = cell.age
|
var age = cell.age
|
||||||
var move = false
|
var move = false
|
||||||
|
|
||||||
@ -254,11 +256,12 @@ var Snake = {
|
|||||||
|
|
||||||
// levels...
|
// levels...
|
||||||
basicLevel: function(){
|
basicLevel: function(){
|
||||||
|
var a = this.field_size.width/8
|
||||||
return this
|
return this
|
||||||
.wall({x:3, y:10}, 's', 11)
|
.wall({x:a*3, y:a*4}, 's', a*6)
|
||||||
.wall({x:3, y:5}, 'e', 5)
|
.wall({x:a*3, y:a*2}, 'e', a*2)
|
||||||
.wall({x:3+5, y:5}, 's', 5)
|
.wall({x:a*5, y:a*2}, 's', a*2)
|
||||||
.wall({x:3+5, y:5+4}, 'e', 12) },
|
.wall({x:a*5, y:a*4}, 'e', a*6) },
|
||||||
randomLevel: function(){
|
randomLevel: function(){
|
||||||
return this
|
return this
|
||||||
.wall(null, 's', 11)
|
.wall(null, 's', 11)
|
||||||
@ -280,7 +283,7 @@ var KEY_CONFIG = {
|
|||||||
Right: ['right'],
|
Right: ['right'],
|
||||||
}
|
}
|
||||||
function kbHandler(event){
|
function kbHandler(event){
|
||||||
console.log('KEY:', event.key)
|
//console.log('KEY:', event.key)
|
||||||
var action = KEY_CONFIG[event.key]
|
var action = KEY_CONFIG[event.key]
|
||||||
action
|
action
|
||||||
&& action[0] in Snake
|
&& action[0] in Snake
|
||||||
@ -288,6 +291,13 @@ function kbHandler(event){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
function filed_generator(w){
|
||||||
|
// XXX
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
function setup(){
|
function setup(){
|
||||||
@ -306,10 +316,14 @@ function setup(){
|
|||||||
.apple()
|
.apple()
|
||||||
|
|
||||||
// XXX do something better with direction...
|
// XXX do something better with direction...
|
||||||
.snakeKilled(function(color){ this.snake(color, null, 's', 3) })
|
.snakeKilled(function(color){
|
||||||
|
this
|
||||||
|
.pause()
|
||||||
|
.snake(color, null, 's', 3)
|
||||||
|
})
|
||||||
.snake('blue', null, 's', 3)
|
.snake('blue', null, 's', 3)
|
||||||
|
|
||||||
.start(300)
|
.start(150)
|
||||||
|
|
||||||
// setup kb handler (only once)...
|
// setup kb handler (only once)...
|
||||||
if(!HANDLER_SET){
|
if(!HANDLER_SET){
|
||||||
@ -327,6 +341,7 @@ function test(game){
|
|||||||
|
|
||||||
// XXX BUG: this will break as soon as it reaches the corner...
|
// XXX BUG: this will break as soon as it reaches the corner...
|
||||||
.snake('blue', {x:0, y:0}, 's', 5)
|
.snake('blue', {x:0, y:0}, 's', 5)
|
||||||
|
.snake('blue', {x:Snake.field_size.width-1, y:0}, 's', 5)
|
||||||
|
|
||||||
// hit an apple...
|
// hit an apple...
|
||||||
.snake('green', {x:5, y:3}, 's', 5)
|
.snake('green', {x:5, y:3}, 's', 5)
|
||||||
@ -348,41 +363,77 @@ function test(game){
|
|||||||
<body onload="setup()">
|
<body onload="setup()">
|
||||||
|
|
||||||
<table class="snake field" cellspacing="0">
|
<table class="snake field" cellspacing="0">
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
<tr> <td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td>
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
<td></td><td></td><td></td><td></td> <td></td><td></td><td></td><td></td> </tr>
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
|
<tr> <td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/>
|
||||||
|
<td/><td/><td/><td/><td/><td/><td/><td/> <td/><td/><td/><td/><td/><td/><td/><td/> </tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user