some refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2017-04-07 01:26:11 +03:00
parent 2ab556118f
commit a76b97a271

View File

@ -10,6 +10,7 @@
</style> </style>
<script> <script>
//---------------------------------------------------------------------
// XXX automate clearing of handlers... // XXX automate clearing of handlers...
function makeEvent(handler_attr){ function makeEvent(handler_attr){
@ -93,14 +94,10 @@ var Snake = {
// head... // head...
var direction = cell.direction var direction = cell.direction
var next = var next =
direction == 'n' ? direction == 'n' ? (i < w ? l - w + i : i - w)
(i < w ? l - w + i : i - w) : direction == 's' ? (i > (l-w) ? i - (l-w) : i + w)
: direction == 's' ? : direction == 'e' ? ((i+1)%w == 0 ? i - (w-1) : i + 1)
(i > (l-w) ? i - (l-w) : i + w) : direction == 'w' ? (i%w == 0 ? i + (w-1) : i - 1)
: direction == 'e' ?
((i+1)%w == 0 ? i - (w-1) : i + 1)
: direction == 'w' ?
(i%w == 0 ? i + (w-1) : i - 1)
: null : null
if(next != null){ if(next != null){
@ -267,19 +264,23 @@ var Snake = {
} }
//---------------------------------------------------------------------
var HANDLER_SET = false var HANDLER_SET = false
var KEY_CONFIG = { var KEY_CONFIG = {
ArrowLeft: 'left', ArrowLeft: ['left'],
ArrowRight: 'right', ArrowRight: ['right'],
} }
function kbHandler(event){ function kbHandler(event){
var action = KEY_CONFIG[event.key] var action = KEY_CONFIG[event.key]
action action
&& action in Snake && action in Snake
&& Snake[action]() && Snake[action[0]].apply(Snake, action.slice(1))
} }
//---------------------------------------------------------------------
function setup(){ function setup(){
Snake Snake
.setup('.snake') .setup('.snake')
@ -309,6 +310,8 @@ function setup(){
} }
//---------------------------------------------------------------------
function test(game){ function test(game){
return Snake return Snake
.setup(game || '.snake') .setup(game || '.snake')
@ -327,6 +330,8 @@ function test(game){
.start() .start()
} }
//---------------------------------------------------------------------
</script> </script>
<head> <title>Simple Snake</title> </head> <head> <title>Simple Snake</title> </head>