python实现简单五子棋

本文介绍如何利用Python的turtle库绘制棋盘,通过onscreenclick事件实现黑白子交替落子,并利用二维数组跟踪棋局状态。核心功能包括判断四方向连子获胜,一旦出现五子连线则游戏结束。

 规则:用鼠标下子,黑子白子交替下子

核心:1、使用turtle库画棋盘

           2、turtle库中的onscreenclick()函数,实现鼠标点击

详细步骤:

1、画棋盘,初始化数组

用turtle()库fd()函数实现画直线,tracer(0)消除动画效果

定义一个二维数组,也就是列表来对应棋盘上的落子情况,没有子为0,黑子为1,白子为-1

​
# 1、画棋盘,初始化棋盘
from turtle import *
screensize()
tracer(0)

for i in range(15):#画横向
    penup()
    goto(-280,-280+i*40)
    pendown()
    fd(560)
left(90)
for i in range(15):#画竖向
    penup()
    goto(-280+i*40,-280)
    pendown()
    fd(560)

penup() #画标点
goto(0,0)
dot()
goto(160,160)
dot()
goto(-160,160)
dot()
goto(160,-160)
dot()
goto(-160,-160)
dot()

​

*** 用一个二维数组来表示棋盘里的子

#如果要使用列表创建一个二维数组,可以使用生成器来辅助实现。
#棋盘上每一个点初始值为0
arr=[[0 for i in range(15)] for j in range(15)]

2、实现落子功能

函数:turtle.onscreenclick(fun, btn=1, add=None)

参数:

fun 一个具有两个参数的函数,即画布上单击点的坐标。

btn mouse-button的编号默认为1(鼠标左键)

add 对或错。如果为True,将添加新的绑定,否则它将替换以前的绑定

funclick(x,y)函数:落子功能实现,通过遍历每个点,判断鼠标点击的位置与遍历的位置的距离,如果距离在范围内,并且该位置上没有子,就实现落子,然后交换落子者

# 2、鼠标事件,点击落子

turn=0 #记录该哪方落子
def funclick(x,y):
    global turn
    global arr
    if turn==0: #黑子先下1
        for i in range(15):
            Y=280-i*40
            fo
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值