Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
regarding dice game
#1
how do I fix an error for this bit of code, I'm kind of new and look here for help. if you can help me I would appreciate it. the issue is it keeps saying player_1 isn't defined I don't know what to do. this function is for the actual main game for my program' any help is appreciated


def roll():
points = 0
die1 = random.randint(1,6)
die2 = random.randint(1,6)
dietotal = die1 + die2
points = points + dietotal

if dietotal % 2 == 0:
points = points + 10

else:
points = points - 5

if die1 == die2:
die3 = random.randint(1,6)
points = points +die3

return(points)

for i in range(1,5):
Player1Points += roll()
print('After this round ',player_1, 'you now have: ',Player1Points,' Points')
time.sleep(1)
Player2Points += roll()
print('After this round ',player_2, 'you now have: ',Player2Points,' Points')
time.sleep(1)

if Player1Points == Player2Points:
while Player1Tiebreaker == Player2Tiebreaker:
Player1Tiebreaker = random.randint(1,6)
Player2Tiebreaker = random.randint(1,6)

if Player1Tiebreaker > Player2Tiebreaker:
Player2Points = 0
elif Player2Tiebreaker > Player1Tiebreaker:
Player1Points = 0



if Player1Points>Player2Points:
Winner_Points = Player1Points
winner_User = player_1
winner = (Winner_Points, player_1)
elif Player2Points>Player1Points:
Winner_Points = Player2Points
winner = (Winner_Points, player_2)
winner_User = player_2

print('\nWell done, ', winner_User,' you won with ',Winner_Points,' Point\n\n')


leaderboard1 = "{}:{}".format(Winner_Points,winner_User)
with open ("Leaderboard.txt", "a") as file:
file.write("\n")
file.write(leaderboard1)


f = open('Leaderboard.txt', 'r')
leaderboard = [line.replace('\n','') for line in f.readlines()]
f.close()

leaderboard.sort(reverse=True)

with open('Leaderboard.txt', 'w') as f:
for item in leaderboard:
f.write("%s\n" % item)

print("TOP 5 SCORES:")
with open("Leaderboard.txt", "r") as f:
counter = 0
N = 1
for line in f:
head,sep,tail = line.partition(":")
print("Place No.{}\nUsername: {}Score: {}\n".format(N,tail,head))
N = N + 1
counter += 1
if counter == 5: break
buran write Feb-11-2021, 06:27 AM:
Please, don't remove post content.

Also please, use proper tags when post code, traceback, output, etc.
See BBcode help for more info.
Reply
#2
You just forgot to initialize a few variables. Try adding these to your code :

Player1Points = 0
Player2Points = 0
player_1 = 'Foo'
player_2 = 'Bar'
This much works for me :

import random 
import time

def roll():
	points = 0
	die1 = random.randint(1,6)
	die2 = random.randint(1,6)
	dietotal = die1 + die2
	points = points + dietotal
	if dietotal % 2 == 0:
		points = points + 10
	else:
		points = points - 5
	if die1 == die2:
		die3 = random.randint(1,6)
		points = points +die3
	return(points)

Player1Points = 0
Player2Points = 0
player_1 = 'Foo'
player_2 = 'Bar'

for i in range(1,5):
	Player1Points += roll()
	print('After this round ',player_1, 'you now have: ',Player1Points,' Points')
	time.sleep(1)
	Player2Points += roll()
	print('After this round ',player_2, 'you now have: ',Player2Points,' Points')
	time.sleep(1)

if Player1Points == Player2Points:
	while Player1Tiebreaker == Player2Tiebreaker:
		Player1Tiebreaker = random.randint(1,6)
		Player2Tiebreaker = random.randint(1,6)
		if Player1Tiebreaker > Player2Tiebreaker:
			Player2Points = 0
		elif Player2Tiebreaker > Player1Tiebreaker:
			Player1Points = 0



if Player1Points>Player2Points:
	Winner_Points = Player1Points
	winner_User = player_1
	winner = (Winner_Points, player_1)
elif Player2Points>Player1Points:
	Winner_Points = Player2Points
	winner = (Winner_Points, player_2)
	winner_User = player_2

print('\nWell done, ', winner_User,' you won with ',Winner_Points,' Point\n\n')
Reply
#3
thanks so much!
but i cant specify the players names because the user inputs it so how would I do that ? sorry my englsh isn't very good
Reply
#4
(Feb-10-2021, 09:55 PM)hola123 Wrote: but i cant specify the players names because the user inputs it so how would I do that ? sorry my englsh isn't very good

player_1 = input ('Player one, what is your name? ')
player_2 = input ('Player two, what is your name? ')
Reply
#5
thank you very much
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Need some help with Dice Game for daughter in school OptX 2 1,995 Feb-12-2021, 08:43 PM
Last Post: BashBedlam
  Two dice Game of Pig help elliemehl 2 4,299 Feb-14-2019, 01:19 AM
Last Post: woooee
  Two Dice Pig Game in Python 3.6 Help inspired22 4 11,758 Oct-10-2018, 01:17 PM
Last Post: ichabod801
  help with while loop on dice game sean5 2 4,268 Dec-14-2017, 07:24 PM
Last Post: nilamo
  dice game im stuck sylerr 3 4,515 May-12-2017, 10:50 PM
Last Post: ichabod801

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020