我是python编程的初学者。 我需要制作一个Tic Tac Toe游戏,但用户可以输入X和Y的数量。
这是我的代码:
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()
但每次我运行程序时,我都会得到这个:
我的第二个问题是,如果我在BoardX和BoardY输入3,我只得到6盒而不是3x3盒。
请帮助
答案 0 :(得分: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? > ")
for循环中的将额外的一个添加为int(boardX)+1以控制适当的深度
for xx in range(1,int(boardX)+1):
#int(boardY) parameter controls the width
printboards(int(boardY))
答案 1 :(得分:0)
欢迎使用python编程。换行的问题是,每个print
都是在新行中完成的。因此,如果您多次拨打printboards()
,则会将所有框都绘制在另一个框下。
你只得到6个盒子,因为python函数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 -*-
,因为我在框底部使用了一个特殊字符。
希望我能提供帮助。