Wisielec

Transkrypt

Wisielec
Wisielec
Postanawiasz wykorzystać swoje zdolności programistyczne i zrobić coś dla dzieci w Twoim
byłym przedszkolu, najlepiej napisać grę. Dyrektorka placówki przystała na Twoją propozycję,
zastrzegając jednak, że powinna być to gra o charakterze edukacyjnym. Żadnego strzelania do
ludzi i podrzynania gardeł. Decydujesz się na klasykę - Wisielca.
Przebieg rozgrywki powinien przebiegać w następujący sposób:
Na początku:
1. wypisujesz nagłówek gry: 'Welcome to the Hangman Game!'.
2. Pustą szubienicę (patrz przykład).
3. Linię: 'Secret word:'.
4. Sekretne słowo z literami zastąpionymi znakami _ i spacjami pomiędzy nimi.
Dla każdej tury rozgrywki:
1. Liczba pozostałych możliwych błędów do popełnia w formacie: 'Number of mistakes left: X'.
2. Poprawne litery dotychczas zgłoszone (duże), jeśli jeszcze nie było to: '-'.
3. Słowo zachęty: 'Please guess a letter!'.
4. Wybraną literę w formacie: 'Your choice: X'.
5A. Jeśli nie był to poprawny znak z alfabetu łacińskiego, wypisz: 'Only Latin alphabet letters!'.
5B. Jeśli wybrana poprawna litera była już proponowana, wypisz: 'You've already guessed that
letter!'.
5C. Jeśli wybrana poprawna litera nie była jeszcze proponowana i nie znajduje się w sekretnym
słowie, wypisz: 'Nope!'.
5D. Jeśli wybrana poprawna litera nie była jeszcze proponowana i znajduje się w sekretnym
słowie, wypisz: 'Nice!'. Wyjątek: wygrana, wówczas tylko pusta linia przejdź do 1A.
6A. Jeśli poprzednio wyszło A,B lub C, dodaj jeden do licznika pomyłek i wypisz odpowiednie
stadium szubienicy.
6B. Jeśli poprzednio wyszło D wypisz zaktualizowane sekretne słowo. Z jednym wyjątkiem, jeśli
była to już ostatnia litera do odgadnięcia: nie wypisuj nic.
7. Pusta linia.
Na koniec:
1A. Jeśli zawodnik wygrał wypisz: 'You won!' oraz w kolejnej linii sekretne słowo już bez
odstępów.
1B. Jeśli zawodnik przegrał wypisz: 'Game Over!' oraz w kolejnej linii sekretne słowo już bez
odstępów.
Każdą rozgrywkę należy zakończyć pustą linią.
W całej grze należy traktować małą i wielką literę jako jedną.
Jeśli w grze zgłoszono za mało liter żeby ją zakończyć, przerywamy grę nie wypisując żadnego
zakończenia.
Jeśli w grze zgłoszono za dużo liter ignorujemy resztę.
Znak nie należący do alfabetu łacińskiego traktowany jest jako pomyłka.
W każdej rozgrywce limit błędów wynosi siedem.
W zadaniu włączony jest sędzia dokładny!
Wejście
W pierwszej linii - jedna liczba całkowita n określająca liczbę testów. W każdej z pierwszych linii
pojedynczej rozgrywki/testu sekretne słowo s oraz liczba k opisująca liczbę zgłoszonych
odpowiedzi. W kolejnych k liniach każdego testu znaki c.
Wyjście
Przebieg rozgrywek zgodnie z powyższym opisem. Każdy test zakończony jedną pustą linią.
Ograniczenia
0 < n < 3001
0 < k < 301
0 < len(s) < 40
s - duże litery łacińskiego alfabetu
c - znaki ascii [32, 125]
Przykład
Wejście:
3
HANGMAN 8
A
E
m
n
h
a
,
g
CAT 6
d
o
g
D
O
G
PYTHON 10
C
+
+
J
A
V
A
P
H
P
Wyjście:
Welcome to the Hangman Game!
+---------------------+
| ____________ |
| |/
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Secret word:
_______
Number of mistakes left: 7
Guesses: Please guess a letter!
Your choice: A
Nice!
Secret word:
_A___A_
Number of mistakes left: 7
Guesses: A
Please guess a letter!
Your choice: E
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
| |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 6
Guesses: AE
Please guess a letter!
Your choice: m
Nice!
Secret word:
_A__MA_
Number of mistakes left: 6
Guesses: AEM
Please guess a letter!
Your choice: n
Nice!
Secret word:
_AN_MAN
Number of mistakes left: 6
Guesses: AEMN
Please guess a letter!
Your choice: h
Nice!
Secret word:
HAN_MAN
Number of mistakes left: 6
Guesses: AEMNH
Please guess a letter!
Your choice: a
You've already guessed that letter!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 5
Guesses: AEMNH
Please guess a letter!
Your choice: ,
Only Latin alphabet letters!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
| |
| |
| |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 4
Guesses: AEMNH
Please guess a letter!
Your choice: g
You won!
Secret: HANGMAN
Welcome to the Hangman Game!
+---------------------+
| ____________ |
| |/
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Secret word:
___
Number of mistakes left: 7
Guesses: Please guess a letter!
Your choice: d
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
| |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 6
Guesses: D
Please guess a letter!
Your choice: o
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 5
Guesses: DO
Please guess a letter!
Your choice: g
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
| |
| |
| |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 4
Guesses: DOG
Please guess a letter!
Your choice: D
You've already guessed that letter!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/| |
| |
/| |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 3
Guesses: DOG
Please guess a letter!
Your choice: O
You've already guessed that letter!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/|\ |
| |
/|\ |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 2
Guesses: DOG
Please guess a letter!
Your choice: G
You've already guessed that letter!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/|\ |
| |
/|\ |
| |
| |
| |
/ |
| |
/
|
| |
|
| __|__
|
+---------------------+
Welcome to the Hangman Game!
+---------------------+
| ____________ |
| |/
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Secret word:
______
Number of mistakes left: 7
Guesses: Please guess a letter!
Your choice: C
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
| |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 6
Guesses: C
Please guess a letter!
Your choice: +
Only Latin alphabet letters!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 5
Guesses: C
Please guess a letter!
Your choice: +
Only Latin alphabet letters!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
| |
| |
| |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 4
Guesses: C
Please guess a letter!
Your choice: J
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/| |
| |
/| |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 3
Guesses: CJ
Please guess a letter!
Your choice: A
Nope!
+---------------------+
| ____________
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/|\ |
| |
/|\ |
| |
| |
| |
|
| |
|
| |
|
| __|__
|
+---------------------+
|
Number of mistakes left: 2
Guesses: CJA
Please guess a letter!
Your choice: V
Nope!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/|\ |
| |
/|\ |
| |
| |
| |
/ |
| |
/
|
| |
|
| __|__
|
+---------------------+
Number of mistakes left: 1
Guesses: CJAV
Please guess a letter!
Your choice: A
You've already guessed that letter!
+---------------------+
| ____________ |
| |/
| |
| |
| |
| |
(_) |
| |
& |
| |
/|\ |
| |
/|\ |
| |
| |
| |
/\ |
| |
/ \ |
| |
|
| __|__
|
+---------------------+
Game Over!
Secret: PYTHON
Uwagi
Plik wejścia i wyjścia do pobrania.

Podobne dokumenty