Wróć do bloga
Programowanie20 stycznia 2022

Papier, kamień, nożyce w Javie – gra online, jaszczurka, spock – jak wygrać?

Papier, kamień, nożyce w Javie – gra online, jaszczurka, spock – jak wygrać?

Papier, kamień, nożyce w Javie – gra online, jaszczurka, spock – jak wygrać?

Papier, kamień, nożyce! Papier, kamień, nożyce!! Papier, kamień, nożyce!!! 🙂
Chyba każdy z nas chociaż raz w życiu grał w Papier kamień nożyce.

Zamykam oczy i cały czas słyszę ten tekst – Papier kamień nożyce...
Z pewnością wielu z nas ta gra kojarzy się z dzieciństwem, kiedy nie było jeszcze smartfonów, tabletów i gier wideo. Grało się w nią na szkolnych korytarzach w czasie przerw, pod blokiem, czy wszędzie tam, gdzie trzeba było zabić nudę.
Mnie ta gra również kojarzy się z czasem spędzonym z dziećmi – widać historia zatacza już krąg.

To popularna, szybka gra, w którą można zagrać właściwie wszędzie – w domu, na pikniku, w samochodzie, czy w kolejce do lekarza.
Nie musisz posiadać żadnego „sprzętu” – planszy, kostek, ani pionków. Do gry potrzebujesz jedynie rąk.
Papier kamień nożyce należy do gier losowych, ale nawet w niej można obrać również jakąś taktykę – ale o tym za chwilę 🙂

UWAGA
 Pełen kod źródłowy gry i darmowe zaproszenie na kolejne wydarzenia dostępne po rejestracji na StormIT.pl/live

„Papier kamień nożyce” – zasady gry

W grę mogą zagrać dwie, trzy lub więcej osób, a jej zasady są dziecinnie proste. Do gry potrzebne są jedynie dłonie, a przydać może się ewentualnie kartka do zapisywania punktów.

Każdy gracz ma do wyboru jedną z trzech figur, którą chce pokazać – papier, kamień lub nożyce:

  • papier – otwarta dłoń,
  • kamień – zaciśnięta pięść,
  • nożyce – wyeksponowane 2 palce.

Gracze pokazują figury jednocześnie na umówiony znak.

Papier, kamień, nożyce

Jak się gra w „Papier kamień nożyce”?

Symbole mają swoją hierarchię:

  • kamień tępi nożyczki,
  • nożyce tną papier,
  • papier owija kamień.

Kto wygrywa – kamień czy papier?

Przykładowo – jeżeli Ty pokażesz nożyczki, a Twój przeciwnik papier, otrzymujesz jeden punkt.
Jeżeli natomiast Twój przeciwnik pokazałby papier, a ty kamień, punkt należałby do niego.
W konfiguracji nożyczki – kamień, wygrywa gracz, który pokaże kamień.

„Papier kamień nożyce” – los, czy zaplanowana taktyka?

Papier kamień nożyce zaliczany jest do gier losowych. Z matematycznego punktu widzenia każdą figurę przeciwnik może pokazać z jednakowym prawdopodobieństwem – praktyka pokazuje jednak zupełnie co innego 🙂

Gra opiera się przecież o przewidywanie ruchów naszego przeciwnika.
I o ile naszym przeciwnikiem będzie „bezduszna maszyna” – to rzeczywiście można być ona „statystycznie poprawna”.
Jeżeli jednak gramy z drugim człowiekiem – to okazuje się, że my jako ludzie mamy swoje skłonności, do podejmowania konkretnych ruchów podczas tej gry!

Przykładowo:

  • Zazwyczaj zaczynamy grę od kamienia;
  • Po przegranej mamy skłonność do zmiany figury;
  • Staramy się nie powtarzać ruchów;
  • Najbardziej prawdopodobne jest zagranie kamienia (nie tylko za pierwszym razem), następnie papier – a najrzadziej korzystamy z nożyc.

