Algorytm. Gra Papier Kamień Nożyce

Grę "Papier Kamień Nożyce" znają chyba wszyscy. Tym razem naszym zadaniem jest stworzenie algorytmu wskazującego zwycięzcę tej gry.


Zakładamy, że w grze uczestniczą dwaj gracze. Każdy z graczy może wybrać (pokazać) jedną z trzech wartości: papier albo kamień albo nożyce. Możemy więc przystąpić do tworzenia specyfikacji algorytmu:

Dane wejściowe:
g1: pierwszy gracz - ciąg znaków zawierający jedną z wartości: {papier, kamień, nożyce}
g2: drugi gracz - ciąg znaków zawierający jedną z wartości: {papier, kamień, nożyce}

Naszym zadaniem jest wskazanie zwycięzcy. Jak może zakończyć się starcie? Mamy trzy możliwości:albo wygrał gracz pierwszy albo gracz drugi albo też gracze pokazali tą samą rzecz i gra zakończyła się remisem. Zatem możemy zdefiniować:

Dane wyjściowe (wynik):
wynik: wynik gry - napis (ciąg znaków) zawierający jedną z wartości {"Wygrał gracz 1", "Wygrał gracz 2","Remis"}

 Metoda wskazania zwycięzcy

Ciąg dalszy już niedługo ...


Algorytm przedstawiony w języku programowania


Przykładowy fragment kodu programu w języku C#:

 if (p1 == p2)
      return "Remis!";

    if (((p1 == "kamień") && (p2 == "nożyce")) ||
        ((p1 == "nożyce") && (p2 == "papier")) ||
        ((p1 == "papier") && (p2 == "kamień")))
    {
      return "Wygrał gracz 1!";
    }
    else
    {
      return "Wygrał gracz 2!";
    }