我正在尝试为一个井字游戏编程生成ascii艺术。到目前为止,我有。
display = ""
for i in range(0,30):
if i == 10 or i == 20: #If on horzontal break
for j in range(45):
display += "_"
display += '\n'
else:
for j in range(0,45):
if j == 15 or j == 30: #If on a vertical break
display += "|"
else:
display += " "
display += '\n
打印出一个空棋盘
"""
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
_____________________________________________
| |
| |
| |
| |
| |
| |
| |
| |
| |
_____________________________________________
| |
| |
| |
| |
| |
| |
| |
| |
| |
"""
我现在想在玩家问话的格子里添加一个O或X的 "ascii艺术 "表示。有什么简单的方法可以让我在程序上做到这一点吗?
特别是这些字符串。
"""
?8888P
`88'
8b,_ 88 _,d8
88888SEAL88888
8P~ 88 ~?8
,88.
d8888b
"""
"""
____
,' __ `.
/ ,' `. \
| | () | |
\ `.__,' /
`.____,`
"""
谢谢你
感谢@Thomas的评论,我设法让这个工作,所以回来把答案贴出来,以防对其他人有帮助。
def putXInSquare(num):
cross = [[' ',' ',' ',' ','?','8','8','8','8','P',' ',' ',' ',' '],#0
[' ',' ',' ',' ',' ','`','8','8','`',' ',' ',' ',' ',' '],#1
['8','b',',','_',' ',' ','8','8',' ',' ','_',',','d','8'],#2
['8','8','8','8','8','S','I','C','K','8','8','8','8','8'],#3
['8','P','~',' ',' ',' ','8','8',' ',' ',' ','~','?','8'],#4
[' ',' ',' ',' ',' ',',','8','8','.',' ',' ',' ',' ',' '],#5
[' ',' ',' ',' ','d','8','8','8','8','b',' ',' ',' ',' ']]#6
if num == 1:
iOffset = 0
jOffset = 0
if num == 2:
iOffset = 0
jOffset = 16
if num == 3:
iOffset = 0
jOffset = 32
if num == 4:
iOffset = 9
jOffset = 0
if num == 5:
iOffset = 9
jOffset = 16
if num == 6:
iOffset = 9
jOffset = 32
if num == 7:
iOffset = 17
jOffset = 0
if num == 8:
iOffset = 17
jOffset = 16
if num == 9:
iOffset = 17
jOffset = 32
for i in range(iOffset, iOffset + 7):
for j in range(jOffset, jOffset + 14):
board[i+1][j] = cross[i - iOffset][j - jOffset]
这将在给定的位置上产生一个交叉,看起来像这样。
| |
?8888P | |
`88` | |
8b,_ 88 _,d8 | |
88888SICK88888 | |
8P~ 88 ~?8 | |
,88. | |
d8888b | |
______________________________________________
| |
| %% |
| %% %% |
| %% %% |
|%% %% |
| %% %% |
| %% %% |
| %% |
______________________________________________
| |
| |
| |
| |
| |
| |
| |