我和我的朋友正在学校开展一个项目,我们理解为什么会出现错误,但我们无法看到我们在哪里犯了这个错误。我们确信我们已经计算好了,我们知道在索引中它从0开始但仍然是错误的。我们的任务是创建一个游戏,让玩家围绕7x7网格移动,但我们必须从我们存储在同一文件中的代码之外插入一些游戏消息。 P.S我们被允许寻求帮助。 这是代码请帮忙!:
import random
counter1 = 0
counter2 = 0
print("***********************************BOARD GAME**********************************")
print(" ")
print("***********************************GAME RULES**********************************")
print(" ")
print("----------------------------Game is for 2 players only-------------------------")
print(" ")
print(">The game board is a 10x5 board going up to 49")
print(" ")
print("40 41 42 43 44 45 46 47 48 49")
print("39 38 37 36 35 34 33 32 31 30")
print("20 21 22 23 24 25 26 27 28 29")
print("19 18 17 16 15 14 13 12 11 10")
print("0 1 2 3 4 5 6 7 8 9 ")
print(" ")
print(">The objective is to be the first player to reach space 49")
print(" ")
print(">There are 2 die, if you roll the same number twice, you will go back the number of spaces you rolled")
print(" ")
print(">If you land on spaces 27, 31 and 47, you will go back to space 24")
print(" ")
print(">Press ENTER to play")
input()
print("**********************************START GAME***********************************")
input()
print("Starting positions for both players = 0")
print(" ")
newfile=open("Game Messages.txt","r")
print(newfile.readlines()[0])
dice1 = random.randint(1,6)
print("dice 1 =",dice1)
dice2 = random.randint(1,6)
print("dice 2 =",dice2)
dicetotal = dice1 + dice2
print("dice total =",dicetotal)
if dice1 == dice2:
counter1 = counter1 - dicetotal
print(newfile.readlines()[1]) #This is one of the lines that is coming up as an error
else:
counter1 = counter1 + dicetotal
print("P1 space =",counter1)
if counter1 == 47:
counter1 = 24
print(newfile.readlines()[2])
if counter1 == 27:
counter1 = 24
print(newfile.readlines()[3])
if counter1 == 31:
counter1 = 24
print(newfile.readlines()[4])
if counter1 >= 49:
print(newfile.readlines()[5])
print("end game end game end game end game end game end game end game end game end game")
print("Press ENTER to exit the game")
exit()
input()
input()
newfile.close
newfile = open("Game Messages.txt.","r")
print(newfile.readlines()[6])
dice1 = random.randint(1,6)
print("dice 1 =",dice1)
dice2 = random.randint(1,6)
print("dice 2 =",dice2)
dicetotal = dice1 + dice2
print("dice total =",dicetotal)
if dice1 == dice2:
counter2 = counter2 - dicetotal
print(newfile.readlines()[7]) #This is one of the lines that is coming up as an error
else:
counter2 = counter2 + dicetotal
print("P2 space =",counter2)
if counter2 == 47:
counter2 = 24
print(newfile.readlines()[8])
if counter2 == 27:
counter2 = 24
print(newfile.readlines()[9])
if counter2 == 31:
counter2 = 24
print(newfile.readlines()[10])
if counter2 >= 49:
print(newfile.readlines()[11])
print("end game end game end game end game end game end game end game end game end game")
print("Press ENTER to exit the game")
exit()
input()
input()
newfile.close
答案 0 :(得分:0)
Actually the problem is getting the file contents from Game Messages.txt.
So, first the whole file contents need to be converted into list.
**Please follow this procedure in your program first**
with open('Game Messages.txt', 'r') as infile:
data = infile.read() # Read the contents of the file into memory.
# Return a list of the lines, breaking at line boundaries.
my_list = data.splitlines()
print (my_list) #It will give whole file contents as an array
#Eg : ['game message1', 'game message2', 'game message3', 'game message4', 'game message5']
print (my_list[3]) # It will display game message 4
So in your program
instead of
if dice1 == dice2:
counter2 = counter2 - dicetotal
print(newfile.readlines()[7]) #This is one of the lines that is coming up as an error
else:
counter2 = counter2 + dicetotal
it will be
if dice1 == dice2:
counter2 = counter2 - dicetotal
print(my_list[3]) #You need to give exact line number, in case 4th means it #will be my_list[3] as array index starts with 0 only
else:
counter2 = counter2 + dicetotal
Hope that helps