Мой код прекрасно работает внутри оболочки Python, но ничего не отображается при запуске его в коде Visual Studio - PullRequest
0 голосов
/ 27 мая 2019

Код работает внутри оболочки Python, но не внутри терминала VS Code.Может кто-нибудь, пожалуйста, помогите мне, я собираюсь сходить с ума.

I have tested my code on several ide and it works fine, just on VS 

board = ["  " for i in range(9)]


def print_board():
    row1 = "| {} | {} | {} |".format(board[0], board[1], board[2])
    row2 = "| {} | {} | {} |".format(board[3], board[4], board[5])
    row3 = "| {} | {} | {} |".format(board[6], board[7], board[8])

    print(row1)
    print(row2)
    print(row3)
    print()


def player_move(icon):

    if icon == "X":
        number = 1
    elif icon == "O":
        number = 2

    print("Your turn player {}".format(number))

    choice = int(input("Enter your move (1-9): ").strip())
    if board[choice - 1] == "  ":
        board[choice - 1] = icon
    else:
        print()
        print("That space is taken!")

Мне нужно увидеть созданную мной доску, она просто ничего не показывает внутри кода VS

Это простовнутри терминала ничего не отображается и я не получаю никаких ошибок.

1 Ответ

0 голосов
/ 27 мая 2019

пока вы определяете свои операторы печати в print_board(), вы никогда не вызываете его.

Просто добавьте

print_board()

до конца и там, где это уместно.


чтобы ваш код мог выглядеть примерно так:

import numpy as np

board = [" " for i in range(9)]
icons = {1:"X", 2:"O"}

def print_board(remove=0):
    if remove > 0:
        print('\x1b[1A\x1b[2K'*remove)
    boardString = "| {} | {} | {} |\n"*3
    print(boardString.format(*board))


def player_move(_turn):
    player = np.mod(_turn,2)+1
    print("Your turn player {}".format(player))

    while True:
        choice = int(input("Enter your move (1-9): "))
        if board[choice - 1] == " ":
            board[choice - 1] = icons[player]
            break
        else:
            print('\x1b[1A\x1b[2K'*3)
            print("That space is taken!")

    print_board(7)

print_board()
for turn in range(9):
    player_move(turn)

| X | O | X |
| O |   |   |
|   |   |   |

Your turn player 1
Enter your move (1-9): 

некоторые заметки:

  • Как показано выше, вы можете заменить последний отпечаток платы и командной строки, используя коды VT100 для перехода вверх по строке (\x1b[1A) и удаления строки (\x1b[2K) перед печатью. заново
  • строки можно умножать (повторять) как списки
In [1]: print('a'*3)                                                                      
> aaa
  • вы можете добавить \n для разрыва строки в строках вместо вызова print() несколько раз
In [25]: print('a\nb')                                                              
> a
> b
  • вы можете распаковать итерируемые переменные (списки, кортежи ..), используя * или **
yourDict = {'a':3, 'b':4}
yourList = [1, 2]

yourFun(*yourList, **yourDict )
# is equvivalent to:
yourFun(1, 2, a=3, b=4 )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...