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. Please edit the code in file Tictactoe.java and

Please make sure to do all of the tasks described in the file attached in cronoligcal order.
Please edit the code in file Tictactoe.java and Connectfour.java completely so the test file runs succesfully. Please don't just give me random verbal answers. Thank you
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

Recommended Textbook for

Hands-On Database

Authors: Steve Conger

2nd Edition

0133024415, 978-0133024418

More Books

Students also viewed these Databases questions

Question

Draw and explain the operation of LVDT for pressure measurement

Answered: 1 week ago