规则
1.玩家先行
2.不要让人机连三颗棋子
3.输入列行,回车键隔开
代码(没开源,仅供参考)
#
#'作者:{溥哥}'
#'日期:{我不告诉你~~~}'
#
import random
#主程序
x=0;y=0
a = [[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]]#空位0,玩家1,电脑2
def solve(x,y):
nx = random.randrange(x-2, x+2)
ny = random.randrange(y-2, y+2)
while True :
if a[nx][ny]!=1 and a[nx][ny]!=2 and nx<6 and nx>0 and ny<6 and ny>0:
break
nx = random.randrange(x-2, x+2)
ny = random.randrange(y-2, y+2)
a[nx][ny]=2
robot_drv.set_led(5*(ny-1)+nx,True,"红")
def check():
for i in range(5):
for j in range(3):
if(a[i][j]==1 and a[i][j+1]==1 and a[i][j+2]==1):
print("玩家(蓝方)胜利")
exit()
elif(a[i][j]==2 and a[i][j+1]==2 and a[i][j+2]==2):
print("电脑(红方)胜利")
exit()
for i in range(3):
for j in range(5):
if(a[i][j]==1 and a[i+1][j]==1 and a[i+2][j]==1):
print("玩家(蓝方)胜利")
exit()
elif(a[i][j]==2 and a[i+1][j]==2 and a[i+2][j]==2):
print("电脑(红方)胜利")
exit()
for i in range(3):
for j in range(3):
if(a[i][j]==1 and a[i+1][j+1]==1 and a[i+2][j+2]==1):
print("玩家(蓝方)胜利")
exit()
elif(a[i][j]==2 and a[i+1][j+1]==2 and a[i+2][j+2]==2):
print("电脑(红方)胜利")
exit()
for i in range(3):
for j in range(3):
if(a[i+2][j+2]==1 and a[i+1][j+1]==1 and a[i][j]==1):
print("玩家(蓝方)胜利")
exit()
elif(a[i+2][j+2]==2 and a[i+1][j+1]==2 and a[i][j]==2):
print("电脑(红方)胜利")
exit()
def main():
print("OURCRAFT出品三子棋5x5Python版游戏\n电脑(红色),玩家(蓝色),以左上方棋子为(1,1)\n玩家先行棋\n")
while True:
print("请输入列行:")
x=int(input());y=int(input())
if a[x][y]!=1 and a[x][y]!=2 :
a[x][y]=1
robot_drv.set_led(5*(y-1)+x,True,"蓝")
robot_drv.sleep(1000)
check()
solve(x,y)
check()
# *********************************************
# 以下为初始化代码,请不要修改或者删除
# *********************************************
import sys
import irobotq_robotdriver as robot_drv
from iot import *
if __name__ == '__main__':
try:
#robot_drv.init第四个参数 0:异步模式 1:同步模式,默认使用异步模式
#异步模式编写简单,速度快,但在高速运行的情况下仿真结果一致性难以保证
#同步模式仿真结果一致性好,但需要代码编写者在代码中按需加入step()或sleep()调用,否则会造成无响应
#step()/sleep()调用实质上是让出控制权,让仿真能够进行下去,通常在循环体中加入调用。
ret=robot_drv.init(sys.argv[1],sys.argv[2],int(sys.argv[3]),0)
if(ret == 0):
main()
robot_drv.over()
print("机器人程序运行结束")
else:
print('初始化错误,错误码:%d' % ret)
print('按任意键退出')
v=input()
except Exception as e:
print (e)
print('按任意键退出')
v=input()
#随机落子,算法可优化,欢迎改编和评论