簡體   English   中英

無法在播放器上標記播放器

[英]Can't Mark Player on Board

我正在嘗試創建游戲,但是在使用棋手的當前得分作為創建棋盤游戲的列表中的索引時,很難獲得將玩家的標記顯示在棋盤上的信息。

class board():
    def __init__(self):
        self.board = [36,35,34,33,32,31,
                      25,26,27,28,29,30,
                      24,23,22,21,20,19,
                      13,14,15,16,17,18,
                      12,11,10,9,8,7,
                      1,2,3,4,5,6]

        self.playerscore = 0

    def make_grid(self):
             print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[35],self.board[34],self.board[33],self.board[32],self.board[31], self.board[30]))
    print("|          |           |         |   C3      |   L3      |        |")       
    print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[24],self.board[25],self.board[26],self.board[27],self.board[28], self.board[29]))
    print("|          |   L4      |         |   C2      |           |        |")
    print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[23],self.board[22],self.board[21],self.board[20],self.board[19], self.board[18],))
    print("|   L4     |   C1      |   C3    |   L2      |   C2      |        |")
    print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[12],self.board[13],self.board[14],self.board[15],self.board[16], self.board[17],))
    print("|          |           |   L1    |           |           |        |")
    print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[11],self.board[10],self.board[9],self.board[8],self.board[7], self.board[6],))
    print("|          |   C1      |         |           |    L2     |        |")
    print('-------------------------------------------------------------------')
    print("|  %3s     |  %3s      |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[0],self.board[1],self.board[2],self.board[3],self.board[4], self.board[5],))
    print("|          |    L1     |         |           |           |        |")
    print('-------------------------------------------------------------------')

    def playermover(self):
        while self.playerscore < 36

            dice = input("Enter 1 to roll:")
            if dice == 1:
                self.playerscore = self.playerscore + randint(1,6)
                self.board[self.playerscore] = 'P'
            self.make_grid()

當我打電話給班級時,會出現游戲板和輸入內容,但是每當我按1擲骰子時,我只會得到同一板,而沒有標記玩家的位置。

input返回字符串,而不是整數。 因此,您有兩種選擇。

比較類似以下字符串:

dice = input("Enter 1 to roll:")
if dice == '1':

或轉換為整數:

dice = int(input("Enter 1 to roll:"))
if dice == 1:

您沒有(或至少顯示了您的) from random import randint

正如其他人所說,將輸入轉換為int或與字符串進行比較。

您永遠不會實例化該類或調用方法。

您使板子設置的過程變得過於復雜。

當玩家離開該空間時,您還需要將板單元設置回正確的數字。

from random import randint

FINALSCORE = 36
class board():
    def __init__(self):
        self.board = [i+1 for i in range(36)]

        self.playerscore = 0
        self.gameover = False

    def make_grid(self):
        print('-------------------------------------------------------------------')
        print("|  %3s     |  %3s      |  %3s    |  %3s/C3   |  %3s/L3   |  %3s   |" % (self.board[35],self.board[34],self.board[33],self.board[32],self.board[31], self.board[30]))
        print('-------------------------------------------------------------------')
        print("|  %3s     |  %3s/L4   |  %3s    |  %3s/C2   |  %3s      |  %3s   |" % (self.board[24],self.board[25],self.board[26],self.board[27],self.board[28], self.board[29]))
        print('-------------------------------------------------------------------')
        print("|  %3s/L4  |  %3s/C1   |  %3s/C3 |  %3s/L2   |  %3s/C2   |  %3s   |" % (self.board[23],self.board[22],self.board[21],self.board[20],self.board[19], self.board[18],))
        print('-------------------------------------------------------------------')
        print("|  %3s     |  %3s      |  %3s/L1 |  %3s      |  %3s      |  %3s   |" % (self.board[12],self.board[13],self.board[14],self.board[15],self.board[16], self.board[17],))
        print('-------------------------------------------------------------------')
        print("|  %3s     |  %3s/C1   |  %3s    |  %3s      |  %3s/L2   |  %3s   |" % (self.board[11],self.board[10],self.board[9],self.board[8],self.board[7], self.board[6],))
        print('-------------------------------------------------------------------')
        print("|  %3s     |  %3s/L1   |  %3s    |  %3s      |  %3s      |  %3s   |" % (self.board[0],self.board[1],self.board[2],self.board[3],self.board[4], self.board[5],))
        print('-------------------------------------------------------------------')

    def playermover(self):
        dice = input("Enter 1 to roll:")
        if dice == '1':
            roll = randint(1,6)
            print(roll)
            if self.playerscore:
                self.board[self.playerscore-1] = self.playerscore 
            self.playerscore += roll
            if self.playerscore > FINALSCORE: self.playerscore = FINALSCORE
            if self.playerscore == FINALSCORE: self.gameover = True
            self.board[self.playerscore - 1] = 'P'
            print(self.playerscore)
        self.make_grid()


game = board()
game.make_grid()
while not game.gameover:
    game.playermover()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM