public static void Main()
string[] moves = new string[] { "Paper", "Rock", "Scissors" };
string[] state = new string[] { "won", "lost", "tied" };
int[][] rules = new int[][] { new int[] { 2, 0, 1 }, new int[] { 1, 2, 0 }, new int[] { 0, 1, 2 } };
Random random = new Random();
Console.Write("How many matches will be played? ");
int matchCount = int.Parse(Console.ReadLine());
string[,] matchHistory = new string[matchCount, 3];
for (int i = 0; i < matchCount; i++)
Console.WriteLine("Choose your move:");
for (int j = 0; j < moves.Length; j++)
Console.WriteLine("{0}. {1}", j + 1, moves[j]);
playerMove = int.Parse(Console.ReadLine()) - 1;
Console.WriteLine("Your move is {0}", moves[playerMove]);
Console.WriteLine("PC move is {0} ", moves[pcMove]);
int result = rules[playerMove][pcMove];
Console.WriteLine("You win!");
Console.WriteLine("You lose.");
Console.WriteLine("Tied!");
matchHistory[i, 0] = moves[playerMove];
matchHistory[i, 1] = moves[pcMove];
matchHistory[i, 2] = state[result];
int[,] statistics = new int[3,3];
for (int i = 0; i < matchCount; i++)
string playerMove = matchHistory[i, 0];
string result = matchHistory[i ,2];
for (int moveId = 0; moveId < moves.Length; moveId++)
string move = moves[moveId];
for (int stateId = 0; stateId < state.Length; stateId++)
string gameState = state[stateId];
if (playerMove == move && gameState == result)
statistics[moveId, stateId]++;
Console.WriteLine("Match Statistics:");
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
Console.WriteLine("You {0} with {1} {2} time(s).", state[j], moves[i], statistics[i, j]);
Console.WriteLine("Match History:");
Console.WriteLine("Round\tYour Move\tPC Move\tResult");
Console.WriteLine("--------------------------------------------------");
for (int i = 0; i < matchCount; i++)
Console.WriteLine("{0}\t\t{1}\t\t{2}\t\t{3}", i + 1, matchHistory[i, 0], matchHistory[i, 1], matchHistory[i, 2]);