[OC]三子棋游戏

规则

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()

#随机落子,算法可优化,欢迎改编和评论

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值