// Returns true/false if accusation is correct. If false, 'player' // has lost the game and cannot make further accusations. public bool makeAccusation(string playerName, Accusation accusation) { // Checking if all cards in accusation are matching case files return(accusation.room == (Room)Enum.Parse(typeof(Room), caseFile[0].cardValue) && accusation.suspect == (Suspect)Enum.Parse(typeof(Suspect), caseFile[1].cardValue) && accusation.weapon == (Weapon)Enum.Parse(typeof(Weapon), caseFile[2].cardValue)); }
public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } Accusation other = (Accusation)obj; return(room.Equals(other.room) && suspect.Equals(other.suspect) && weapon.Equals(other.weapon)); }
// returns the first player after 'player' who can disprove the // accusation. If no other player can disprove, null is returned. public Player makeSuggestion(string playerName, Accusation accusation) { int indexCheck = currentTurnIndex; do { indexCheck = (indexCheck + 1) % rotationOrders.Count; var realPlayer = rotationOrders[indexCheck]; if (realPlayer.hasCardIn(accusation) && !realPlayer.name.Equals(playerName)) { return(realPlayer); } } while (indexCheck != currentTurnIndex); return(null); }
public bool hasCardIn(Accusation accusation) { return(cards.Contains(new Card(accusation.suspect)) || cards.Contains(new Card(accusation.weapon)) || cards.Contains(new Card(accusation.room))); }