diff options
| -rw-r--r-- | app.js | 117 | ||||
| -rw-r--r-- | game.js | 26 | ||||
| -rw-r--r-- | index.css | 6 | ||||
| -rw-r--r-- | index.html | 114 | 
4 files changed, 184 insertions, 79 deletions
@@ -2,7 +2,7 @@  let board = [      [0, 0, 0, 0, 0, 0, 0, 0], -    [0, -1, 0, 0, 0, 0, 0, 0], +    [0, 0, 0, 0, 0, 0, 0, 0],      [0, 0, 0, 0, 0, 0, 0, 0],      [0, 0, 0, 0, 0, 0, 0, 0],      [0, 0, 0, 0, 0, 0, 0, 0], @@ -11,36 +11,46 @@ let board = [      [0, 0, 0, 0, 0, 0, 0, 0],  ] -console.log(board.length) - -console.log(pawn_move(board, 1, 1)) +console.log(amelia_move(board, 7, 7))  function pawn_move(board, y, x) {      let moves = [] +    let color = board[y][x] > 0 -    if (board[y][x] > 0) { +    if (color) {          if (y == 6) { -            moves.push([y - 1, x]) -            moves.push([y - 2, x]) -            return moves +            if (board[y - 1][x] == 0) { +                moves.push([y - 1, x]) +            } +            if (board[y - 2][x] == 0) { +                moves.push([y - 2, x]) +            } +        } else if (color && y != 0) { +            if (board[y - 1][x] == 0) { +                moves.push([y - 1, x]) +            }          } -        moves.push([y - 1, x])          return moves      } else {          if (y == 1) { -            moves.push([y + 1, x]) -            moves.push([y + 2, x]) -            return moves +            if (board[y + 1][x] == 0) { +                moves.push([y + 1, x]) +            } +            if (board[y + 2][x] == 0) { +                moves.push([y + 2, x]) +            } +        } else if (color && y != 7) { +            if (board[y + 1][x] == 0) { +                moves.push([y + 1, x]) +            }          } - -        moves.push([y + 1, x])          return moves -      }  }  function king_move(board, y, x) { +    let color = board[y][x] > 0      let moves = []      for (let i = y - 1; i <= y + 1; i += 1) { @@ -48,7 +58,7 @@ function king_move(board, y, x) {              if ((i == y && j == x) || i < 0 || j < 0 || i >= board.length || j >= board[i].length) {                  continue              } -            if (board[i][j] == 0) { +            if (board[i][j] == 0 || (color ^ board[i][j] > 0)) {                  moves.push([i, j])              }          } @@ -58,6 +68,7 @@ function king_move(board, y, x) {  }  function knight_move(board, y, x) { +    let color = board[y][x] > 0      let moves = []      let cand = [ @@ -76,8 +87,8 @@ function knight_move(board, y, x) {              continue          } -        if (board[i][j] == 0) { -            moves.push([i, j]) +        if (board[cand[k][0]][cand[k][1]] == 0 || (color ^ board[cand[k][0]][cand[k][1]] > 0)) { +            moves.push([cand[k][0], cand[k][1]])          }      } @@ -86,10 +97,15 @@ function knight_move(board, y, x) {  function rook_move(board, y, x) { +    let color = board[y][x] > 0      let moves = []      for (let i = x + 1; i < board[1].length; i++) {          if (board[y][i] != 0) { +            if (color ^ board[y][i]) { +                moves.push([y, i]) +                break +            }              break          }          moves.push([y, i]) @@ -97,6 +113,10 @@ function rook_move(board, y, x) {      for (let i = x - 1; i >= 0; i--) {          if (board[y][i] != 0) { +            if (color ^ board[y][i]) { +                moves.push([y, i]) +                break +            }              break          }          moves.push([y, i]) @@ -105,6 +125,10 @@ function rook_move(board, y, x) {      for (let i = y + 1; i < board.length; i++) {          if (board[i][x] != 0) { +            if (color ^ board[i][x]) { +                moves.push([i, x]) +                break +            }              break          }          moves.push([i, x]) @@ -112,6 +136,10 @@ function rook_move(board, y, x) {      for (let i = y - 1; i >= 0; i--) {          if (board[i][x] != 0) { +            if (color ^ board[i][x]) { +                moves.push([i, x]) +                break +            }              break          }          moves.push([i, x]) @@ -121,6 +149,7 @@ function rook_move(board, y, x) {  }  function bishop_move(board, y, x) { +    let color = board[y][x] > 0      let moves = []      let i = y + 1 @@ -128,6 +157,10 @@ function bishop_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -141,6 +174,10 @@ function bishop_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -154,6 +191,10 @@ function bishop_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -167,6 +208,10 @@ function bishop_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -179,10 +224,15 @@ function bishop_move(board, y, x) {  }  function amelia_move(board, y, x) { +    let color = board[y][x] > 0      let moves = [] -    for (let i = x + 1; i < board[0].length; i++) { +    for (let i = x + 1; i < board[1].length; i++) {          if (board[y][i] != 0) { +            if (color ^ board[y][i]) { +                moves.push([y, i]) +                break +            }              break          }          moves.push([y, i]) @@ -190,6 +240,10 @@ function amelia_move(board, y, x) {      for (let i = x - 1; i >= 0; i--) {          if (board[y][i] != 0) { +            if (color ^ board[y][i]) { +                moves.push([y, i]) +                break +            }              break          }          moves.push([y, i]) @@ -198,6 +252,10 @@ function amelia_move(board, y, x) {      for (let i = y + 1; i < board.length; i++) {          if (board[i][x] != 0) { +            if (color ^ board[i][x]) { +                moves.push([i, x]) +                break +            }              break          }          moves.push([i, x]) @@ -205,6 +263,10 @@ function amelia_move(board, y, x) {      for (let i = y - 1; i >= 0; i--) {          if (board[i][x] != 0) { +            if (color ^ board[i][x]) { +                moves.push([i, x]) +                break +            }              break          }          moves.push([i, x]) @@ -215,6 +277,10 @@ function amelia_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -228,6 +294,10 @@ function amelia_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -241,6 +311,10 @@ function amelia_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -254,6 +328,10 @@ function amelia_move(board, y, x) {      while (!(i < 0 || j < 0 || i >= board.length || j >= board[i].length)) {          if (board[i][j] != 0) { +            if (color ^ board[i][j] > 0) { +                moves.push([i, j]) +                break +            }              break          } @@ -261,6 +339,5 @@ function amelia_move(board, y, x) {          i += 1          j -= 1      } -      return moves  } @@ -0,0 +1,26 @@ +const alphabet = 'abcdefgh' + +let board = [ +    [0, 0, 0, 0, 0, 0, 0, 0], +    [-1, -1, -1, -1, -1, -1, -1, -1], +    [0, 0, 0, 0, 0, 0, 0, 0], +    [0, 0, 0, 0, 0, 0, 0, 0], +    [0, 0, 0, 0, 0, 0, 0, 0], +    [0, 0, 0, 0, 0, 0, 0, 0], +    [1, 1, 1, 1, 1, 1, 1, 1], +    [0, 0, 0, 0, 0, 0, 0, 0], +] + +for (let i = 0; i < 8; i ++) { +    for (let j = 0; j < 8; j ++) { +        let square = document.getElementById(`${alphabet.charAt(j)}${i+1}`) +        switch (board[i][j]) { +            case 1: +                square.append("p") +                break +            case -1: +                square.append("p") +                break +        } +    } +} @@ -3,11 +3,13 @@      height: 100px;      width: 100px;  } +  .black{      height: 100px;      width: 100px;       background-color: brown;     } +  body{      height: 100vh;      width: 100vw; @@ -15,11 +17,11 @@ body{      justify-content: center;      align-items: center;  } +  .chess-board{      width: 800px;      height: 800px;      display: grid;      grid-template-columns:repeat(8,1fr);      grid-template-rows:repeat(8,1fr); - -}
\ No newline at end of file +} @@ -11,85 +11,85 @@      <div class="chess-board">          <div>              <div id="a8" class="1 white"></div> -            <div id="b8" class="2 black"></div> -            <div id="c8" class="3 white"></div> -            <div id="d8" class="4 black"></div> -            <div id="e8" class="5 white"></div> -            <div id="f8" class="6 black"></div> -            <div id="g8" class="7 white"></div> -            <div id="h8" class="8 black"></div> +            <div id="a7" class="2 black"></div> +            <div id="a6" class="3 white"></div> +            <div id="a5" class="4 black"></div> +            <div id="a4" class="5 white"></div> +            <div id="a3" class="6 black"></div> +            <div id="a2" class="7 white"></div> +            <div id="a1" class="8 black"></div>          </div>          <div> -            <div id="a7" class="2 black"></div> +            <div id="b8" class="2 black"></div>              <div id="b7" class="1 white"></div> -            <div id="c7" class="4 black"></div> -            <div id="d7" class="3 white"></div> -            <div id="e7" class="6 black"></div> -            <div id="f7" class="5 white"></div> -            <div id="g7" class="8 black"></div> -            <div id="h7" class="7 white"></div> +            <div id="b6" class="4 black"></div> +            <div id="b5" class="3 white"></div> +            <div id="b4" class="6 black"></div> +            <div id="b3" class="5 white"></div> +            <div id="b2" class="8 black"></div> +            <div id="b1" class="7 white"></div>          </div>          <div> -            <div id="a6" class="1 white"></div> -            <div id="b6" class="2 black"></div> +            <div id="c8" class="1 white"></div> +            <div id="c7" class="2 black"></div>              <div id="c6" class="3 white"></div> -            <div id="d6" class="4 black"></div> -            <div id="e6" class="5 white"></div> -            <div id="f6" class="6 black"></div> -            <div id="g6" class="7 white"></div> -            <div id="h6" class="8 black"></div> +            <div id="c5" class="4 black"></div> +            <div id="c4" class="5 white"></div> +            <div id="c3" class="6 black"></div> +            <div id="c2" class="7 white"></div> +            <div id="c1" class="8 black"></div>          </div>          <div> -            <div id="a5" class="2 black"></div> -            <div id="b5" class="1 white"></div> -            <div id="c5" class="4 black"></div> +            <div id="d8" class="2 black"></div> +            <div id="d7" class="1 white"></div> +            <div id="d6" class="4 black"></div>              <div id="d5" class="3 white"></div> -            <div id="e5" class="6 black"></div> -            <div id="f5" class="5 white"></div> -            <div id="g5" class="8 black"></div> -            <div id="h5" class="7 white"></div> +            <div id="d4" class="6 black"></div> +            <div id="d3" class="5 white"></div> +            <div id="d2" class="8 black"></div> +            <div id="d1" class="7 white"></div>          </div>          <div> -            <div id="a4" class="1 white"></div> -            <div id="b4" class="2 black"></div> -            <div id="c4" class="3 white"></div> -            <div id="d4" class="4 black"></div> +            <div id="e8" class="1 white"></div> +            <div id="e7" class="2 black"></div> +            <div id="e6" class="3 white"></div> +            <div id="e5" class="4 black"></div>              <div id="e4" class="5 white"></div> -            <div id="f4" class="6 black"></div> -            <div id="g4" class="7 white"></div> -            <div id="h4" class="8 black"></div> +            <div id="e3" class="6 black"></div> +            <div id="e2" class="7 white"></div> +            <div id="e1" class="8 black"></div>          </div>          <div> -            <div id="a3" class="2 black"></div> -            <div id="b3" class="1 white"></div> -            <div id="c3" class="4 black"></div> -            <div id="d3" class="3 white"></div> -            <div id="e3" class="6 black"></div> +            <div id="f8" class="2 black"></div> +            <div id="f7" class="1 white"></div> +            <div id="f6" class="4 black"></div> +            <div id="f5" class="3 white"></div> +            <div id="f4" class="6 black"></div>              <div id="f3" class="5 white"></div> -            <div id="g3" class="8 black"></div> -            <div id="h3" class="7 white"></div> +            <div id="f2" class="8 black"></div> +            <div id="f1" class="7 white"></div>          </div>          <div> -            <div id="a2" class="1 white"></div> -            <div id="b2" class="2 black"></div> -            <div id="c2" class="3 white"></div> -            <div id="d2" class="4 black"></div> -            <div id="e2" class="5 white"></div> -            <div id="f2" class="6 black"></div> +            <div id="g8" class="1 white"></div> +            <div id="g7" class="2 black"></div> +            <div id="g6" class="3 white"></div> +            <div id="g5" class="4 black"></div> +            <div id="g4" class="5 white"></div> +            <div id="g3" class="6 black"></div>              <div id="g2" class="7 white"></div> -            <div id="h2" class="8 black"></div> +            <div id="g1" class="8 black"></div>          </div>          <div> -            <div id="a1" class="2 black"></div> -            <div id="b1" class="1 white"></div> -            <div id="c1" class="4 black"></div> -            <div id="d1" class="3 white"></div> -            <div id="e1" class="6 black"></div> -            <div id="f1" class="5 white"></div> -            <div id="g1" class="8 black"></div> +            <div id="h8" class="2 black"></div> +            <div id="h7" class="1 white"></div> +            <div id="h6" class="4 black"></div> +            <div id="h5" class="3 white"></div> +            <div id="h4" class="6 black"></div> +            <div id="h3" class="5 white"></div> +            <div id="h2" class="8 black"></div>              <div id="h1" class="7 white"></div>          </div>      </div>     +    <script src="./game.js"></script>  </body> -<script src=app.js></script>  </html>  | 
