public void setFieldStatus(UserAccount user, Field field, FieldStatus status, Ship ship) { foreach (Playfield pf in playfields) { if (pf.user.Equals(user)) { pf.setFieldStatus(field, status, ship); } } gameGUI.updateField(user, field, status); }
public void setFieldStatus(Field field, FieldStatus status, Ship ship) { fieldlist[field.xCoordinate, field.yCoordinate].status = status; }
public ShipPosition(Ship ship, List<Field> fieldList) { this.ship = ship; this.fieldList = fieldList; }
public void setFieldStatusTest() { Field field = new Field(0, 0); FieldStatus status = FieldStatus.MISS; Ship ship = null; window.setFieldStatus(owner, field, status, ship); // Check fields of all players foreach (Playfield pf in window.playfields) { if (pf.user.Equals(owner)) { // check fields of owner for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { // check if field is Miss if (i == field.xCoordinate && j == field.yCoordinate) { Assert.AreEqual(status, pf.getFieldStatus(field)); } // all other fields are Clear else { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } else { // fields of all other players must be Clear for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } field = new Field(5, 5); status = FieldStatus.HIT; ship = new Ship(new Shape(4)); window.setFieldStatus(owner, field, status, ship); foreach (Playfield pf in window.playfields) { if (pf.user.Equals(owner)) { // check fields of owner for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { // check if last field is still a Miss if (i == 0 && j == 0) { Assert.AreEqual(FieldStatus.MISS, pf.fieldlist[0, 0].status); } // check if new field is Hit else if (i == field.xCoordinate && j == field.yCoordinate) { Assert.AreEqual(status, pf.getFieldStatus(field)); } // all other fields must be Clear else { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } else { // fields of all other players must be Clear for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } field = new Field(2, 3); status = FieldStatus.HIT; ship = new Ship(new Shape(3)); window.setFieldStatus(user2, field, status, ship); foreach (Playfield pf in window.playfields) { if (pf.user.Equals(owner)) { for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { // check if first field is Miss if (i == 0 && j == 0) { Assert.AreEqual(FieldStatus.MISS, pf.fieldlist[0, 0].status); } // check if last field is Hit else if (i == 5 && j == 5) { Assert.AreEqual(FieldStatus.HIT, pf.fieldlist[5, 5].status); } // all other fields must be Clear else { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } else if (pf.user.Equals(user2)) { // check fields of user2 for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { // the last field must be Hit if (i == 2 && j == 3) { Assert.AreEqual(FieldStatus.HIT, pf.getFieldStatus(field)); } // all other fields must be Clear else { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } else { // fields of all other players must be Clear for (int i = 0; i < pf.fieldlist.GetLength(0); i++) { for (int j = 0; j < pf.fieldlist.GetLength(1); j++) { Assert.AreEqual(FieldStatus.CLEAR, pf.fieldlist[i, j].status); } } } } }