Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please make sure to do all of the tasks described in the file attached in cronoligcal order. This is a java task that requires code

Please make sure to do all of the tasks described in the file attached in cronoligcal order. This is a java task that requires code editing, and code writing. The different code files are pasted below with file name specified ("--------filename").Thank you!
---------Player.java
public class Player {
private boolean human;
private String name;
private Player(boolean human, String name){
this.human = human;
this.name = name;
}
public static Player createHuman(String name){
return new Player(true, name);
}
public static Player createComputer(){
return new Player(false,"AI");
}
public boolean isHuman(){
return human;
}
public String getName(){
return name;
}
}
----------- TwoPlayerBoardGame.java
import java.util.Scanner;
import java.util.Random;
public abstract class TwoPlayerBoardGame {
protected static final Scanner console = new Scanner(System.in);
protected static final Random random = new Random();
protected final char[][] board;
private final int MAX_MOVES;
protected Player current;
private Player other;
protected TwoPlayerBoardGame(char[][] board, int MAX_MOVES, Player p1, Player p2){
this.board = board;
this.MAX_MOVES = MAX_MOVES;
this.current = p1;
this.other = p2;
}
public final void play(){
for (int i =0; i MAX_MOVES; ++i){
System.out.println(this);
do {
if (current.isHuman()){
askForMove();
receiveMove();
}
else {
generateMove();
}
}
while (!validMove());
applyMove();
if (someoneWon()){
System.out.println(this);
celebrateMove();
return;
}
else {
prepareForNextMove();
}
}
System.out.println(this);
System.out.println("It's a draw.");
}
protected abstract void askForMove();
protected abstract void receiveMove();
protected abstract void generateMove();
protected abstract boolean validMove();
protected abstract void applyMove();
protected abstract boolean someoneWon();
protected abstract void celebrateMove();
protected void prepareForNextMove(){
Player tmp = current;
current = other;
other = tmp;
}
}
----------- TestGames.java
public class TestGames {
public static void main(String[] args){
TwoPlayerBoardGame game;
game = new TicTacToe(Player.createHuman("Student"), Player.createComputer());
game.play();
game = new TicTacToe(Player.createHuman("Roy"), Player.createHuman("Moss"));
game.play();
game = new ConnectFour(Player.createHuman("Student"), Player.createComputer());
game.play();
game = new ConnectFour(Player.createHuman("Jen"), Player.createHuman("Moss"));
game.play();
}
}
----------- TicTacToe.java
public final class TicTacToe extends TwoPlayerBoardGame {
private char XO ='X';
private int row;
private int col;
public TicTacToe(Player p1, Player p2){
super(null,0, p1, p2);
}
public String toString(){
return "";
}
protected void askForMove(){
}
protected void receiveMove(){
row = console.nextInt();
col = console.nextInt();
}
protected void generateMove(){
row = Math.abs(random.nextInt())%3;
col = Math.abs(random.nextInt())%3;
}
protected boolean validMove(){
return true;
}
protected void applyMove(){
}
protected boolean someoneWon(){
return false;
}
protected void celebrateMove(){
}
protected void prepareForNextMove(){
}
}
----------- ConnectFour.java
public final class ConnectFour extends TwoPlayerBoardGame {
private char RY ='R';
private int col;
private static final int ROWS =6;
private static final int COLS =7;
public ConnectFour(Player p1, Player p2){
super(null,0, p1, p2);
}
public String toString(){
return "";
}
protected void askForMove(){
}
protected void receiveMove(){
}
protected void generateMove(){
}
protected boolean validMove(){
return true;
}
protected void applyMove(){
}
protected boolean someoneWon(){
return false;
}
protected void celebrateMove(){
}
protected void prepareForNextMove(){
}
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions