用不同的参数组合相同的函数-Python
我想做一个tic-tac-toe游戏,当用户输入一个数字1-9时,它会在网格上相应的空间上生成一个X。下面是用于此的函数:用不同的参数组合相同的函数-Python,python,function,Python,Function,我想做一个tic-tac-toe游戏,当用户输入一个数字1-9时,它会在网格上相应的空间上生成一个X。下面是用于此的函数: def move(inp): if inp == 1: one = " X |\t|\n_____________\n |\t|\n_____________\n |\t|" print one elif inp == 2: two = " | X |\n_____________\n |\t|
def move(inp):
if inp == 1:
one = " X |\t|\n_____________\n |\t|\n_____________\n |\t|"
print one
elif inp == 2:
two = " | X |\n_____________\n |\t|\n_____________\n |\t|"
print two
elif inp == 3:
three = " |\t| X\n_____________\n |\t|\n_____________\n |\t|"
print three
elif inp == 4:
four = " |\t|\n____________\n X |\t|\n_____________\n |\t|"
print four
elif inp == 5:
five = " |\t|\n_____________\n | X |\n_____________\n |\t|"
print five
elif inp == 6:
six = " |\t|\n_____________\n |\t| X \n_____________\n |\t|"
print six
elif inp == 7:
seven = " |\t|\n_____________\n |\t|\n_____________\n X |\t|"
print seven
elif inp == 8:
eight = " |\t|\n_____________\n |\t|\n_____________\n | X |"
print eight
elif inp == 9:
nine = " |\t|\n_____________\n |\t|\n_____________\n |\t| X "
print nine
因此,网格显示在正确的位置上,X。但下一个转折点来了。我想让他们输入一个新的数字,但保留原来的X。我在想:有没有一种方法可以把这个函数和一个不同的参数结合起来,让它们在网格上放两个X?
所以,我的问题是,有没有一个函数可以实现这一点,如果没有,我将如何实现这一点。编程时,如果您发现自己一遍又一遍地复制粘贴相同的代码,那么一定是出了问题。你应该从一开始就重新考虑这件事。这个怎么样
board = [' '] * 9 # the 9 cells, empty at first
def show(board):
for row in range(3):
print '|',
for col in range(3):
print board[row*3 + col], '|',
print # newline
def move(inp):
board[inp-1] = 'X' # user input is 1-based, Python is 0-based
show(board)
您可以这样做:
def make_square(inp):
square = " {0} |{1}\t|{2}\n_____________\n {3} | {4}\t|{5}\n_____________\n {6} |{7}\t|{8}" # set {} brackets for 'X' format
inp += -1 # rest because need take from 0 as the brackts indice
for x in range(9): # range max of 'X'
if x != inp:
square = square.replace('{{{0}}}'.format(x),' ') # delete brackets without the number select by the user
# {{ {0} }} explication http://stackoverflow.com/a/5466478/4941927
square = square.replace('{{{0}}}'.format(inp),'{0}') # convert current {number} into {0} for format
square = square.format('X') # formatting brackets for the 'X'
print square
make_square(2)
如果你需要帮助,我很乐意帮助你
你好