93 lines
3.1 KiB
Python
93 lines
3.1 KiB
Python
import firepup650 as fp
|
|
|
|
fp.replitCursor = fp.bcolors.REPLIT + "> " + fp.bcolors.RESET
|
|
|
|
who, cheat = fp.menu(
|
|
{
|
|
"I want to go first": (False, False),
|
|
"The computer can go first": (True, True),
|
|
"The computer can cheat, but I want to go first": (False, True),
|
|
"The computer can cheat and go first": (True, True),
|
|
"Actually I don't want to play at all": (-1, -1),
|
|
},
|
|
"Who goes first?",
|
|
)
|
|
|
|
if who == -1:
|
|
exit()
|
|
|
|
pScore, cScore = (0, 0)
|
|
|
|
|
|
def roll(doCheating):
|
|
if not doCheating:
|
|
return (fp.randint(1, 6),)
|
|
return (fp.randint(1, 6), fp.randint(1, 6))
|
|
|
|
|
|
def doRound(turn, canCheat, player, computer):
|
|
bank = 0
|
|
rollCounter = 0
|
|
cheatFlag = 0
|
|
if turn:
|
|
print("Computer's turn...")
|
|
shouldRoll = 1
|
|
while shouldRoll:
|
|
res = roll(canCheat)
|
|
if canCheat:
|
|
rollCounter += 1
|
|
print(f"Computer roll {rollCounter}:")
|
|
if res[0] == 1:
|
|
print(f"Computer rolled a 1 and lost it's bank")
|
|
break
|
|
bank += res[0]
|
|
rollCounter += 1
|
|
print(f"Computer rolled a {res[0]}, bank is now {bank}")
|
|
if res[1] == 1:
|
|
rollCounter -= 1
|
|
shouldRoll = 0
|
|
cheatFlag = 1
|
|
break
|
|
bank += res[1]
|
|
print(f"Computer roll {rollCounter}:")
|
|
print(f"Computer rolled a {res[1]}, bank is now {bank}")
|
|
shouldRoll = fp.randint(0, 1) if (bank+computer < 100) else 0
|
|
else:
|
|
rollCounter += 1
|
|
print(f"Computer roll {rollCounter}:")
|
|
if res[0] == 1:
|
|
print(f"Computer rolled a 1 and lost it's bank")
|
|
break
|
|
bank += res[0]
|
|
print(f"Computer rolled a {res[0]}, bank is now {bank}")
|
|
shouldRoll = fp.randint(0, 1) if (bank+computer < 100) else 0
|
|
if not shouldRoll:
|
|
print(
|
|
f"Computer stopped rolling after {rollCounter} roll(s), bank was {bank} points{' (!! CHEAT !!)' if cheatFlag else ''}"
|
|
)
|
|
computer = computer + bank
|
|
else:
|
|
print("Your turn!")
|
|
shouldRoll = 1
|
|
while shouldRoll:
|
|
rollCounter += 1
|
|
print(f"Your roll {rollCounter}")
|
|
res = roll(False)[0]
|
|
if res == 1:
|
|
print(f"You rolled a 1 and lost your bank")
|
|
break
|
|
bank += res
|
|
print(f"You rolled a {res}, bank is now {bank}")
|
|
shouldRoll = not fp.replitInput("Do you want to keep rolling? (Y|n)").lower().startswith("n")
|
|
if not shouldRoll:
|
|
print(
|
|
f"You stopped rolling after {rollCounter} roll(s), bank was {bank} points"
|
|
)
|
|
player = player + bank
|
|
return player, computer
|
|
|
|
|
|
while max(pScore, cScore) < 100:
|
|
pScore, cScore = doRound(who, cheat, pScore, cScore)
|
|
print(f"\nNew Scores:\nPlayer: {pScore}\nComputer: {cScore}\n")
|
|
who = not who
|