Poniższy materiał to część cyklu „Algorytmy dla uczniów”
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!"; }