U E D R , A S I H C RSS

ProjectD/URL Hunter

상위 문서로: 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>

근데 치완선배랑 똑같은 버그 ㅋㅋㅋㅋㅋㅋㅋ시간아 멈춰라.....
  • clearInterval(timecheck); , var timecheck = function (){} 이런 구문이면 가능했던걸로 기억하는데 실험해보시죠! - 이원준
    • 오오 이거 뭐야. 귀찮다. 안할래. - 최다인

3. 이원준

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script>
        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("")+"||";
            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("")+"||";
                clearInterval(timer1);
                clearInterval(timer2);
                clearInterval(timer3);
                return true;
            }
        }
        function print_time() {
            document.getElementById("time").innerHTML = ((current_time.getTime() - start_time.getTime())/1000);
        }
        var timer1 = setInterval(enemy.move, 500);
        var timer2 = setInterval(print_map, 500)
        var timer3 = setInterval(print_time, 100);
    </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'">
    <p>Time : <span id="time">0</span> Sec</p>
</body>
</html>

  • 여러 구문들을 넣어보려고 했으나 실패했습니다. ㅠ

4. 김용준

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<script>
	var map=new Array(50);
	var hunter=25;
	var count;

		function make_map(){
			for(count=0;count<50;count++)
			map[count] = '-';

			make_a();
			map[hunter]='0';                    
			reshow();
		}

		function make_a(){
			for(count=0;count<10;count++){
				a=Math.floor(Math.random()*50);
					if(map[a]=='-') map[a]='a';
					else count--;
			}
		}
		function move_a(){
            var temp;
            	for(count=0;count<50;count++){
            		if(map[count]=='a'){
						temp=count;
						temp=temp+(Math.floor(Math.random()*3)-1);
						if(temp<0) temp=49+temp;
						if(temp>50) temp=temp-49;
							if(map[temp]=='-'){
								map[temp]='a';
								map[count]='-';
                        	}
                    }
                }
		}
		function keyboard(){		
			switch(event.keyCode){
				case 37://left
             	   if(hunter>0) hunter--;
                    	if(map[hunter]=='a') map[hunter]='@';
                    	else map[hunter]='O';
                        
                 	   if(map[hunter+1]=='@') map[hunter+1]='a';
                 	   else map[hunter+1]='-';

                    reshow();
                    break;

				case 39://right
                   	if(hunter<49) hunter++;
                   		if(map[hunter]=='a') map[hunter]='@';
                       	else map[hunter]='O';
                        
                        if(map[hunter-1]=='@') map[hunter-1]='a';
                        else map[hunter-1]='-';
   	
                    reshow();
                    break;

					case 32://SpaceBar
                    if(map[hunter]=='@') map[hunter]='O';
                    reshow();
                    break;
                }
            }



		function reshow(){
			location.href="./URL_Hunter.html#|"+map.join('')+"|";
			move_a();
		}


	</script>
</head>
<body onload="make_map();" onkeydown="keyboard();">
</body>
</html>

  • a가 워프를 탐;;
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:03
Processing time 0.0252 sec