Jak w takim razie wygrać w „Papier, kamień nożyce?”

Przede wszystkim uważnie obserwować naszego przeciwnika.
To, że jako ogół mamy tendencje do pewnych zachowań, wcale nie znaczy, że nasz przeciwnik nie zna tych zasad i nie będzie starał się ich unikać, żeby być bardziej nieprzewidywalny 🙂

Przetestowałem te zasady na moim 7-latku i sromotnie przegrałem...

Powodzenia w grze! I nich wygra lepszy 🙂

„Papier kamień nożyce” – Java

Poniżej fragment z kodem implementującym Papier, kamień, nożyce w Javie.

while (true) {
		String line = scanner.nextLine();
		GameCommand command = GameCommand.of(line);
		GameCommand pcCommand = pcCommand();

		if (command == GameCommand.QUITE) {
			System.out.println("Quite game");
			break;
		}

		if (isDraw(command, pcCommand)) {
			System.out.println("Draw");
		} else if (isFirstWin(command, pcCommand)) {
			System.out.println("You win!!");
		} else {
			System.out.println("You lose...");
		}
}

Widzimy na nim:

  • Zczytywanie danych z konsoli od użytkownika przy pomocy klasy Scanner;
  • Wewnętrzną strukturę danych (w tym wypadku enum) GameCommand wykorzystaną do przechowania informacji o komendach;
  • Główną pętlę gry, która będzie wykonywana do momentu wystąpienia komendy QUITE.
UWAGA
Pełen kod źródłowy gry do pobrania w sekcji VIP po darmowej rejestracji na newsletter lub live.

„Papier kamień nożyce jaszczurka spock”

Ta popularna gra doczekała się wiele rozszerzeń. Jednym z popularniejszych jest „Papier, kamień, nożyce, jaszczurka, spock”.

W tej wersji gry poza standardowymi trzema gestami mamy do dyspozycji jeszcze:

  • jaszczurkę – palce złożone w symbol przypominający pysk jaszczurki, oraz
  • Spock – formowany przez charakterystyczny salut wolkański z filmów serii Star Trek (mały i serdeczny palec oddzielone od środkowego i wskazującego).

Papier kamień nożyce jaszczurka spock

Zasady panujące w tej wersji gry:

  • kamień tępi nożyce,
  • nożyce tną papier,
  • papier zakrywa kamień,
  • kamień zgniata jaszczurkę,
  • jaszczurka truje Spocka,
  • Spock niszczy nożyce,
  • nożyce dekapitują jaszczurkę,
  • jaszczurka zjada papier,
  • papier obala Spocka,
  • Spock dezintegruje kamień.

A może by tak pójść na całość? 🙂

„Papier, kamień, nożyce” – MAX XXXL

Zobacz, jak wygląda rozszerzenie gry Kamień, papier, nożyce – w wersji z 15 figurami! xD

Papier kamień nożyce jaszczurka spock – max

Gry w Java – Pac-Man

Poniżej znajdziesz nagranie z innego naszego spotkania – na którym pokazywałem, jak można zaimplementować inną popularną grę w Java – Pac-Man.

Jak szybciej zdobyć pierwszą pracę w Javie?

Zapraszam na darmowe szkolenie:

10 sposobów, by szybciej zdobyć pierwszą pracę w Javie bez doświadczenia komercyjnego

Podczas spotkania dowiesz się:

  • Jakie wymagania trzeba spełnić, żeby dostać pracę jako Junior Java Developer?
  • Co wyróżnia osoby, które otrzymują odpowiedzi na CV?
  • Co zrobić, żeby dostać zaproszenie na rozmowę kwalifikacyjną i dobrze na niej wypaść?

Zbudujmy wspólnie Twoją pierwszą aplikację Java!

W drugiej części spotkania porozmawiamy też o programie: Java Od Podstaw.

Pozdrawiam i do usłyszenia!
Tomek