1+ import random
2+ import string
3+
4+ hangman_body = ['''
5+ ------
6+ |
7+ |
8+ |
9+ |
10+ ========''' ,'''
11+ ------
12+ | |
13+ |
14+ |
15+ |
16+ ========''' ,'''
17+ ------
18+ | |
19+ o |
20+ |
21+ |
22+ ========''' ,'''
23+ ------
24+ | |
25+ o |
26+ | |
27+ |
28+ ========''' ,'''
29+ ------
30+ | |
31+ o |
32+ /| |
33+ |
34+ ========''' ,'''
35+ ------
36+ | |
37+ o |
38+ /|\ |
39+ |
40+ ========''' ,'''
41+ ------
42+ | |
43+ o |
44+ /|\ |
45+ / |
46+ ========''' ,'''
47+ ------
48+ | |
49+ o |
50+ /|\ |
51+ / \ |
52+ ========''' ,
53+ ]
54+ def displayhangman (wrong_guess ,correct_guess ,anime_character ,hangman_body ):
55+ if len (wrong_guess )< 8 :
56+ print (hangman_body [len (wrong_guess )])
57+
58+ print ('Wrong guesses:' ,end = '' )
59+ for wrong in wrong_guess :
60+ print (wrong ,end = '' )
61+ print ('' )
62+
63+ blanks = "_" * len (anime_character )
64+
65+ for i in range (len (anime_character )):
66+ if anime_character [i ] in correct_guess :
67+ blanks = blanks [:i ] + anime_character [i ] + blanks [i + 1 :]
68+
69+ for letters in blanks :
70+ print (letters ,end = '' )
71+ print ('' )
72+
73+ def guessTaken (alreadyexist ):
74+ while True :
75+ guess = input ('\n Start guessing:' ).lower ()
76+ if guess not in string .ascii_lowercase :
77+ guess = input ('Enter valid guess:' )
78+ if not len (guess )== 1 :
79+ guess = input ('Enter a single character:' )
80+ if guess == alreadyexist :
81+ guess = input ('Guess again,guess already exist:' )
82+ else :
83+ return guess
84+
85+ def playagain ():
86+ again = input ('Do you want to play again(Y/n)?' ).lower ()
87+ if again .startswith ('y' ):
88+ return True
89+ else :
90+ return False
91+
92+ print ('Anime Hangman' )
93+ characters = "jabamiyumeko,ishigamisenku,satomemary,darkness,nifuji,narumi,koyanagi,kabakura,megumin,sabo,sukuna,gojo,yuji" \
94+ "sakatagintoki,shinpachi,kagura,hijikata,makisekurisu,light,l,karma,kageyama," \
95+ "kazuma,okabe,hachiman,yukino,yui,orekihotaru,chitandaeru,narutouzumaki," \
96+ "monkeydLuffy,Lelouch,tatsumi,esdeath,akame,arima,kaori,fujinuma,kakeru,naho," \
97+ "suwa,ichigokurosaki,uryuishida,giyuutomika,kenkaneki,saiki,zerotwo,hiro,chizuru,shuohuma,jintan,menma,norman," \
98+ "ray,emma,sakakibara,akira,maisakurajima,sakuta,Ayanokouji,suzune,roronoazoro," \
99+ "vinsmokesanji,boahancock,hinatahyuga,sasukeuchiha,CC,tenma,johan,,suzakukururugi," \
100+ "karen,shikamarunara,kakashihatake,itachi uchiha,tanjiro,zenitsu,deku" \
101+ "inosuke,portazdace,jiraiya,minato,god yato,hiyori,yukine,leviackerman,erenyeager," \
102+ "mikasaackerman,erwinsmith,edwardelric,alphonseelric,roymustang,kenma,oikawa,bokuto,erza" \
103+ "rayleigh,shanks,trafalgarlaw,killua,gon,hisoka,komi,ginko,natsu,goku,vegeta" .lower ().split (',' )
104+
105+ wrong_guess = ''
106+ correct_guess = ''
107+ anime_character = random .choice (characters )
108+ finish = False
109+ streaks = 0
110+
111+ while True :
112+ displayhangman (wrong_guess , correct_guess ,anime_character ,hangman_body )
113+ guess = guessTaken (wrong_guess + correct_guess )
114+ if guess in anime_character :
115+ correct_guess = correct_guess + guess
116+ complete = True
117+ for i in range (len (anime_character )):
118+ if anime_character [i ] not in correct_guess :
119+ complete = False
120+ break
121+ if complete :
122+ streaks = streaks + 1
123+ print (f'The Anime character is { anime_character } , You guessed it right' )
124+ print ('Winning Streaks:' ,streaks )
125+ finish = True
126+ else :
127+ wrong_guess = wrong_guess + guess
128+ if len (wrong_guess ) == len (hangman_body ) - 1 :
129+ displayhangman (hangman_body , wrong_guess , correct_guess ,anime_character )
130+ print (f'Oops!!...You are out of guesses, the anime character was { anime_character } ' )
131+ streaks = 0
132+ finish = True
133+
134+ if finish :
135+ if playagain ():
136+ wrong_guess = ''
137+ correct_guess = ''
138+ finish = False
139+ anime_character = random .choice (characters )
140+ else :
141+ print ("Thank you playing" )
142+ break
0 commit comments