五子棋纯python手写,需要的拿去

 

import pygame,sys
from pygame import *
pygame.init()game = pygame.display.set_mode((600,600))
gameover = False
circlebox = []
# 棋盘坐标点存储
box = []
def xy():for x in range(0,800//40): for y in range(0,800//40): box.append((x*40,y*40))
xy()
defaultColor = 'white'
def gameWrite(word,size,color,x,y):# 创建一个帮我们写字的对象writer = pygame.font.SysFont('kaiti',size)# 将内容书写到给定的位置即可text = writer.render(word, True, color)# 将书写好的text传送到画布上game.blit(text,(x,y))
tmpColor = (255,255,255)
def success(color):global gameover,tmpColorgameover = TruetmpColor = color# 左斜对角验证
def L(x,y,color):n = 0# 如果斜对角能凑足4个则即为成功x1 = xy1 = ywhile True:#往上走x1 = x1-40y1 = y1-40if x1>=0 and y1>=0:f = Falsefor i in circlebox:if i[0] == x1 and i[1] == y1 and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakprint("左上斜对角值:",n)while True:#往下走x = x+40y = y+40if x<=800 and y<=800:f = Falsefor i in circlebox:if i[0] == x and i[1] == y and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakprint("左下斜对角值:",n)if n>=4:success(color)def R(x,y,color):n = 0# 如果斜对角能凑足4个则即为成功x1 = xy1 = ywhile True:#往上走x1 = x1+40y1 = y1-40if x1<=800 and y1>=0:f = Falsefor i in circlebox:if i[0] == x1 and i[1] == y1 and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakwhile True:#往下走x = x-40y = y+40if x>=0 and y<=800:f = Falsefor i in circlebox:if i[0] == x and i[1] == y and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakif n==4:success(color)
def S(x,y,color):n = 0# 如果斜对角能凑足4个则即为成功x1 = xy1 = ywhile True:#往上走y1 = y1-40if x1>=0 and y1>=0:f = Falsefor i in circlebox:if i[0] == x1 and i[1] == y1 and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakwhile True:#往下走y = y+40if x<=800 and y<=800:f = Falsefor i in circlebox:if i[0] == x and i[1] == y and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakif n==4:success(color)
def H(x,y,color):n = 0# 如果斜对角能凑足4个则即为成功x1 = xy1 = ywhile True:#往左走x1 = x1-40if x1>=0 and y1>=0:f = Falsefor i in circlebox:if i[0] == x1 and i[1] == y1 and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakwhile True:#往右走x = x+40if x<=800 and y<=800:f = Falsefor i in circlebox:if i[0] == x and i[1] == y and i[2] == color:n = n+1f = Truebreakif not f:breakelse:breakif n==4:success(color)
# 画棋盘
def chess():start = 0for i in range(800//40): pygame.draw.polygon(game,(255,255,255),[(0,start), (800,start)],1)pygame.draw.polygon(game,(255,255,255),[(start,0), (start,800)],1)start = start+40def E():global defaultColorfor e in pygame.event.get():if e.type == QUIT:pygame.quit()sys.exit()if e.type == MOUSEBUTTONDOWN:x,y = e.posprint(e.button)if e.button == 1 and not gameover:# for xy in box:if abs(xy[0]-x)<20 and abs(xy[1]-y)<20 :f = Falsefor mark in circlebox:if xy[0]==mark[0] and xy[1]==mark[1]:f = Trueif not f:if defaultColor=='white':# 判断原来这个点是否已经存在circlebox.append((xy[0],xy[1],(255,255,255)))L(xy[0],xy[1],(255,255,255))R(xy[0],xy[1],(255,255,255))S(xy[0],xy[1],(255,255,255))H(xy[0],xy[1],(255,255,255))defaultColor = 'red'else:circlebox.append((xy[0],xy[1],(255,0,0)))L(xy[0],xy[1],(255,0,0))R(xy[0],xy[1],(255,0,0))S(xy[0],xy[1],(255,0,0))H(xy[0],xy[1],(255,0,0))defaultColor = 'white'def drawCircle():for i in circlebox:pygame.draw.circle(game,i[2],(i[0],i[1]),15)               
while True:chess()drawCircle()if gameover:if tmpColor == (255,255,255):gameWrite("恭喜白方获取胜利",60,(0,0,255),70,180)else:gameWrite("恭喜红方获取胜利",60,(0,0,255),70,180)E()pygame.display.update()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8.DELL R730服务器对RAID5进行扩容

如果服务器的空间不足了&#xff0c;如何进行扩容&#xff1f;我基本上按照如何重新配置虚拟磁盘或添加其他硬盘来进行操作。我的机器上已经有三块硬盘了&#xff0c;组了Raid5&#xff0c;现在再添加一块硬盘。 先把要添加的硬盘插入服务器&#xff0c;无论是在IDRAC还是管理…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下&#xff0c;看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

乐鑫已支持Matter 1.2标准新增多种设备类型,启明云端乐鑫代理商

随着物联网技术的飞速发展&#xff0c;智能家居正逐渐成为现代生活的一部分。物联网和智能家居行业应用取得了巨大的增长&#xff0c;一系列无线连接的智能设备涌入家庭&#xff0c;为家庭生活带来自动化和便利。 像是可以连网的扬声器、灯泡和中控开关&#xff0c;它们都可以…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载&#xff08;1&#xff09;to_img 函数&#xff08;2&#xff09;数据加载&#xff08;3&#xff09;图像转换 3.随机读取图像进行预处理&#xff08;1&#xff09;函数参数&#xff08;2&#xff09;数据路径&#xff08;3&#xff09;读取文…

MySQL笔记——索引

索引 SQL性能分析使用原则SQL提示覆盖索引前缀索引单列索引和联合索引索引设计原则 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 查询建表语句&#xff1a; show create table account;以下为建表语句&#xff1a; CREATE TABLE account (id int NOT NULL …

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

使用 fvm 管理 Flutter 版本

文章目录 Github官网fvm 安装Mac/Linux 环境Windows 环境 fvm 环境变量fvm 基本命令 Github https://github.com/leoafarias/fvmhttps://github.com/flutter/flutter 官网 https://fvm.app/ fvm 安装 Mac/Linux 环境 Install.sh curl -fsSL https://fvm.app/install.sh …

20240627 每日AI必读资讯

&#x1f50d;挑战英伟达&#xff01;00 后哈佛辍学小哥研发史上最快 AI 芯片 - 3名大学辍学生创立、目前仅35 名员工、刚筹集1.2 亿美元的团队&#xff1a;Etched。 - 史上最快Transformer芯片诞生了&#xff01; - 用Sohu跑Llama 70B&#xff0c;推理性能已超B200十倍&…

IEEE-Trans系列!版面稀缺,现在投稿可加急处理,代表作神刊!

【SciencePub学术】今天小编给大家推荐一本计算机领域的SCI&#xff0c;隶属于IEEE出版社旗下&#xff0c;现已稳定检索49年&#xff01;影响因子4.0-5.0之间&#xff0c;JCR1区&#xff0c;中科院2区&#xff0c;质量口碑甚誉&#xff01; 有论文发表需求的学者可以后台联系张…

贪吃蛇项目:GameRun与GameEnd部分:游戏的主体运行与善后部分

准备工作&#xff1a;打印得分信息 在进行GameStart之前&#xff0c;我们需要在地图的右侧打印帮助信息&#xff0c;以及目前玩家的得分情况和一个食物在当前速度下的得分情况&#xff08;加速的状态下按比例增加食物的分数&#xff0c;减速的状态下则相反&#xff09;&#xf…

建筑信息模型(BIM)的应用与案例研究:塑造建筑与施工的新纪元

在数字化浪潮的推动下&#xff0c;建筑信息模型&#xff08;Building Information Modeling, BIM&#xff09;已从一项新兴技术发展为建筑与施工领域不可或缺的核心工具。本文将深入探讨BIM技术的应用原理&#xff0c;分享实际案例&#xff0c;揭示其如何引领建筑行业走向更加高…

Docker(八)-Docker运行mysql8容器实例

1.运行mysql8容器实例并挂载数据卷 -e:配置环境变量 --lower_case_table_names1 设置忽略表名大小写一定要放在镜像之后运行mysql8容器实例之前&#xff0c;先查看是否存在mysql8镜像以及是否存在已运行的mysql实例docker run -d -p 3306:3306 --privilegedtrue -v 【宿主机日…

2.深入探索Python世界:从快捷键到变量类型,掌握数据运算的奥秘

在Python编程的奇妙之旅中&#xff0c;我们不仅需要理解代码的逻辑和结构&#xff0c;还需要熟练掌握工具和技巧&#xff0c;以便更高效地编写和调试代码。本篇文章将带您深入了解PyCharm的常用快捷键、Python中的注释、函数、变量、数据类型以及基本的运算符&#xff0c;为您揭…

修复 pprof ---node_exproter访问漏洞(go-pprof-leak)

前言&#xff1a; ** 在Go语言中&#xff0c;pprof和debug包是用来检测和避免goroutine泄漏&#xff0c;避免导致goroutine泄漏&#xff0c;进而消耗大量系统资源。不过对于安全而言确又存在一定风险&#xff0c;** 风险&#xff1a; 通过node_exporter web发现 190.168.46.1…

关于Claude3.5-Sonnet引以为傲的功能,在半年前就被某国产平台无情碾压的那档事!

前言&#xff1a; Anthropic声称其每隔几个月就会对Claude发布一次重大版本的更新。距离今年3月份Claude3发布&#xff0c;已经又过去了3个多月的时间。果不其然&#xff0c;6月21日Anthropic 在X上正式官宣发布全新大模型 Claude3.5 Sonnet&#xff0c;号称它能够碾压GPT4o&a…

前端Web开发HTML5+CSS3+移动web视频教程 Day1

链接 HTML 介绍 写代码的位置&#xff1a;VSCode 看效果的位置&#xff1a;谷歌浏览器 安装插件 open in browser&#xff1a; 接下来要保证每次用 open in browser 打开的是谷歌浏览器。只需要将谷歌浏览器变为默认的浏览器就可以了。 首先进入控制面板&#xff0c;找到默…

Windows11环境下安装Vmware Workstation 16的方法

1、下载VMWare 从网盘下载 https://pan.baidu.com/share/init?surlUpcnqiRv6nUuzO0EOZ22zg 提取码&#xff1a;8888 2、安装VMware虚拟机   第1步&#xff1a;双击上面准备好的Vmware Workstation 16虚拟机软件安装包&#xff0c;即可看到如图所示的安装向导初始界面&#x…

编程设计思想

健康检查脚本 nmap:扫描端口 while true do healthycurl B:httpPORT/healthy -i | grep HTTP/1.1 | tail -n 1 | awk {print $2} done 批量操作类型脚本&#xff08;记录每一步日志&#xff09; 将100个nginx&#xff1a;vn推送到harbor仓库192.168.0.100 根据镜像对比sha值…

数据中心网络100GbE发展趋势

100G光产品的技术突破不断满足超大规模数据中心的需求。5G的发展使许多行业能够实现高数据吞吐量和低延迟。从2017年至今&#xff0c;不少企业已经升级到100G数据中心网络&#xff0c;进而追求400G/800G网络。与此同时&#xff0c;其他小型数据中心已逐渐升级至100G。 是什么推…

安装与配置:MySQL的环境搭建之旅(二)

目录 引言&#xff1a;从理论到实践的跨越 一、安装MySQL&#xff1a;跨平台的便捷指南 Windows环境 Linux环境 macOS环境 二、基本配置&#xff1a;端口设置与字符集选择 三、从零到一的蜕变 引言&#xff1a;从理论到实践的跨越 在前一章节《MySQL简介》中&#xff0c…