2016-12-04 2 views
0

Я начинаю программировать на питоне. Мне нужно сделать игру Tic Tac Toe, но где пользователь может ввести количество X и Y.Как n после количества времени X

Это мой код:

def printboards(): 
    board_s1 = " _ " 
    board_s2 = "| |" 
    board_s3 = " _ " 
    backspace = ("\n") 
    print board_s1 
    print board_s2 
    print board_s3 
    return 
boardX = raw_input("How many X boards do you want? (insert 1 more than you want) > ") 
boardY = raw_input("How many Y boards do you want? (insert 1 more than you want) > ") 
for xx in range(1,int(boardX)): 
    printboards() 
    for yy in range(1,int(boardY)): 
     printboards() 

Но каждый раз, когда я запускаю программу, я получаю это:

enter image description here

И моя вторая проблема заключается в том, что если я вход 3 в BoardX и BoardY Я получаю всего 6 ящиков, а не 3x3.

пожалуйста, помогите

ответ

0
один

Добро пожаловать в программирование на питоне. Проблема с новой строкой заключается в том, что каждый print выполняется в новой строке. Поэтому в вашем случае, если вы назовете printboards() несколько раз, он будет рисовать все поля под другим.

Вы получаете только 6 ящиков, так как функция питона range() использует 0-индекс означает, что он начинает отсчет с 0. Если вы будете использовать range(0,int(boardX)) и range(0,int(boardY)) это даст вам нужное количество коробок. Однако, если вы хотите начать с 0, вы просто отбрасываете 0 и используете range(int(boardX)).

Если вы используете функцию, чтобы сделать доску, просто дайте ему сделать всю вещь:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
#The function now takes the dimensions of the board in x and y as arguments 
def printboards(x,y): 
    # This results in y rows of boxes 
    for i in range(y): 
     # with x * "some text" you can multiply text 
     print x*" _ " 
     print x*"| | " 
     print x*" ‾ " 

boardX = raw_input("How many X boards do you want? > ") 
boardY = raw_input("How many Y boards do you want? > ") 
printboards(int(boardX), int(boardY)) 

И еще одно: я также добавил # -*- coding: utf-8 -*-, потому что я использовал специальный символ для нижней части коробка.

Надеюсь, что смогу помочь.

+0

Благодарим за помощь, но когда я загружаю программу вместо нижней части коробки, у меня есть тА╛ и я добавил # - * - кодирование: utf-8 - * - – Telep0rter

+0

Возможно, это проблема с копией. Просто Google «overline» и скопируйте его снова из статьи Википедии в скрипт. – CDe

0

Понял работать путем изменения функции передать параметр для контроля ширины.

def printboards(x): board_s1 = " _ " * x board_s2 = "| |" * x board_s3 = " - " * x backspace = ("\n") print board_s1 print board_s2 print board_s3

Удалены вставку больше, чем вы хотите

boardX = raw_input("How many X boards do you want? > ") 
boardY = raw_input("How many Y boards do you want? > ") 

в цикл добавляется дополнительный один, как Int (boardX) +1 контролировать нужную глубину

for xx in range(1,int(boardX)+1): 
    #int(boardY) parameter controls the width 
    printboards(int(boardY)) 
Смежные вопросы