2014-11-05 11 views
0

Я работаю над игрой tic-tac-toe для класса и в одном классе создаю объект Board, который содержит массив String, а затем передает его классу игроков. Однако я не могу понять, как разрешить использовать эту информацию в новом классе. Может ли кто-нибудь здесь дать мне несколько указателей?Связывание массива с другим классом в Java

public static void main(String[] args) 
    { 
     //new tic-tac-toe board 
     Board board = new Board(); 

     //two new players (computer and human) 
     Player computer = new Player(board, "X"); //Give computer player access to board and  assign as X. 
     Player human = new Player(board, "O");  //Give human player access to board and assign as O. 

и класс Я пытаюсь использовать его в

package outlab5; 
import java.util.Scanner; 
public class Player { 
    private String[][] currentBoard; 
    private String move; 
    Scanner input = new Scanner(System.in); 


    public Player(Board inBoard, String inMove){ 
     move = inMove; 
    } 
    public void computerMove(){ 
     boolean valid = false; 
    while(!valid){ 
     int moveCols = (int)(Math.random()*4); 
     int moveRows = (int)(Math.random()*4); 

     System.out.print(currentBoard[0][0]); 

     } 
    } 
+0

Возможно, ваш 'String []' должен быть какой-то класс. Может быть, «Совет»? –

ответ

0

Я думаю, что ваш класс Board имеет поле, представляющее String [] [] массив, который вы ищете. В вашем классе игрока храните объект борад правильно.

public class Player { 
private String[][] currentBoard; 
private String move; 
private Board board; //define a variable 
Scanner input = new Scanner(System.in); 


public Player(Board inBoard, String inMove){ 
    board = inBoard; 
    move = inMove; 
} 

Вы не показывает код класса Board, так что я должен угадать, как вы можете получить доступ к строке [] [], вероятно, класс Board предоставляет некоторые Get-методу, чтобы получить доступ к массиву строк.

String[][] currentBoard = board.get....(); //this call must be placed in a method 
0

Вот пример того, как вы можете применить свое приложение.

Совет класса

public class Board { 
    // TODO : Stuff and Stuff (Where your 3x3 Matrix may be) 
} 

игрока Абстрактный класс

abstract class Player { 

    private final Board board; 
    private final String move; 

    public Player(Board _board, String _move) { 
     this.board = _board; 
     this.move = _move; 
    } 

    public void playerMove() { 
     // TODO : Default Movement Actions 
    } 

    public void playerWin() { 
     // TODO : Default Event on Player Win 
    } 
} 

компьютерный класс

public class Computer extends Player { 
    public Computer(Board _board, String _move) { 
     super(_board, _move); 
    } 

    @Override 
    public void playerMove() { 
     // TODO : Computer Related Movements (Like AI) 
     super.playerMove(); 
    } 

    @Override 
    public void playerWin() { 
     // TODO : Computer Related Events for Computer (Like Increase Dif) 
     super.playerWin(); 
    } 
} 

человеческого класса

public class Human extends Player { 
    public Human(Board _board, String _move) { 
     super(_board, _move); 
    } 

    @Override 
    public void playerMove() { 
     // TODO : Human Related Movements (Like I/O) 
     super.playerMove(); 
    } 

    @Override 
    public void playerWin() { 
     // TODO : Human Related Events on Win (Like Score) 
     super.playerWin(); 
    } 
} 
Смежные вопросы