今天做一个三子棋
定义 变量和二维列表
首先定义变量和二维列表:
q=0
info = [['.', '.', '.','.','.'],
['.', '.', '.','.','.'],
['.', '.','.','.','.'],
['.','.','.','.','.'],
['.','.','.','.','.']]
(不是三子棋吗?,现在怎么变成五子棋了???)
定义 函数
现在定义超级‘简简简简简简简简简简简简简单’的函数!
def hg():
global h
#global 函数声明h可以在函数外使用
h = int(input('输入次数:'))
上面的代码定义了玩的次数(函数名为什么要叫hg???)
然后定义显示棋盘的函数:
def show():
print(' 0 1 2 3 4')
for i in range(5):
#利用循环遍历
print(i, info[i][0], info[i][1], info[i][2],info[i][3],info[i][4])
最后定义一个超级简单的函数(真的吗?我不信)
def judge():
#检查斜线1
if info[0][0] == info[1][1] and info[1][1] == info[2][2] == info[3][3] == info[4][4]:
if info[0][0] != '.':
return info[0][0]
#检查斜线2
if info[0][4] == info[1][3] and info[2][2] == info[3][1] == info[4][0]:
if info[0][4] != '.':
return info[0][4]
#检查横排
for i in range(5):
if info[i][0] == info[i][1] and info[i][1] == info[i][2] == info[i][3] ==info[i][4]:
if info[i][0] != '.':
return info[i][0]
#检查竖排
for i in range(5):
if info[0][i] == info[1][i] and info[1][i] == info[2][i] == info[3][i] == info[4][i]:
if info[0][i] != '.':
return info[0][i]
return 'y'
怎么样?是不是很‘简单’?
利用列表遍历,这里就不多说了
调用函数
接下来做最重要的一步————调用函数
hg()
show()
for i in range(h):
a = input('玩家x,您要把棋子放到第几行:')
b = input('玩家x,您要把棋子放到第几列:')
a = int(a)
b = int(b)
if a>3:
print('数字错误!')
info[a][b] = 'x'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
if flag == '△':
print('玩家o胜利')
break
a1 = input('玩家o,您要把棋子放到第几行:')
b1 = input('玩家o,您要把棋子放到第几列:')
a1 = int(a1)
b1 = int(b1)
if a>4:
print('数字错误!')
print('用了%d次'%q)
info[a1][b1] = 'o'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
q+=1
if i == h-1:
print('次数用完了!')
a1 = input('玩家△,您要把棋子放到第几行:')
b1 = input('玩家△,您要把棋子放到第几列:')
a1 = int(a1)
b1 = int(b1)
if a > 4:
print('数字错误!')
print('用了%d次' % q)
info[a1][b1] = '△'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
if flag == '△':
print('玩家△胜利')
break
q += 1
if i == h - 1:
print('次数用完了!')
对,你没看错!这是三人游戏!!!
附上全部代码(很长长长长长长长长长长长)
q=0
info = [['.', '.', '.','.','.'],
['.', '.', '.','.','.'],
['.', '.','.','.','.'],
['.','.','.','.','.'],
['.','.','.','.','.']]
def hg():
global h
h = int(input('输入次数:'))
def show():
print(' 0 1 2 3 4')
for i in range(5):
print(i, info[i][0], info[i][1], info[i][2],info[i][3],info[i][4])
def judge():
#检查斜线1
if info[0][0] == info[1][1] and info[1][1] == info[2][2] == info[3][3] == info[4][4]:
if info[0][0] != '.':
return info[0][0]
#检查斜线2
if info[0][4] == info[1][3] and info[2][2] == info[3][1] == info[4][0]:
if info[0][4] != '.':
return info[0][4]
#检查横排
for i in range(5):
if info[i][0] == info[i][1] and info[i][1] == info[i][2] == info[i][3] ==info[i][4]:
if info[i][0] != '.':
return info[i][0]
#检查竖排
for i in range(5):
if info[0][i] == info[1][i] and info[1][i] == info[2][i] == info[3][i] == info[4][i]:
if info[0][i] != '.':
return info[0][i]
return 'y'
hg()
show()
for i in range(h):
a = input('玩家x,您要把棋子放到第几行:')
b = input('玩家x,您要把棋子放到第几列:')
a = int(a)
b = int(b)
if a>3:
print('数字错误!')
info[a][b] = 'x'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
if flag == '△':
print('玩家o胜利')
break
a1 = input('玩家o,您要把棋子放到第几行:')
b1 = input('玩家o,您要把棋子放到第几列:')
a1 = int(a1)
b1 = int(b1)
if a>4:
print('数字错误!')
print('用了%d次'%q)
info[a1][b1] = 'o'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
q+=1
if i == h-1:
print('次数用完了!')
a1 = input('玩家△,您要把棋子放到第几行:')
b1 = input('玩家△,您要把棋子放到第几列:')
a1 = int(a1)
b1 = int(b1)
if a > 4:
print('数字错误!')
print('用了%d次' % q)
info[a1][b1] = '△'
show()
flag = judge()
if flag == 'x':
print('玩家x胜利')
break
if flag == 'o':
print('玩家o胜利')
break
if flag == '△':
print('玩家△胜利')
break
q += 1
if i == h - 1:
print('次数用完了!')
最后把你的
变成
........
啦 啦 啦 啦 啦 啦 啦 啦 我们下期再见啦