상위 문서로: ProjectD
1. 송치완 ¶
발퀄주의
<html> <head> <title>URL Hunter</title> <script> var mapSize=50; var hunter=25; var map=new Array(mapSize); var mopNum=15; var time=0; function mapInitialize(){ for (var i=0; i<mapSize; i++) { map[i] = '-'; } i=0; map[hunter] = 'O' while (i<15) { var temp=Math.floor(Math.random()*50); if(map[temp] != 'a' && temp != 25){ map[temp] = 'a'; i++; } } } function mapDraw(){ location.href="./URLHunter.html#|||" + map.join('') + "|||"; } function timeCheck(){ setInterval("time+=1", 1000); } function gamePlay(){ switch(event.keyCode) { case 37: // move left if (hunter != 0) { if (map[hunter] == 'O') { if (map[hunter-1] == 'a') { map[hunter-1] = '@'; map[hunter] = '-'; hunter--; break; } else { map[hunter-1] = 'O'; map[hunter] = '-'; hunter--; break; } } else { if (map[hunter-1] == 'a') { map[hunter-1] = '@'; map[hunter] = 'a'; hunter--; break; } else { map[hunter-1] = 'O'; map[hunter] = 'a'; hunter--; break; } } } else break; case 39: //move right if (hunter != mapSize-1) { if (map[hunter] == 'O') { if (map[hunter+1] == 'a') { map[hunter+1] = '@'; map[hunter] = '-'; hunter++; break; } else { map[hunter+1] = 'O'; map[hunter] = '-'; hunter++; break; } } else { if (map[hunter+1] == 'a') { map[hunter+1] = '@'; map[hunter] = 'a'; hunter++; break; } else { map[hunter+1] = 'O'; map[hunter] = 'a'; hunter++; break; } } } else break; case 32: //kill if (map[hunter] == '@') { map[hunter] = 'O'; mopNum--; break; } else break; } mapDraw(); } function gameFin(){ if (mopNum==0) alert("you spent " + time + " seconds"); } </script> </head> <body onload="mapInitialize(); mapDraw(); timeCheck();" onkeydown="gamePlay(); gameFin();"> Move with Arrow Key and press Space Bar to kill <br>tic-tok </body> </html>
버그: 게임이 끝나도 시간이 안 멈춤
2. 최다인 ¶
제껀 움직입니다!!
<html> <meta charset = "utf-8"> <head> <title>URL Hunter by MeYou</title> <script> var lineLength = 40; var hunterLoca = 20; var enemyNumber = 10; var URLline = new Array(lineLength); var time = 0; function initializeURL () { for(var i = 0; i < lineLength; i++){ URLline[i] = '-'; } URLline[hunterLoca] = 'O'; allocEnemy(); printMap(); } function allocEnemy () { for(var i = 0; i < enemyNumber; i++){ var enemyLoca = Math.floor(Math.random()*lineLength); if(enemyLoca == hunterLoca || URLline[enemyLoca] == 'a'){ i--; continue; } URLline[enemyLoca] = 'a'; } } function checkTime () { setInterval("time++",1000); setInterval(function e () {moveEnemy();},333); } function printMap () { location.href = "./URLHunter.html#|||" + URLline.join('') + "|||"; } function moveEnemy () { for(var i = 0; i < lineLength; i++){ var temp = Math.floor(Math.random()*3) - 1; if(URLline[i] == 'a'){ if(URLline[i + temp] == '-'){ URLline[i] = '-'; URLline[i + temp] = 'a'; } else if(URLline[i + temp] == 'O'){ URLline[i] = '-'; URLline[i + temp] = '@'; } } else if(URLline[i] == '@'){ if(URLline[i + temp] == '-'){ URLline[i] = 'O'; URLline[i + temp] = 'a'; } } } printMap(); } function keyboardInput() { switch(event.keyCode){ case 37: //left if(hunterLoca == 0) break; if(URLline[hunterLoca] == '@'){ URLline[hunterLoca] = 'a'; if(URLline[hunterLoca - 1] == '-') URLline[hunterLoca - 1] = 'O'; else if(URLline[hunterLoca - 1] == 'a') URLline[hunterLoca - 1] = '@'; } else if(URLline[hunterLoca] == 'O'){ URLline[hunterLoca] = '-'; if(URLline[hunterLoca - 1] == '-') URLline[hunterLoca - 1] = 'O'; else if(URLline[hunterLoca - 1] == 'a') URLline[hunterLoca - 1] = '@'; } hunterLoca--; break; case 39: //right if(hunterLoca == lineLength - 1) break; if(URLline[hunterLoca] == '@'){ URLline[hunterLoca] = 'a'; if(URLline[hunterLoca + 1] == '-') URLline[hunterLoca + 1] = 'O'; else if(URLline[hunterLoca + 1] == 'a') URLline[hunterLoca + 1] = '@'; } else if(URLline[hunterLoca] == 'O'){ URLline[hunterLoca] = '-'; if(URLline[hunterLoca + 1] == '-') URLline[hunterLoca + 1] = 'O'; else if(URLline[hunterLoca + 1] == 'a') URLline[hunterLoca + 1] = '@'; } hunterLoca++; break; case 32: //space if(URLline[hunterLoca] == '@'){ URLline[hunterLoca] = 'O'; enemyNumber--; } break; } printMap(); } function checkGameEnd() { if(enemyNumber == 0) alert("게임 클리어! [걸린 시간 : " + time + "초]"); } </script> </head> <body onload = "initializeURL(); checkTime();" onkeydown = "keyboardInput();" onkeyup = "checkGameEnd();"> URL Hunter </body> </html>
3. 이원준 ¶
<!DOCTYPE html> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> "use strict"; var maps = new Array(40), enemy = { remind : 10 }, hunter_position = 20, start_time = undefined, current_time = undefined; enemy.position = new Array(enemy.remind); enemy.move = function() { var temp; for( var i = 0; i < enemy.position.length; i++ ) { temp = Math.floor(Math.random()*3)-1; if( enemy.position[i] != null && maps[enemy.position[i]+temp] == "-" ) { enemy.position[i] += temp; }else{ continue; } } } function init_map() { var index = 0; start_time = new Date(); for( var i = 0; i < enemy.position.length; i++ ) { enemy.position[i] = null; } while( enemy.position.indexOf(null) != -1 ) { var temp = Math.floor(Math.random()*40); if( temp != 20 && enemy.position.indexOf(temp) == -1 ) { enemy.position[index++] = temp; } } print_map(); } function update_map() { for( var i = 0; i < maps.length; i++ ) { maps[i] = "-"; } for( i = 0; i < enemy.position.length; i++ ) { maps[enemy.position[i]] = "a"; } if( maps[hunter_position] == "a" ) { maps[hunter_position] = "@"; }else{ maps[hunter_position] = "O"; } } function print_map() { current_time = new Date(); update_map(); location.href = "./url_hunter.html#||"+maps.join("")+"||time:"+((current_time.getTime() - start_time.getTime())/1000)+" Sec"; check_end(); } function move_hunter(direction) { if( direction == "left" && hunter_position > 0 ){ hunter_position--; } if( direction == "right" && hunter_position < 39 ){ hunter_position++; } } function key_input() { switch(event.keyCode) { case 37: //Left move_hunter("left"); print_map(); break; case 39: //Right move_hunter("right"); print_map(); break; case 32: //Space if( maps[hunter_position] == "@" ) { var temp = enemy.position.indexOf(hunter_position); enemy.position[temp] = null; } print_map(); break; default: break; } } function check_end() { if( enemy.position.every(function(element, index, array){ return (element == null); }) ) { location.href = "./url_hunter.html#||"+maps.join("")+"||time:"+((current_time.getTime() - start_time.getTime())/1000)+" Sec"; clearInterval(timer1); clearInterval(timer2); return true; } } var timer1 = setInterval(enemy.move, 500); var timer2 = setInterval(print_map, 500) </script> </head> <body onload="init_map();" onkeydown="key_input();"> <!-- <input type="button" value="pause" onclick="pause_game();"/> --> <!-- <input type="button" value="continue" onclick="continue_game();"/> --> <input type="button" value="restart" onclick="location.href='./url_hunter.html'"> </body> </html>
- 여러 구문들을 넣어보려고 했으나 실패했습니다. ㅠ