mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-21 23:00:43 -08:00
Bug game added
This commit is contained in:
302
16_Bug/python/Bug.py
Normal file
302
16_Bug/python/Bug.py
Normal file
@@ -0,0 +1,302 @@
|
||||
import random
|
||||
|
||||
|
||||
def print_n_whitespaces(n: int):
|
||||
print(" "*n, end="")
|
||||
|
||||
|
||||
def print_n_newlines(n: int):
|
||||
for _ in range(n):
|
||||
print()
|
||||
|
||||
|
||||
def print_feelers(n_feelers, is_player=True):
|
||||
for _ in range(4):
|
||||
print_n_whitespaces(10)
|
||||
for _ in range(n_feelers):
|
||||
print("A " if is_player else "F ", end="")
|
||||
print()
|
||||
|
||||
|
||||
def print_head():
|
||||
print(" HHHHHHH")
|
||||
print(" H H")
|
||||
print(" H O O H")
|
||||
print(" H H")
|
||||
print(" H V H")
|
||||
print(" HHHHHHH")
|
||||
|
||||
|
||||
def print_neck():
|
||||
print(" N N")
|
||||
print(" N N")
|
||||
|
||||
|
||||
def print_body(has_tail=False):
|
||||
print(" BBBBBBBBBBBB")
|
||||
print(" B B")
|
||||
print(" B B")
|
||||
print("TTTTTB B") if has_tail else ""
|
||||
print(" BBBBBBBBBBBB")
|
||||
|
||||
|
||||
def print_legs(n_legs):
|
||||
for _ in range(2):
|
||||
print_n_whitespaces(5)
|
||||
for _ in range(n_legs):
|
||||
print(" L", end="")
|
||||
print()
|
||||
|
||||
|
||||
print_n_whitespaces(34)
|
||||
print("BUG")
|
||||
print_n_whitespaces(15)
|
||||
print("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY")
|
||||
print_n_newlines(3)
|
||||
|
||||
print("THE GAME BUG")
|
||||
print("I HOPE YOU ENJOY THIS GAME.")
|
||||
print()
|
||||
Z = input("DO YOU WANT INSTRUCTIONS? ")
|
||||
if Z != "NO":
|
||||
print("THE OBJECT OF BUG IS TO FINISH YOUR BUG BEFORE I FINISH")
|
||||
print("MINE. EACH NUMBER STANDS FOR A PART OF THE BUG BODY.")
|
||||
print("I WILL ROLL THE DIE FOR YOU, TELL YOU WHAT I ROLLED FOR YOU")
|
||||
print("WHAT THE NUMBER STANDS FOR, AND IF YOU CAN GET THE PART.")
|
||||
print("IF YOU CAN GET THE PART I WILL GIVE IT TO YOU.")
|
||||
print("THE SAME WILL HAPPEN ON MY TURN.")
|
||||
print("IF THERE IS A CHANGE IN EITHER BUG I WILL GIVE YOU THE")
|
||||
print("OPTION OF SEEING THE PICTURES OF THE BUGS.")
|
||||
print("THE NUMBERS STAND FOR PARTS AS FOLLOWS:")
|
||||
table = [
|
||||
["NUMBER", "PART", "NUMBER OF PART NEEDED"],
|
||||
["1", "BODY", "1"],
|
||||
["2", "NECK", "1"],
|
||||
["3", "HEAD", "1"],
|
||||
["4", "FEELERS", "2"],
|
||||
["5", "TAIL", "1"],
|
||||
["6", "LEGS", "6"]
|
||||
]
|
||||
for row in table:
|
||||
print("{:<16}{:<16}{:<20}".format(row[0], row[1], row[2]))
|
||||
print_n_newlines(2)
|
||||
|
||||
A = 0
|
||||
B = 0
|
||||
H = 0
|
||||
L = 0
|
||||
N = 0
|
||||
P = 0
|
||||
Q = 0
|
||||
R = 0 # NECK
|
||||
S = 0 # FEELERS
|
||||
T = 0
|
||||
U = 0
|
||||
V = 0
|
||||
Y = 0
|
||||
|
||||
while not (Y > 0):
|
||||
Z = random.randint(1, 6)
|
||||
print()
|
||||
C = 1
|
||||
print("YOU ROLLED A", Z)
|
||||
if Z == 1:
|
||||
print("1=BODY")
|
||||
if B == 1:
|
||||
print("YOU DO NOT NEED A BODY.")
|
||||
# goto 970
|
||||
else:
|
||||
print("YOU NOW HAVE A BODY.")
|
||||
B = 1
|
||||
C = 0
|
||||
# goto 970
|
||||
elif Z == 2:
|
||||
print("2=NECK")
|
||||
if N == 1:
|
||||
print("YOU DO NOT NEED A NECK.")
|
||||
# goto 970
|
||||
elif B == 0:
|
||||
print("YOU DO NOT HAVE A BODY.")
|
||||
# goto 970
|
||||
else:
|
||||
print("YOU NOW HAVE A NECK.")
|
||||
N = 1
|
||||
C = 0
|
||||
# goto 970
|
||||
elif Z == 3:
|
||||
print("3=HEAD")
|
||||
if N == 0:
|
||||
print("YOU DO NOT HAVE A NECK.")
|
||||
# goto 970
|
||||
elif H == 1:
|
||||
print("YOU HAVE A HEAD.")
|
||||
# goto 970
|
||||
else:
|
||||
print("YOU NEEDED A HEAD.")
|
||||
H = 1
|
||||
C = 0
|
||||
# goto 970
|
||||
elif Z == 4:
|
||||
print("4=FEELERS")
|
||||
if H == 0:
|
||||
print("YOU DO NOT HAVE A HEAD.")
|
||||
# goto 970
|
||||
elif A == 2:
|
||||
print("YOU HAVE TWO FEELERS ALREADY.")
|
||||
# goto 970
|
||||
else:
|
||||
print("I NOW GIVE YOU A FEELER.")
|
||||
A = A + 1
|
||||
C = 0
|
||||
# goto 970
|
||||
elif Z == 5:
|
||||
print("5=TAIL")
|
||||
if B == 0:
|
||||
print("YOU DO NOT HAVE A BODY.")
|
||||
# goto 970
|
||||
elif T == 1:
|
||||
print("YOU ALREADY HAVE A TAIL.")
|
||||
# goto 970
|
||||
else:
|
||||
print("I NOW GIVE YOU A TAIL.")
|
||||
T = T + 1
|
||||
C = 0
|
||||
# goto 970
|
||||
elif Z == 6:
|
||||
print("6=LEG")
|
||||
if L == 6:
|
||||
print("YOU HAVE 6 FEET ALREADY.")
|
||||
# goto 970
|
||||
elif B == 0:
|
||||
print("YOU DO NOT HAVE A BODY.")
|
||||
# goto 970
|
||||
else:
|
||||
L = L + 1
|
||||
C = 0
|
||||
print(f"YOU NOW HAVE {L} LEGS")
|
||||
# goto 970
|
||||
|
||||
# 970
|
||||
X = random.randint(1, 6)
|
||||
print()
|
||||
for delay in range(2000):
|
||||
pass
|
||||
|
||||
print("I ROLLED A", X)
|
||||
if X == 1:
|
||||
print("1=BODY")
|
||||
if P == 1:
|
||||
print("I DO NOT NEED A BODY.")
|
||||
# goto 1630
|
||||
else:
|
||||
print("I NOW HAVE A BODY.")
|
||||
C = 0
|
||||
P = 1
|
||||
# goto 1630
|
||||
elif X == 2:
|
||||
print("2=NECK")
|
||||
if Q == 1:
|
||||
print("I DO NOT NEED A NECK.")
|
||||
# goto 1630
|
||||
elif P == 0:
|
||||
print("I DO NOT HAVE A BODY.")
|
||||
# goto 1630
|
||||
else:
|
||||
print("I NOW HAVE A NECK.")
|
||||
Q = 1
|
||||
C = 0
|
||||
# goto 1630
|
||||
elif X == 3:
|
||||
print("3=HEAD")
|
||||
if Q == 0:
|
||||
print("I DO NOT HAVE A NECK.")
|
||||
# goto 1630
|
||||
elif R == 1:
|
||||
print("I HAVE A HEAD.")
|
||||
# goto 1630
|
||||
else:
|
||||
print("I NEEDED A HEAD.")
|
||||
R = 1
|
||||
C = 0
|
||||
# goto 1630
|
||||
elif X == 4:
|
||||
print("4=FEELERS")
|
||||
if R == 0:
|
||||
print("I DO NOT HAVE A HEAD.")
|
||||
# goto 1630
|
||||
elif S == 2:
|
||||
print("I HAVE TWO FEELERS ALREADY.")
|
||||
# goto 1630
|
||||
else:
|
||||
print("I GET A FEELER.")
|
||||
S = S + 1
|
||||
C = 0
|
||||
# goto 1630
|
||||
elif X == 5:
|
||||
print("5=TAIL")
|
||||
if P == 0:
|
||||
print("I DO NOT HAVE A BODY.")
|
||||
# goto 1630
|
||||
elif U == 1:
|
||||
print("I ALREADY HAVE A TAIL.")
|
||||
# goto 1630
|
||||
else:
|
||||
print("I NOW HAVE A TAIL.")
|
||||
U = 1
|
||||
C = 0
|
||||
# goto 1630
|
||||
elif X == 6:
|
||||
print("6=LEG")
|
||||
if V == 6:
|
||||
print("I HAVE 6 FEET.")
|
||||
# goto 1630
|
||||
elif P == 0:
|
||||
print("I DO NOT HAVE A BODY.")
|
||||
# goto 1630
|
||||
else:
|
||||
V = V + 1
|
||||
C = 0
|
||||
print(f"I NOW HAVE {V} LEGS")
|
||||
# goto 1630
|
||||
|
||||
# 1630
|
||||
if (A == 2) and (T == 1) and (L == 6):
|
||||
print("YOUR BUG IS FINISHED.")
|
||||
Y = Y + 1
|
||||
if (S == 2) and (P == 1) and (V == 6):
|
||||
print("MY BUG IS FINISHED.")
|
||||
Y = Y + 2
|
||||
if C == 1:
|
||||
continue
|
||||
Z = input("DO YOU WANT THE PICTURES? ")
|
||||
if Z != "NO":
|
||||
print("*****YOUR BUG*****")
|
||||
print_n_newlines(2)
|
||||
if A != 0:
|
||||
print_feelers(A, is_player=True)
|
||||
if H != 0:
|
||||
print_head()
|
||||
if N != 0:
|
||||
print_neck()
|
||||
if B != 0:
|
||||
print_body(True) if T == 1 else print_body(False)
|
||||
if L != 0:
|
||||
print_legs(L)
|
||||
print_n_newlines(4)
|
||||
print("*****MY BUG*****")
|
||||
print_n_newlines(3)
|
||||
if S != 0:
|
||||
print_feelers(S, is_player=False)
|
||||
if R == 1:
|
||||
print_head()
|
||||
if Q != 0:
|
||||
print_neck()
|
||||
if P != 0:
|
||||
print_body(True) if U == 1 else print_body(False)
|
||||
if V != 0:
|
||||
print_legs(V)
|
||||
|
||||
if Y != 0:
|
||||
break
|
||||
|
||||
print("I HOPE YOU ENJOYED THE GAME, PLAY IT AGAIN SOON!!")
|
||||
Reference in New Issue
Block a user