python控制台简单实现五子棋

 

#棋盘
#落子
#规则
import random
class chess:
def __init__(self):
print('#---------------棋盘----------------#')
self.grid = []
self.si = []
for i in range(8):
self.grid.append([' □ ']*8)
# print(self.grid)
# print()
for j in range(8):
print(''.join(self.grid[j])) #''.join(grid[j]))

def getPos(self,x,y):
print('#----------------落子----------------#')
self.x = x
self.y = y
if self.grid[self.x][self.y]== ' ○ ' or self.grid[self.x][self.y]== ' ● ': # 判断棋子是否重复
print('\t\t\t棋子有重复')
else:
self.l = 0
self.grid[self.x][self.y] = ' ● '
if self.x==7 or self.y==0 :
self.grid[random.randint(self.x-2,self.x-1)][random.randint(self.y-2,self.y-1)] = ' ○ '

elif self.grid[random.randint(self.x - 1, self.x+1)][random.randint(self.y - 1, self.y+1)] == None:
self.grid[random.randint(self.x - 1, self.x + 1)][random.randint(self.y - 1, self.y + 1)] = ' ○ '

else:
self.grid[self.x][self.y] = ' ● '
self.grid[self.x + 1][ self.y + 1] =' ○ '
self.si.append([self.x, self.y])
for i in range(len(self.si)):
if self.si[i-1][0] == self.si[i][0] or self.si[i-1][1] == self.si[i][1] or self.si[i][1]==self.si[i][0] and self.si[i-1][1]==self.si[i-1][0]: # 判断玩家是否排成一条线
self.l += 1
# print(self.l)
for j in range(8):
print(''.join(self.grid[j])+'\n') #''.join(grid[j]))

def rulers(self):
recode = []
recode.append([self.x,self.y])
print(self.si)

for i in range(len(recode)):
for j in range(len(recode[i])):
if self.l==5: # 标记,当为5时结束游戏
print('游戏结束')
print('玩家胜利')
self.t = False
return self.t
elif len(self.si)>6: # 判断平局,因为条件简单,所以不会出现电脑赢的情况
print('游戏结束')
print('平局')
self.t = False
return self.t
else:
self.t = True
return self.t




play = chess()
t = True
while t: # 循环实现棋盘出现
x,y = input("\t请输入x,y坐标用','分割:\n").split(',')
play.getPos(int(x),int(y))
t = play.rulers()

这只是简单练习

小白一枚,AI训练方式还未学习,后面会持续出更

继续努力

猜你喜欢

转载自www.cnblogs.com/superSmall/p/11503354.html