簡體   English   中英

如何將元素打印到 2 個空格的網格框中?

[英]How do I print an element into a grid box of 2 spaces?

我正在制作一個塔防策略游戲,類似於植物大戰僵屍。

到目前為止,我的代碼運行良好,但是我無法在網格內的空間中替換僵屍,同時將名稱顯示在 hp 上方,以便它適合框。

letter = ['A1', 'B1', 'C1', 'D1', 'E1', 'A2', 'B2', 'C2', 'D2', 'E2', 'A3', 'B3', 'C3', 'D3', 'E3']
field = [[' ', ' ', ' ', ' ', ' ', ' ', ' '.format(letter[0],letter[1], letter[2])],\
         [' ', ' ', ' ', ' ', ' ', ' ', ' '.format(letter[3],letter[4], letter[5])],\
         [' ', ' ', ' ', ' ', ' ', ' ', ' '.format(letter[6],letter[7], letter[8])],\
         [' ', ' ', ' ', ' ', ' ', ' ', ' '.format(letter[9],letter[10], letter[11])],\
         [' ', ' ', ' ', ' ', ' ', ' ', ' '.format(letter[12],letter[13], letter[14])]]

zombie = {'shortform': 'ZOMBI',
          'name': 'Zombie',
          'maxHP': 15,
          'min_damage': 3,
          'max_damage': 6,
          'moves' : 1,
          'reward': 2
          }

zcurrentHP = zombie ['maxHP']

def randomlane():
#zombie spawns once anywhere in the last lane.
    from random import randint
    for mob in range(1):
        c_x = randint(0, len(field)-1)
        c_y = randint((6), len(field[0])-1)
        z =  zombie['shortform'] + str(zcurrentHP) + '/' + str(zombie['maxHP'])
        field[c_x][c_y] = z
    return

def draw_field():
#format number horizontally above grid and letters vertically on left side of grid
    letters = ['A', 'B', 'C', 'D', 'E']
    numbers = [1, 2, 3]
    i = 0
    print("     %d     %d     %d" % (numbers[0], numbers[1],numbers[2]))

#printing the field
    for row in range(len(field)):
        print('  +-----+-----+-----+-----+-----+-----+-----+')
        print(letters[i], end = ' ')
        i += 1
        for col in range(len(field[0])):
            print('|', field[row][col], end = '   ')
        print('|')
        randomlane()
        for col in range(len(field[0])):
            print('  |', field[row][col], end = ' ')
        print('  |') 
    print('  +-----+-----+-----+-----+-----+-----+-----+')
    return

draw_field()

這是一個示例 output:

     1     2     3
  +-----+-----+-----+-----+-----+-----+-----+
A |     |     |     |     |     |     | ZOMBI15/15   |
  |     |     |     |     |     |     | ZOMBI15/15   |
  +-----+-----+-----+-----+-----+-----+-----+
B |     |     |     |     |     |     | ZOMBI15/15   |
  |     |     |     |     |     |     | ZOMBI15/15   |
  +-----+-----+-----+-----+-----+-----+-----+
C |     |     |     |     |     |     | ZOMBI15/15   |
  |     |     |     |     |     |     | ZOMBI15/15   |
  +-----+-----+-----+-----+-----+-----+-----+
D |     |     |     |     |     |     | ZOMBI15/15   |
  |     |     |     |     |     |     | ZOMBI15/15   |
  +-----+-----+-----+-----+-----+-----+-----+
E |     |     |     |     |     |     | ZOMBI15/15   |
  |     |     |     |     |     |     | ZOMBI15/15   |
  +-----+-----+-----+-----+-----+-----+-----+

但這就是我希望它看起來的樣子:

    1     2     3
 +-----+-----+-----+-----+-----+-----+-----+
A|     |     |     |     |     |     |     |
 |     |     |     |     |     |     |     |
 +-----+-----+-----+-----+-----+-----+-----+
B|     |     |     |     |     |     |ZOMBI|
 |     |     |     |     |     |     |15/15|
 +-----+-----+-----+-----+-----+-----+-----+
C|     |     |     |     |     |     |     |
 |     |     |     |     |     |     |     |
 +-----+-----+-----+-----+-----+-----+-----+
D|     |     |     |     |     |     |     |
 |     |     |     |     |     |     |     |
 +-----+-----+-----+-----+-----+-----+-----+
E|     |     |     |     |     |     |     |
 |     |     |     |     |     |     |     |
 +-----+-----+-----+-----+-----+-----+-----+

對於給您帶來的任何不便,我深表歉意。

好吧,如果它總是 5 和 5,那么答案很簡單:

    for row in range(len(field)):
        print('  +-----+-----+-----+-----+-----+-----+-----+')
        print(letters[i], end = ' ')
        i += 1
        for col in range(len(field[0])):
            print('|', field[row][col][:5], end = '   ')
        print('|')
        randomlane()
        for col in range(len(field[0])):
            print('  |', field[row][col][5:], end = ' ')
        print('  |') 
    print('  +-----+-----+-----+-----+-----+-----+-----+')
    return

暫無
暫無

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

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