mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-23 07:29:02 -08:00
Bullseye added
This commit is contained in:
100
18_Bullseye/python/Bullseye.py
Normal file
100
18_Bullseye/python/Bullseye.py
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
def print_n_whitespaces(n: int):
|
||||||
|
print(" "*n, end="")
|
||||||
|
|
||||||
|
|
||||||
|
def print_n_newlines(n: int):
|
||||||
|
for _ in range(n):
|
||||||
|
print()
|
||||||
|
|
||||||
|
print_n_whitespaces(32)
|
||||||
|
print("BULLSEYE")
|
||||||
|
print_n_whitespaces(15)
|
||||||
|
print("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY")
|
||||||
|
print_n_newlines(3)
|
||||||
|
print("IN THIS GAME, UP TO 20 PLAYERS THROW DARTS AT A TARGET")
|
||||||
|
print("WITH 10, 20, 30, AND 40 POINT ZONES. THE OBJECTIVE IS")
|
||||||
|
print("TO GET 200 POINTS.")
|
||||||
|
print()
|
||||||
|
print("THROW",end="");print_n_whitespaces(20);print("DESCRIPTION", end="");print_n_whitespaces(45);print("PROBABLE SCORE")
|
||||||
|
print(" 1",end="");print_n_whitespaces(20);print("FAST OVERARM",end="");print_n_whitespaces(45);print("BULLSEYE OR COMPLETE MISS")
|
||||||
|
print(" 2",end="");print_n_whitespaces(20);print("CONTROLLED OVERARM",end="");print_n_whitespaces(45);print("10, 20 OR 30 POINTS")
|
||||||
|
print(" 3",end="");print_n_whitespaces(20);print("UNDERARM",end="");print_n_whitespaces(45);print("ANYTHING")
|
||||||
|
print()
|
||||||
|
|
||||||
|
M = 0
|
||||||
|
R = 0
|
||||||
|
|
||||||
|
W = {}
|
||||||
|
for I in range(1, 11):
|
||||||
|
W[I] = 0
|
||||||
|
|
||||||
|
S = {}
|
||||||
|
for I in range(1, 21):
|
||||||
|
S[I] = 0
|
||||||
|
|
||||||
|
N = int(input("HOW MANY PLAYERS? "))
|
||||||
|
A = {}
|
||||||
|
for I in range(1, N+1):
|
||||||
|
Name = input("NAME OF PLAYER #")
|
||||||
|
A[I] = Name
|
||||||
|
|
||||||
|
while M == 0:
|
||||||
|
R = R + 1
|
||||||
|
print()
|
||||||
|
print(f"ROUND {R}---------")
|
||||||
|
for I in range(1, N+1):
|
||||||
|
print()
|
||||||
|
while True:
|
||||||
|
T = int(input(f"{A[I]}'S THROW? "))
|
||||||
|
if T < 1 or T > 3:
|
||||||
|
print("INPUT 1, 2, OR 3!")
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
if T == 1:
|
||||||
|
P1=.65
|
||||||
|
P2=.55
|
||||||
|
P3=.5
|
||||||
|
P4=.5
|
||||||
|
elif T == 2:
|
||||||
|
P1=.99
|
||||||
|
P2=.77
|
||||||
|
P3=.43
|
||||||
|
P4=.01
|
||||||
|
elif T == 3:
|
||||||
|
P1=.95
|
||||||
|
P2=.75
|
||||||
|
P3=.45
|
||||||
|
P4=.05
|
||||||
|
U = random.random()
|
||||||
|
if U >= P1:
|
||||||
|
print("BULLSEYE!! 40 POINTS!")
|
||||||
|
B = 40
|
||||||
|
elif U >= P2:
|
||||||
|
print("30-POINT ZONE!")
|
||||||
|
B = 30
|
||||||
|
elif U >= P3:
|
||||||
|
print("20-POINT ZONE")
|
||||||
|
B = 20
|
||||||
|
elif U >= P4:
|
||||||
|
print("WHEW! 10 POINTS.")
|
||||||
|
B = 10
|
||||||
|
else:
|
||||||
|
print("MISSED THE TARGET! TOO BAD.")
|
||||||
|
B = 0
|
||||||
|
S[I] = S[I] + B
|
||||||
|
print(f"TOTAL SCORE = {S[I]}")
|
||||||
|
for I in range(1, N+1):
|
||||||
|
if S[I] > 200:
|
||||||
|
M = M+1
|
||||||
|
W[M] = I
|
||||||
|
|
||||||
|
print()
|
||||||
|
print("WE HAVE A WINNER!!")
|
||||||
|
print()
|
||||||
|
for I in range(1, M+1):
|
||||||
|
print(f"{A[W[I]]} SCORED {S[W[I]]} POINTS.")
|
||||||
|
print()
|
||||||
|
print("THANKS FOR THE GAME.")
|
||||||
Reference in New Issue
Block a user