Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The assignment is very easy and includes test to see if the codes in each classes are correct also i use java (IDE netbeans it

The assignment is very easy and includes test to see if the codes in each classes are correct also i use java (IDE netbeans it really doesn't matter as long as it work perfectly fine). The classes and the test are included below with the questions.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Coordinate class//

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package chess;

/** * * @author Oluwafunbi Aboderin */ public class Coordinate { public Coordinate(int column, int row) throws IndexOutOfBoundsException{ if ( (column7)) throw new IndexOutOfBoundsException("column must be between 0 and 7,inclusive"); if ( (row7)) throw new IndexOutOfBoundsException("row must be between 0 and 7,inclusive");}

public Coordinate(char column, char row) throws IndexOutOfBoundsException{ if ( (column'h')) throw new IndexOutOfBoundsException("column must be between a and h,inclusive"); if ( (row'8')) throw new IndexOutOfBoundsException("row must be between 1 and 8,inclusive"); }

public Coordinate(String coordinate) throws IndexOutOfBoundsException{ if (coordinate.length() != 2) throw new IllegalArgumentException ("Coordinate is a 2-character string"); char column = coordinate.charAt(0); char row = coordinate.charAt(1); // this(x,y) except it must be the first statement!\par if ( (column'h')) throw new IndexOutOfBoundsException("x must be between a and h, inclusive"); if ( (row'8')) throw new IndexOutOfBoundsException("y must be between 1 and 8, inclusive"); }

}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Coordinate test//

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */

import chess.Coordinate;

import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*;

/** * * @author Cheryl */ public class CoordinateTest { public CoordinateTest() { } // TODO add test methods here. // The methods must be annotated with annotation @Test. For example: // @Test public void testConstructorGood() { Coordinate c = new Coordinate(7,6); Assert.assertEquals(6, c.getRowNumber()); Assert.assertEquals(7, c.getColumnNumber()); } @Test public void testConstructorColumnTooHigh() { try { Coordinate c = new Coordinate(8,0); fail(); } catch (IndexOutOfBoundsException e) { /* Expected */ } } @Test public void testConstructorRowTooHigh() { try { Coordinate c = new Coordinate(0,8); fail(); } catch (IndexOutOfBoundsException e) { /* Expected */ } } @Test public void testCharConstructorGood() { Coordinate c = new Coordinate('h','7'); Assert.assertEquals('7', c.getRow()); Assert.assertEquals('h', c.getColumn()); Assert.assertEquals(6, c.getRowNumber()); Assert.assertEquals(7, c.getColumnNumber()); } @Test public void testCharConstructorColumnTooHigh() { try { Coordinate c = new Coordinate('i','1'); fail(); } catch (IndexOutOfBoundsException e) { /* Expected */ } } @Test public void testCharConstructorRowTooLow() { try { Coordinate c = new Coordinate('a','0'); fail(); } catch (IndexOutOfBoundsException e) { /* Expected */ } } @Test public void testStringConstructorGood() { Coordinate c = new Coordinate("a1"); Assert.assertEquals('a', c.getColumn()); Assert.assertEquals('1', c.getRow()); Assert.assertEquals(0, c.getColumnNumber()); Assert.assertEquals(0, c.getRowNumber()); } @Test public void testStringConstructorTooLong() { try { Coordinate c = new Coordinate("a0 "); fail(); } catch (IllegalArgumentException e) { /* Expected */ } } @Test public void testStringConstructorTooShort() { try { Coordinate c = new Coordinate("a"); fail(); } catch (IllegalArgumentException e) { /* Expected */ } } @Test public void testRowColumnLow () { Coordinate c = new Coordinate(0,0); Assert.assertEquals('a', c.getColumn()); Assert.assertEquals('1', c.getRow()); } @Test public void testRowColumnHigh () { Coordinate c = new Coordinate(7,7); Assert.assertEquals('h', c.getColumn()); Assert.assertEquals('8', c.getRow()); } @Test public void testName () { Coordinate c = new Coordinate(0,0); String s = c.name(); Assert.assertEquals("a1", s); } @Test public void testtoString () { Coordinate c = new Coordinate(0,0); String s = c.toString(); Assert.assertEquals("(0,0)", s); } }

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Piece class//

/* ** Good reference on ENUMs: https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

*/ package chess;

/** * * @author Schramm */ public enum ChessPieces { PAWN ('P'), KNIGHT ('N'), BISHOP ('B'), ROOK ('R'), QUEEN ('Q'), KING ('K'); private final char shortName;

ChessPieces (char shortName) { this.shortName = shortName; } public char getShortName() { return this.shortName; } }

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Piece test//

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */

import chess.Piece; import chess.ChessColour; import chess.ChessPieces; import chess.Square; import org.junit.Assert; import org.junit.Test; import static org.junit.Assert.*;

/** * * @author Cheryl */ public class PieceTest { public PieceTest() { }

// TODO add test methods here. // The methods must be annotated with annotation @Test. For example: // @Test public void testConstructorUnoccupiedWhite() { Piece p = new Piece ( ChessColour.WHITE, ChessPieces.KING ); Assert.assertEquals('K', p.getShortName()); Assert.assertEquals(ChessColour.WHITE, p.getColour()); Assert.assertEquals(ChessPieces.KING, p.getName()); } @Test public void testConstructorUnoccupiedBlack() { Piece p = new Piece ( ChessColour.BLACK, ChessPieces.KING ); Assert.assertEquals('k', p.getShortName()); Assert.assertEquals(ChessColour.BLACK, p.getColour()); Assert.assertEquals(ChessPieces.KING, p.getName()); } @Test public void testConstructorShortNameBlack() { Piece p = new Piece ( 'k' ); Assert.assertEquals('k', p.getShortName()); Assert.assertEquals(ChessColour.BLACK, p.getColour()); Assert.assertEquals(ChessPieces.KING, p.getName()); } @Test public void testConstructorShortNameWhite() { Piece p = new Piece ( 'K' ); Assert.assertEquals('K', p.getShortName()); Assert.assertEquals(ChessColour.WHITE, p.getColour()); Assert.assertEquals(ChessPieces.KING, p.getName()); } @Test public void testConstructorShortNameInvalid() { try { Piece p = new Piece ( 'L' ); Assert.fail(); } catch (IllegalArgumentException e) { /*Should catch */ } } @Test public void testToString() { Piece p = new Piece ( ChessColour.WHITE, ChessPieces.KING ); Assert.assertEquals("WHITE KING", p.toString()); } }

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Chess board class//

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package chess;

/** * * @author Cheryl */ public class ChessBoard { private Square board[][]; private ChessColour activeColour; private int fullMove; public ChessBoard() { board = new Square[8][8]; for (int c=0; c

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

chess board test//

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ import chess.Coordinate; import chess.Piece; import chess.Square; import org.junit.Assert;

import org.junit.Test; import static org.junit.Assert.*;

/** * * @author Cheryl */ public class SquareTest { public SquareTest() { }

// TODO add test methods here. // The methods must be annotated with annotation @Test. For example: // @Test public void testConstructorUnoccupied() { Square s = new Square ( new Coordinate(0,1) ); Assert.assertEquals(0, s.getColumnNumber()); Assert.assertEquals(1, s.getRowNumber()); Assert.assertEquals('a', s.getColumn()); Assert.assertEquals('2', s.getRow()); Assert.assertEquals(s.getPiece(), null); Assert.assertFalse("Square should be unoccupied", s.isOccupied()); } @Test public void testConstructorOccupied() { Piece p = new Piece('p'); Square s = new Square ( new Coordinate(0,1), p ); Assert.assertEquals(0, s.getColumnNumber()); Assert.assertEquals(1, s.getRowNumber()); Assert.assertEquals('a', s.getColumn()); Assert.assertEquals('2', s.getRow()); Assert.assertEquals(p, s.getPiece()); Assert.assertTrue("Square should be occupied", s.isOccupied()); } @Test public void testDeleteUnoccupied() { Square s = new Square ( new Coordinate(0,0) ); Piece p = s.deletePiece(); Assert.assertEquals(null, p); Assert.assertFalse( s.isOccupied() ); } @Test public void testDeleteOccupied() { Piece p = new Piece('p'); Square s = new Square ( new Coordinate(0,0), p ); Piece deletedPiece = s.deletePiece(); Assert.assertEquals(deletedPiece, p); Assert.assertFalse( s.isOccupied() ); } @Test public void testAddUnoccupied() { Square s = new Square ( new Coordinate(0,0) ); Piece p = new Piece('p'); Piece previousPiece = s.addPiece(p); Assert.assertEquals(null, previousPiece); Assert.assertEquals(s.getPiece(), p); Assert.assertTrue( s.isOccupied() ); } @Test public void testAddOccupied() { Piece p = new Piece('p'); Square s = new Square ( new Coordinate(0,0), p ); Piece secondPiece = new Piece('P'); Piece previousPiece = s.addPiece(secondPiece); Assert.assertEquals(p, previousPiece); Assert.assertEquals(s.getPiece(), secondPiece); Assert.assertTrue( s.isOccupied() ); } @Test public void testtoStringUnoccupied () { Square s = new Square ( new Coordinate(0,0) ); String str = s.toString(); Assert.assertEquals("Square(0,0): ", str); } @Test public void testtoStringOccupied () { Piece p = new Piece('p'); Square s = new Square ( new Coordinate(1,0), p ); String str = s.toString(); Assert.assertEquals("Square(1,0):"+p.toString(), str); } }

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Instructions for the lab also please only edit the classes not the test

image text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribed

SYSC2004 Winter 2018 Assignment 1 Objectives Write one or more simple classes, to practice coding constructors, accessors and mutators. Write a client of these simple classes, to practice making objects and calling methods on those objects Use test-driven development to guide the writing of the simple classes. Background (Retain for use in later Assignments, as well) Our goal is to have-by the last assignment-a fully functioning chess game that you can play with your friends. In this assignment, we will work on the underlying logic of the game; in later courses, you will know this as the "model" or the "business logic". No GUls-not yet. We must all agree on the rules of our chess game. For chess aficionados, please temper your zeal and stick to the basic moves; no castling, for instance. Perhaps you will be so proud of your program at the end of term that you will continue to work on it and n all these final details! 1. Set up of the chessboard We will all use the following image as our agreed-upon setup (Citation: https:/goo.g/images/g5YtUW)and these instructions https:/www.thespruce.com/setting-up-a chess-board-611545. Note: On the image, the Pointy-Crown is Queen whilst the Round-Crown is King SYSC2004 Winter 2018 Assignment 1 Objectives Write one or more simple classes, to practice coding constructors, accessors and mutators. Write a client of these simple classes, to practice making objects and calling methods on those objects Use test-driven development to guide the writing of the simple classes. Background (Retain for use in later Assignments, as well) Our goal is to have-by the last assignment-a fully functioning chess game that you can play with your friends. In this assignment, we will work on the underlying logic of the game; in later courses, you will know this as the "model" or the "business logic". No GUls-not yet. We must all agree on the rules of our chess game. For chess aficionados, please temper your zeal and stick to the basic moves; no castling, for instance. Perhaps you will be so proud of your program at the end of term that you will continue to work on it and n all these final details! 1. Set up of the chessboard We will all use the following image as our agreed-upon setup (Citation: https:/goo.g/images/g5YtUW)and these instructions https:/www.thespruce.com/setting-up-a chess-board-611545. Note: On the image, the Pointy-Crown is Queen whilst the Round-Crown is King

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered 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