我需要创建一个Java程序,用以下规则来玩游戏;
这是我上面例子的解决方案;
X X O Y Y - 移动X.
X O X Y Y - Y JUMP X.
X Y X O Y - 移动Y.
X Y O Y X - X JUMP Y.
反复重复..
O Y X Y X - X JUMP Y.
Y O X Y X - 移动Y.
Y Y X O X - Y JUMP X.
Y Y O X X - 移动X
我不确定如何使这种可扩展性能够处理更大的团队规模,或者我是否在正确的轨道上。任何有关这方面的帮助将不胜感激。
这是我到目前为止所拥有的;
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int teamSize = 0, i = 0;
System.out.print("How many members on each team?");
teamSize = keyboard.nextInt();
//set board and it's size
String[] board = new String[(teamSize*2) + 1];
//set team positions
int x = 1, y = 1;
for (i = 0; i < teamSize; i++) {
board[i] = "X";
board[i + teamSize + 1] = "Y";
}
System.out.print("\nBoard: " + Arrays.toString(board));
// firstMove - MOVE X
String pre1move = board[teamSize]; // original center value
board[i] = board[i-1];
board[i-1] = pre1move;
System.out.print("\nX moved up: " + Arrays.toString(board));
// secondMove - Y JUMP X
// thirdMove - MOVE Y
// fourthMove - X JUMP Y
// repeat pattern in reverse
}
答案 0 :(得分:1)
如果不直接向你提供代码,就很难回答你的问题.....所以,让我看看我是否可以解释你应该采取的一般策略。
目前,在main
方法最底部的注释掉的代码中,您实际上正在指定&#34;好的,这个特定的人应该专门移到这个空间。&#34;现在,这是有效的,但只有在你有2对2的确切情况下。当你尝试打3对3,4对4等时,你的说法是正确的;这不会有规模。
您需要做的是设置您的代码,以便您可以查询一个Player
及其与其他Player
和Board
本身的关系。您应该创建Player
Java类,并为它们提供Direction
和Name
等实例变量,以便确定它们的行进方向。
然后,通过这些信息,您可以在任何个人Player
的某个特定点上提出更多一般性问题:
我是Player
X.我正在旅行Right
。我可以:
再往右走?
- 我的路上还有另一个Player
X吗?
- 我是否准备离开董事会(因此在我的最终职位上)?
- 等。
因此,如果您在Player
的当前情况下可以提出更多通用问题,那么游戏就会缩放。
我知道这很模糊,但就像我说的那样,关于你在没有确切解决方案的情况下得到的最好的东西。祝你好运。