Exemplo n.º 1
0
        public void TestEquality(string firstMoveStringNotation, GameMove second, bool expectedEquals)
        {
            var first = GameMove.FromStringNotation(firstMoveStringNotation);

            Assert.That(first, Is.Not.Null);
            Assert.That(second, Is.Not.Null);

            Assert.That(first.Equals(second), Is.EqualTo(expectedEquals));
            Assert.That(second.Equals(first), Is.EqualTo(expectedEquals));
            Assert.That(Equals(first, second), Is.EqualTo(expectedEquals));
            Assert.That(EqualityComparer <GameMove> .Default.Equals(first, second), Is.EqualTo(expectedEquals));
            Assert.That(first == second, Is.EqualTo(expectedEquals));
            Assert.That(first != second, Is.EqualTo(!expectedEquals));

            if (expectedEquals)
            {
                Assert.That(first.GetHashCode(), Is.EqualTo(second.GetHashCode()));
            }
        }
Exemplo n.º 2
0
        public static GameResult Eval(GameMove move1, GameMove move2)
        {
            // Rock Vs. ###
            if (move1.Equals(Rock))
            {
                if (move2.Equals(Rock))
                {
                    return(Draw);
                }
                else if (move2.Equals(Paper))
                {
                    return(Loose);
                }
                else if (move2.Equals(Scissor))
                {
                    return(Win);
                }
                else if (move2.Equals(Spock))
                {
                    return(Loose);
                }
                else if (move2.Equals(Lizard))
                {
                    return(Win);
                }
            }
            else if (move1.Equals(Paper))
            {
                if (move2.Equals(Rock))
                {
                    return(Win);
                }
                else if (move2.Equals(Paper))
                {
                    return(Draw);
                }
                else if (move2.Equals(Scissor))
                {
                    return(Loose);
                }
                else if (move2.Equals(Lizard))
                {
                    return(Loose);
                }
                else if (move2.Equals(Spock))
                {
                    return(Win);
                }
            }
            else if (move1.Equals(Scissor))
            {
                if (move2.Equals(Rock))
                {
                    return(Loose);
                }
                else if (move2.Equals(Paper))
                {
                    return(Win);
                }
                else if (move2.Equals(Scissor))
                {
                    return(Draw);
                }
                else if (move2.Equals(Lizard))
                {
                    return(Win);
                }
                else if (move2.Equals(Spock))
                {
                    return(Loose);
                }
            }
            else if (move1.Equals(Lizard))
            {
                if (move2.Equals(Rock))
                {
                    return(Loose);
                }
                else if (move2.Equals(Paper))
                {
                    return(Win);
                }
                else if (move2.Equals(Scissor))
                {
                    return(Loose);
                }
                else if (move2.Equals(Lizard))
                {
                    return(Draw);
                }
                else if (move2.Equals(Spock))
                {
                    return(Win);
                }
            }
            else if (move1.Equals(Spock))
            {
                if (move2.Equals(Rock))
                {
                    return(Win);
                }
                else if (move2.Equals(Paper))
                {
                    return(Loose);
                }
                else if (move2.Equals(Scissor))
                {
                    return(Win);
                }
                else if (move2.Equals(Lizard))
                {
                    return(Loose);
                }
                else if (move2.Equals(Spock))
                {
                    return(Draw);
                }
            }

            return(new GameResult(null, "Unknown Result"));
        }