Tic Tac Toe 게임의 할당을 완료하려고합니다. AddPiece 및 GetPieceAt 메서드를 제외하고는 다른 모든 요구 사항을 완료했습니다. 나는 이것을 ArrayList로 구현하는 방법과 ArrayList의 (x, y)에서 설정하는 방법에 대해 모든 것을 살펴 보았습니다. 나는 내가 잘못 할당을 이해하고 있을지도 모르는 것처럼 느낀다. 그러나이 점에서 나는 무엇을해야하는지 전혀 모른다. 나는 몇 가지 아이디어를 적어 놓았지만 그 두 가지 방법으로 생각할 것들을 대부분 삭제했다.ArrayList의 x, y 위치에 요소를 추가하십시오.
다른 모든 파일을 여기에 추가하는 번거 로움을 덜기 위해 할당이 게시되는 링크입니다. http://go.code-check.org/codecheck/files/1404121614cuepj4pvhuprowa1awz8s0642
모든 도움과 안내는 정말 감사하겠습니다.
이
내가 TicTacToeBoard.java 파일 이름에 대해 가지고있는 코드입니다import java.util.ArrayList;
public class TicTacToeBoard extends GameBoard
{
/**
* The pieces in this game.
*/
ArrayList<TicTacToePiece> GamePieces;
/**
* Constructor. Instantiate the GamePieces ArrayList.
*/
public TicTacToeBoard()
{
// YOUR CODE HERE
super(0, 0);
GamePieces = new ArrayList<TicTacToePiece>();
}
/**
* empty out the GamePieces ArrayList
*/
public void Reset()
{
// YOUR CODE HERE
GamePieces.clear();
}
/**
* Fill a space with the newPiece, IF THAT SPACE IS EMPTY.
*
* @param x the first, horizontal coordinate for the next move
* @param y the second, vertical coordinate for the next move
* @newPiece the piece to place at the location
*/
public void AddPiece(int x, int y, TicTacToePiece newPiece)
{
// YOUR CODE HERE
GamePiece gp = new GamePiece(x,y);
gp.GetPosition();
// GamePieces.add((int) gp.GetPosition(), newPiece);
}
/**
* Get a GamePiece at a specific position.
*
* @param x the first, horizontal coordinate for the next move
* @param y the second, vertical coordinate for the next move
* @return the game piece at position x, y. or null if there is none
*/
public TicTacToePiece GetPieceAt(int x, int y)
{
// YOUR CODE HERE
return null;
}
/**
* Checks the board for win or draw conditions and update the GameState property appropriately.
*
* @return the GameStatus of this game
*/
public GameStatus CheckForWin()
{
TicTacToeGame t = new TicTacToeGame();
if(t.GetGameState() == GameStatus.ON)
return GameStatus.ON;
else if(t.GetGameState() == GameStatus.WIN_PLAYER_1)
return GameStatus.WIN_PLAYER_1;
else if(t.GetGameState() == GameStatus.WIN_PLAYER_2)
return GameStatus.WIN_PLAYER_2;
else
return GameStatus.DRAW;
// YOUR CODE HERE
}
/**
* Create a Board[][] array. This is a helper function that I used so that I could reuse code from Assignment 1. You do not have to implement this method.
*
* @return a two dimensional array of Strings
*/
private String[][] GetGameBoard()
{
// YOUR CODE HERE
String[][] Board = new String[3][3];
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
Board[i][j] = "-";
return Board;
}
// /**
// * Checks a string for win conditions. If three in a row occur, then it returns the proper GameState.
// * This is a helper function that I used, but is not required for you to implement.
// *
// * @param Input a representation of a row, column, or diagonal in the game.
// *
// * @return the proper GameStatus for a row, column, or diagonal represented by the Input String
// * "---" would indicate an entirely free row, column or diagonal, in which case it should return GameStatus.ON.
// * "000" indicates a row, column, or diagonal that has been won by player 1.
// * "111" indicates a row, column, or diagonal that has been won by player 2.
// */
// private GameStatus CheckStringForThree(String Input)
// {
// // YOUR CODE HERE
// }
/**
* Print the game board to stdout.
* 0 should be used to represent moves by player 1.
* 1 should be used to represent moves by player 2.
* - should be used to represent a free space.
* One blank space should occur between each space.
* So an empty game board would be
* - - -
* - - -
* - - -
* And a game might look like
* 0 - 1
* 0 - -
* 1 - 0
* WARNING: If you are storing the game board as Board[x][y], then the traditional nested loops won't
* print the board properly. x should be the horizontal coordinate. y should be the vertical coordinate.
*/
public void Print()
{
// YOUR CODE HERE
for(int r = 0; r < 3; r++)
{
for(int c = 0; c < 3; c++)
{
System.out.print(GetGameBoard()[r][c]);
}
System.out.println();
}
System.out.println(GamePieces);
}
}
그냥 왜 2D 배열이 아닌 arraylist로 설정하려고하는지 궁금하십니까? –
교수님이이 코드를 우리에게 모두 주셨습니다. // 여기에 귀하의 코드가 있습니다. 개인적으로 2D 배열로이 작업을 수행했지만이 작업은 끝났지 만 그는 그 arraylist를 사용하기를 원합니다. – thatonechin