Я хотел бы указать на несколько вещей. Самая важная часть, которая может решить вашу проблему, является 3-й и 4-й. Но прочитайте их все, я думаю, что было бы важно знать.
1) Когда вы проверяете элементы массива, вы всегда начинаете с индекса 0. Так что в этом случае «Rock» будет в соответствии с rpsList [0], Paper будет соответствовать rpsList [1] и т. д. Поэтому, когда вы говорите if (rpsList [1] == "Rock"), это явно неправильно, потому что rpsList [1] - это Paper.
2) 1201ProgramAlarm указал на это, у вас есть точка с запятой после оператора if для бумаги.
3) Вместо этого ваши операторы if следует заменить на операторы if-else-if. if (rpList [0] == "Rock) ... else if (rpList [1] ==" Paper "). Что произойдет, если у вас есть отдельные операторы if, будет проверяться каждый оператор if, даже если условия false. Выполнение оператора else if после вашего первого оператора if позволит вам пропустить избыточные проверки, как только вы обнаружите, что любое из утверждений истинно.
4) Ваши операторы if ничего не делают с случайное число, сгенерированное ранее. Вместо этого вы проверяете, является ли первый элемент Rock, вторым элементом Paper или третьим элементом Scissors, и в этом случае они находятся в этой последовательности, поскольку именно так вы расположили строковый массив. Сделайте это вместо:
if (rpList[rpsNumber] == "Rock")
{
...
}
else if (rpList[rpsNumber] == "Paper")
{
...
}
else if (rpList[rpsNumber] == "Scissors")
{
...
}