十五个益智游戏

时间:2016-10-08 15:56:16

标签: javascript html puzzle

我正在做一个十五个益智游戏,我希望你只能点击空盒子旁边的数字,但现在你可以点击到处......如何改变这个?我原以为你可以为列和行创建一个if语句。



<!DOCTYPE html>

<html>
<head>
  <title>The Fifteen Puzzle Game</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script>

    $(document).ready(function(){ 

      var currentBoard = new Array(' ','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15');

   
     
	  for(i=0 ; i++<100 ; x = Math.floor(Math.random()*16), y = Math.floor(Math.random()*16), currentBoard[x] = currentBoard.splice(y, 1, currentBoard[x])[0]);


      repaint(); // Redraw puzzle board     

      //
      // Funktion repaint()
      // Redraw puzzle board
      function repaint(){
        currentString = "";
        for(i=1;i<17;i++){
          currentString += "<input type='button'  id='" + i + "' value='" + currentBoard[i-1] + "' />";
          if ( (i%4) == 0 ) currentString += "<br />";
        }
        $("#board").html(currentString);
      }

     
      function swapArrElems(index_a, index_b) {
          var temp = currentBoard[index_a];
          currentBoard[index_a] = currentBoard[index_b];
          currentBoard[index_b] = temp;
      }

     
      $('#board').click(function(event){
        current = $(event.target).attr("id")-1;

        for(i=0;i<16;i++) if( currentBoard[i]==0 ) zeroIndex = i; 
        swapArrElems(current, zeroIndex);
        repaint();
        
      });


     });
    
  </script>

  <style>
    input[type="button"] { width: 80px; height: 80px; font-size: 30px; }
  </style>
</head>

<body>

<div id="board">
</div>

</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

从我理解你的代码的方式来看,你有16个按钮id由4行组成。每次点击一个按钮,该按钮的数组值和空白按钮交换。你快到了。这里最重要的细节是按钮ID,它始终保持不变。

您需要在单击按钮的ID和空白按钮的ID之间添加一个比较,这需要一个条件。

我不打算为你提供代码,因为我不想放弃答案。我会改为给你逻辑:

在你的上一个函数中,在if(currentBoard [i] == 0)之后,zeroIndex = i;

**Else if** the id(clicked button) == id(blank button)-1. OR id(blank button)+1. OR
id(blank button)-4. OR id(blank button)+4 ........

Swap the elements.

Else

don't swap the elements.
祝你好运!希望这会有所帮助。