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.