11import random
22import time
33
4+
45def main ():
56 print ("Welcome Hand Cricket" )
67 print ("You will be playing against the computer" )
78 try :
89 overs = int (input ("Enter the number of overs (1-10): " ))
910 user_choice = input ("Enter 1 to bat first, 2 to bowl first: " )
1011 difficulty = int (input ("Select difficulty level (1-Easy, 2-Medium, 3-Hard): " ))
11-
12+
1213 user_score , computer_score = play_game (overs , user_choice , difficulty )
13-
14+
1415 who_won (user_score , computer_score )
1516 except ValueError :
1617 print ("Invalid input, exiting game" )
1718
19+
1820def play_game (overs , user_choice , difficulty = 1 ):
1921 user_score = 0
2022 computer_score = 0
2123 user_wickets = 10
2224 computer_wickets = 10
23-
25+
2426 print ("\n Match Summary" )
2527 print ("=============" )
2628 print (f"Overs: { overs } " )
27-
29+
2830 for over in range (overs ):
29- print (f"\n Over { over + 1 } , User: { user_wickets } wickets left, Computer: { computer_wickets } wickets left" )
30-
31- if user_choice == '1' :
31+ print (
32+ f"\n Over { over + 1 } , User: { user_wickets } wickets left, Computer: { computer_wickets } wickets left"
33+ )
34+
35+ if user_choice == "1" :
3236 user_score , user_wickets = user_bat (user_score , user_wickets , over )
33-
37+
3438 if computer_wickets > 0 :
35- computer_score , computer_wickets = computer_bat (computer_score , computer_wickets , difficulty , over )
39+ computer_score , computer_wickets = computer_bat (
40+ computer_score , computer_wickets , difficulty , over
41+ )
3642 else :
3743 if computer_wickets > 0 :
38- computer_score , computer_wickets = computer_bat (computer_score , computer_wickets , difficulty , over )
39-
44+ computer_score , computer_wickets = computer_bat (
45+ computer_score , computer_wickets , difficulty , over
46+ )
47+
4048 user_score , user_wickets = user_bat (user_score , user_wickets , over )
41-
49+
4250 display_scoreboard (user_score , computer_score , over )
4351
4452 return user_score , computer_score
4553
54+
4655def user_bat (user_score , user_wickets , over ):
4756 print ("You are batting" )
4857 balls = 0
4958 while balls < 6 and user_wickets > 0 :
50- user_runs = int (input (f"Over { over + 1 } , Ball { balls + 1 } : Enter your shot (1-6): " ))
59+ user_runs = int (
60+ input (f"Over { over + 1 } , Ball { balls + 1 } : Enter your shot (1-6): " )
61+ )
5162 computer_runs = random .randint (1 , 6 )
52-
63+
5364 print (f"You chose { user_runs } , Computer chose { computer_runs } " )
54-
65+
5566 if user_runs == computer_runs :
5667 print ("You are out!" )
5768 user_wickets -= 1
@@ -61,9 +72,10 @@ def user_bat(user_score, user_wickets, over):
6172 user_score += user_runs
6273 print (f"Your score is { user_score } " )
6374 balls += 1
64-
75+
6576 return user_score , user_wickets
6677
78+
6779def computer_bat (computer_score , computer_wickets , difficulty = 1 , over = None ):
6880 print ("Computer is batting" )
6981 balls = 0
@@ -74,11 +86,15 @@ def computer_bat(computer_score, computer_wickets, difficulty=1, over=None):
7486 computer_runs = random .randint (1 , 5 )
7587 else :
7688 computer_runs = random .randint (1 , 6 )
77-
78- user_runs = int (input (f"Computer is batting. Over { over + 1 } , Ball { balls + 1 } : Enter your delivery (1-6): " ))
79-
89+
90+ user_runs = int (
91+ input (
92+ f"Computer is batting. Over { over + 1 } , Ball { balls + 1 } : Enter your delivery (1-6): "
93+ )
94+ )
95+
8096 print (f"You chose { user_runs } , Computer chose { computer_runs } " )
81-
97+
8298 if user_runs == computer_runs :
8399 print ("Computer is out!" )
84100 computer_wickets -= 1
@@ -88,16 +104,18 @@ def computer_bat(computer_score, computer_wickets, difficulty=1, over=None):
88104 computer_score += computer_runs
89105 print (f"Computer's score is { computer_score } " )
90106 balls += 1
91-
107+
92108 return computer_score , computer_wickets
93109
110+
94111def display_scoreboard (user_score , computer_score , over ):
95112 print ("\n Scoreboard" )
96113 print ("==========" )
97114 print (f"Over { over + 1 } :" )
98115 print (f"You: { user_score } runs" )
99116 print (f"Computer: { computer_score } runs" )
100117
118+
101119def who_won (user_score , computer_score ):
102120 print ("\n Match Result" )
103121 print ("============" )
@@ -111,5 +129,6 @@ def who_won(user_score, computer_score):
111129 print ("The match ended in a draw" )
112130 print ("Thank you for playing and have a good day :) " )
113131
132+
114133if __name__ == "__main__" :
115134 main ()
0 commit comments