制作跳棋游戏背后的逻辑?

时间:2012-10-12 19:50:58

标签: java applet logic

我开始制作一个跳棋游戏,我已经获得了所有的图形和绘制的棋盘。 在我开始创作作品之前,我想知道什么是一种简单的方法来解决碎片运动的逻辑方面。我应该制作一个每个正方形的表格,检测它是否有一块,如果有的话,是什么颜色的? (即0 =空,1 =红色,2 =黑色)或者你们对这个问题有更好的想法吗?

2 个答案:

答案 0 :(得分:6)

通过使用OOP原则,我会使用类似的东西:

enum Side {
  BLACK,
  RED;
}

class Position {
  int x, int y;
}

class Piece
{
  Position position; // position inside the board
  Side side; // which side the piece is
}

class Board
{
  Piece[][] board = new Piece[8][8];

  boolean isMoveLegal(Piece p, Position newPosition) {
    ...
  }

  void doMove(Piece p, Position newPosition) {
    if (isMoveLegal(p, newPosition) {
      // game logic of movement and eating other pieces if needed
    }
  }
}

更天真的方法可以使用简单的地图:

class Position {
  int x, int y;
}

class Piece
{
  Side side; // which side the piece is
}

class Board
{
  HashMap<Piece, Position> board;

  boolean isMoveLegal(Piece p, Position newPosition) {
    ...
  }

  void doMove(Piece p, Position newPosition) {
    if (isMoveLegal(p, newPosition) {
      // game logic of movement and eating other pieces if needed
    }
  }
}

这可以用来避免将一件作品的当前位置存放在其自身内。

答案 1 :(得分:1)

你应该制作一个二维数组来代表棋盘。

int[][] board = new int[8][8];