@@ -40,6 +40,11 @@ function draw_piece(y, x)
40
40
function draw_alea_piece ( )
41
41
{
42
42
var alea = get_alea ( 0 , 7 ) ;
43
+ if ( check_end_of_game ( ) == 1 )
44
+ {
45
+ game = 0 ;
46
+ return ;
47
+ }
43
48
if ( alea == 1 )
44
49
{
45
50
draw_piece ( 0 , 0 + 4 ) ;
@@ -147,30 +152,6 @@ function get_the_color(nb)
147
152
return ( "rgb(149, 165, 166),rgb(127, 140, 141)" ) ;
148
153
}
149
154
150
- // function actu_map()
151
- // {
152
- // var i = 21;
153
- // var i2 = 0;
154
- // var color;
155
- // var map_elem = document.getElementById('inner_map');
156
- // map_elem.innerHTML = "";
157
- // while (i >= 0)
158
- // {
159
- // i2 = 0;
160
- // while (i2 <= 9)
161
- // {
162
- // color = get_the_color(map[i][i2]);
163
- // if (map[i][i2] == (active_piece - 1))
164
- // map_elem.innerHTML += "<div class=\"piece " + (active_piece - 1) + "\" style=\"background-image:radial-gradient(circle at top right," + color + ");top:" + (i * 50) + "px;left:" + (i2 * 50) + "px;\"></div>";
165
- // else if (map[i][i2] != 0)
166
- // map_elem.innerHTML += "<div class=\"piece " + map[i][i2] + "\" style=\"background-image:radial-gradient(circle at top right," + color + ");top:" + (i * 50) + "px;left:" + (i2 * 50) + "px;\"></div>";
167
- // i2++;
168
- // }
169
- // i--;
170
- // }
171
-
172
- // }
173
-
174
155
function actu_map ( )
175
156
{
176
157
var i = 21 ;
@@ -319,7 +300,6 @@ function check_end_of_turn()
319
300
function move_fixed_blocks ( nb_deleted_lines , frst_line_deleted )
320
301
{
321
302
var fixed_blocks = document . getElementById ( 'fixed_block' ) ;
322
- var active_blocks = document . getElementById ( 'inner_map' ) ;
323
303
var i = 0 ;
324
304
var tmp = 0 ;
325
305
var i2 = 0 ;
@@ -336,12 +316,17 @@ function move_fixed_blocks(nb_deleted_lines, frst_line_deleted)
336
316
i ++ ;
337
317
}
338
318
i = 0 ;
319
+ var active_blocks = document . getElementById ( 'inner_map' ) ;
320
+ console . log ( active_blocks ) ;
339
321
while ( i < active_blocks . childNodes . length )
340
322
{
341
- tmp = map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] ;
342
- map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] = 0 ;
343
- active_blocks . childNodes [ i ] . style . top = parseInt ( active_blocks . childNodes [ i ] . style . top ) + ( nb_deleted_lines * 25 ) + "px" ;
344
- map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] = tmp ;
323
+ if ( active_blocks . childNodes [ i ] != undefined )
324
+ {
325
+ tmp = map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] ;
326
+ map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] = 0 ;
327
+ active_blocks . childNodes [ i ] . style . top = parseInt ( active_blocks . childNodes [ i ] . style . top ) + ( nb_deleted_lines * 25 ) + "px" ;
328
+ map [ ( parseInt ( active_blocks . childNodes [ i ] . style . top ) / 25 ) ] [ ( parseInt ( active_blocks . childNodes [ i ] . style . left ) / 25 ) ] = tmp ;
329
+ }
345
330
i ++ ;
346
331
}
347
332
}
@@ -429,6 +414,7 @@ function restart()
429
414
}
430
415
score = 0 ;
431
416
active_piece = 1 ;
417
+ game = 1 ;
432
418
draw_alea_piece ( ) ;
433
419
actu_map ( ) ;
434
420
}
@@ -439,38 +425,59 @@ function actu_score()
439
425
score_elem . innerHTML = score ;
440
426
}
441
427
428
+ function check_end_of_game ( )
429
+ {
430
+ var i = 0 ;
431
+ var fixed_block = document . getElementById ( 'fixed_block' ) ;
432
+ while ( i < 10 )
433
+ {
434
+ if ( map [ 0 ] [ i ] != 0 )
435
+ {
436
+ fixed_block . innerHTML += "<div id=\"game_over\"><p>Game over</p></div>" ;
437
+ return ( 1 ) ;
438
+ }
439
+ i ++ ;
440
+ }
441
+ return ( 0 ) ;
442
+ }
443
+
442
444
function run ( )
443
445
{
444
- if ( check_end_of_turn ( ) == 0 )
445
- go_down ( ) ;
446
- if ( check_end_of_turn ( ) == 1 )
446
+ if ( game == 1 )
447
447
{
448
- check_full_line ( ) ;
449
- draw_alea_piece ( ) ;
450
- turn ++ ;
448
+ if ( check_end_of_turn ( ) == 0 )
449
+ go_down ( ) ;
450
+ if ( check_end_of_turn ( ) == 1 )
451
+ {
452
+ check_full_line ( ) ;
453
+ draw_alea_piece ( ) ;
454
+ }
455
+ actu_map ( ) ;
456
+ actu_score ( ) ;
451
457
}
452
- actu_map ( ) ;
453
- actu_score ( ) ;
454
458
}
455
459
456
460
window . addEventListener ( "keydown" , function ( e )
457
461
{
458
- if ( e . keyCode == 37 )
459
- move_left ( ) ;
460
- else if ( e . keyCode == 38 )
461
- rotate ( ) ;
462
- else if ( e . keyCode == 39 )
463
- move_right ( ) ;
464
- else if ( e . keyCode == 40 && check_end_of_turn ( ) == 0 )
465
- move_bot ( ) ;
466
- actu_map ( ) ;
462
+ if ( game == 1 )
463
+ {
464
+ if ( e . keyCode == 37 )
465
+ move_left ( ) ;
466
+ else if ( e . keyCode == 38 )
467
+ rotate ( ) ;
468
+ else if ( e . keyCode == 39 )
469
+ move_right ( ) ;
470
+ else if ( e . keyCode == 40 && check_end_of_turn ( ) == 0 )
471
+ move_bot ( ) ;
472
+ actu_map ( ) ;
473
+ }
467
474
} , true ) ;
468
475
469
476
var active_piece = 1 ;
470
477
var piece_type ;
471
478
var score = 0 ;
472
479
var map = new Array ( 22 ) ;
473
- var turn = 1 ;
480
+ var game = 1 ;
474
481
for ( var i = 0 ; i < 22 ; i ++ )
475
482
{
476
483
map [ i ] = new Array ( 10 ) ;
@@ -480,4 +487,5 @@ for (var i = 0; i < 22; i++)
480
487
}
481
488
}
482
489
draw_alea_piece ( ) ;
490
+ actu_map ( ) ;
483
491
setInterval ( function ( ) { run ( ) ; } , 500 ) ;
0 commit comments