python实现五子棋游戏程序


-
是上Python课程的期末大作业,设计五子棋游戏程序,界面都有
-
2018-04-12
-
weixin_39218858: 可以问一下TK是什么么,这个游戏每次运行的时候会出现这个:Traceback (most recent call last): File "C:\Users\mlsstu\Desktop\Python大作业之五子棋游戏\GOMOKO Final.py", line 157, in <module> main() File "C:\Users\mlsstu\Desktop\Python大作业之五子棋游戏\GOMOKO Final.py", line 156, in main game=Game() File &quo
2017-06-19
109KB
python实现五子棋人机对战游戏
2020-09-19主要为大家详细介绍了python实现五子棋之人机对战游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
请问五子棋如何实现悔棋?_course
2010-12-18最近在做一个五子棋,做好了人与人对战。怎么样才能完现悔棋功能?请大家给点思路?我看到网上用集合类ArrayList实现。看不懂。。。本人太菜了。
8KB
用pygame实现五子棋(源码)
2018-05-03基于python的pygame模块实现五子棋游戏,实现棋子摆放,输赢判断,再来一局等基本功能
12.54MB
Python五子棋(使用pygame,包含人人,人机,棋谱)
2018-09-28实现功能:1.人人对战;2.人机对战(可选择电脑先手还是玩家先手);3.悔棋;4.自动判断胜负;5.保存棋谱和载入棋谱(可以一步步播放)。-原创
添加悔棋功能,整体代码_course
2017-06-22package wuziqi1; import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; public class wuziqi1 extends JFrame{ CheseGame CG; wuziqi1 () { this.CG= new CheseGame(); addMouseListener(CG); add(CG); } public static void main(String[] args) { wuziqi1 fivechese= new wuziqi1 (); fivechese.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fivechese.setSize(900, 700); fivechese.setTitle("五子棋"); fivechese.setVisible(true); fivechese.setResizable(true); } } class CheseGame extends JPanel implements MouseListener,ItemListener { int [][]map = new int[20][20]; Color []color = {Color.BLACK,Color.WHITE,Color.GREEN}; int x = -1; int y = -1; int flag = 1; int winner = 3; JButton btn1 = new JButton("开始"); JButton btn2 = new JButton("再来一局"); CheckboxGroup cbg = new CheckboxGroup(); Checkbox chb1 = new Checkbox("黑棋先开始",cbg,true); Checkbox chb2 = new Checkbox("白棋先开始",cbg,false); public void itemStateChanged(ItemEvent ie) { if(chb1.getState()) { flag = 1; } else { flag = 2; } } class GameStart implements ActionListener { public void actionPerformed(ActionEvent ae) { if(ae.getSource() == btn1) { start(); repaint(); btn1.setEnabled(false); btn2.setEnabled(true); chb1.setEnabled(false); chb2.setEnabled(false); } if(ae.getSource() == btn2) { start(); repaint(); chb1.setEnabled(true); chb2.setEnabled(true); } } } CheseGame() { this.setLayout(null); chb1.setBounds(650, 50, 100, 30); chb2.setBounds(650, 100, 100, 30); chb1.addItemListener(this); chb2.addItemListener(this); btn1.setBounds(650,150,100,30); btn1.addActionListener(new GameStart()); btn2.setBounds(650, 200, 100, 30); btn2.addActionListener(new GameStart()); btn2.setEnabled(false); this.add(btn1); this.add(btn2); this.add(chb1); this.add(chb2); } void start() { for(int i = 0;i < 20;i++) for(int j = 0;j < 20;j++) map[i][j] = 0; winner = 0; } Boolean win(int x,int y) { int score = 1; for(int i = x;i < x+4;) { if(i == 19) break; if(map[i][y] != map[++i][y]) break; score++; } for(int i = x;i > x-4;) { if(i == 0) break; if(map[i][y] != map[--i][y]) break; score++; } if(score >= 5) return true; else score = 1; for(int j = y; j < y+4;) { if(j == 19) break; if(map[x][j] != map[x][++j]) break; score++; } for(int j = y; j > y-4;) { if(j == 0) break; if(map[x][j] != map[x][--j]) break; score++; } if(score >= 5) return true; else score = 1; for(int i = x;i < x+4;) for(int j = y;j < y+4;) { if(i == 19 || y == 19) {i = x+4; break;} if(map[i][j] != map[++i][++j]) { i = x+4; break; } score++; } for(int i = x;i > x-4;) for(int j = y;j > y-4;) { if(i == 0||j==0) {i = x-4; break;} if(map[i][j] != map[--i][--j]) { i = x-4; break; } score++; } if(score >= 5) return true; else score = 1; for(int i = x;i > x-4;) for(int j = y;j < y+4;) { if(i==0 || j==19) { i = x-4;break;} if(map[i][j] != map[--i][++j]) { i = x-4; break; } score++; } for(int i = x;i < x+4;) for(int j = y;j > y-4;) { if(i==19||j==0) { i = x+4;break;} if(map[i][j] != map[++i][--j]) { i = x + 4; break; } score++; } if(score >= 5) return true; else return false; } public void paintComponent(Graphics g) { super.paintComponent(g); setBackground(color[2]); for(int i = 1;i <= 20;i++) { g.setColor(color[0]); g.drawLine(30, i*30 ,600 , i*30); g.drawLine(i*30,30, i*30, 600); } for(int i = 0;i < 20;i++) for(int j = 0;j < 20;j++) { if(map[i][j] == 1) { g.setColor(color[0]); g.fillOval((i+1)*30-15, (j+1)*30-15, 30, 30); } if(map[i][j] == 2) { g.setColor(color[1]); g.fillOval((i+1)*30-15, (j+1)*30-15, 30, 30); } } Font font = new Font("",30,50); g.setFont(font); if(winner == 1) { g.setColor(color[0]); g.drawString("黑棋胜", 650, 300); } if(winner == 2) { g.setColor(color[1]); g.drawString("白棋胜", 650, 300); } } public void mouseClicked(MouseEvent me) { } public void mousePressed(MouseEvent me) { if(winner == 0) { x = me.getX(); y = me.getY(); chb1.setEnabled(false); chb2.setEnabled(false); } x = (int)(x/30)-1; y = (int)((y-15)/30)-1; if(x>=0&&x<=19&&y>=0&&y<=19) { if(flag == 1&&map[x][y] == 0) { map[x][y] = 1; if(win(x,y)) winner = 1; flag = 2; } else if(flag == 2&&map[x][y] == 0) { map[x][y] = 2; if(win(x,y)) winner = 2; flag = 1; } } repaint(); } @Override public void mouseReleased(MouseEvent me) { // throw new UnsupportedOperationException("Not supported yet."); } @Override public void mouseEntered(MouseEvent me) { // throw new UnsupportedOperationException("Not supported yet."); } @Override public void mouseExited(MouseEvent me) { // throw new UnsupportedOperationException("Not supported yet."); } }
7.9MB
Python开发五子棋小游戏
2018-08-20用python中pygame模块开发的五子棋小游戏,实现功能:下棋,悔棋,重新开始,退出游戏,判赢,另附背景图片,背景音乐。
58.82MB
python小游戏五子棋,附代码
2019-09-04使用python写的五子棋,直接解压缩,有python环境的运行 five.py即可,没有python环境的就进入dist,打开five.exe
Python五子棋(使用pygame,包含人人,人机,棋谱)下载_course
2018-09-29实现功能:1.人人对战;2.人机对战(可选择电脑先手还是玩家先手);3.悔棋;4.自动判断胜负;5.保存棋谱和载入棋谱(可以一步步播放)。-原创 相关下载链接://download.csdn.net/
微信小程序样式开发入门
2019-01-07讲解微信小程序中样式的入门使用,如何使用传统的css知识点来开发wxss的样式;本节课主要讲解在微信小程序中创建样式的几种 写法,元素选择器的基础使用,id选择器和id派生选择器的使用,class类选择器的使用。
68B
JAVA上百实例源码以及开源项目
2016-01-03百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,
爬虫微课5小时 Python学习路线
2018-07-10Python爬虫技术视频教程,该课程每堂课都有一个作业,包含的项目案例有家长帮142600条数据爬取与分析,全球天气数据抓取与分析,淘宝商品信息数据众数分析,12306余票查询,python软件打包exe与发布。学完此课程能让你对整个数据爬取数据分析有一个全新的了解,适当的深入则可以做这方面的工作
84.55MB
微信小程序源码-合集4.rar
2020-09-04微信小程序源码,包含:3C手机商城、kindle图书商城、大宅小屋拼团、球鞋商城、扫码购物、一元夺宝、喜茶店铺、京东首页、京东白条、小米商城等35个商城类源码。
13.41MB
jd_seckill京东抢茅台插件最新版【京东飞天茅台1499抢购】Python脚本的完整安装+使用教程
2021-02-04jd_seckill京东抢茅台插件最新版【京东飞天茅台1499抢购】Python脚本的完整安装+使用教程,这个很好用,稳定出单!
41.55MB
25个经典网站源代码
2013-06-0925个经典网站源代码 有简约的有时尚的方便大家参考、模仿。
4.4MB
敏捷开发V1.0.pptx
2020-07-01敏捷开发PPT 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征
-
学院
华为1+X认证——网络系统建设与运维(初级)
华为1+X认证——网络系统建设与运维(初级)
-
博客
12. 整数转罗马数字(数学)【S】
12. 整数转罗马数字(数学)【S】
-
下载
放大React-源码
放大React-源码
-
学院
2021年 系统架构设计师 系列课
2021年 系统架构设计师 系列课
-
下载
imageClassify:人脸分类器(种族)-源码
imageClassify:人脸分类器(种族)-源码
-
学院
实现 MySQL 读写分离的利器 mysql-proxy
实现 MySQL 读写分离的利器 mysql-proxy
-
博客
2021-03-03
2021-03-03
-
学院
MySQL 存储过程(创建海量数据实验环境)
MySQL 存储过程(创建海量数据实验环境)
-
学院
MySQL 数据类型和运算符
MySQL 数据类型和运算符
-
博客
监听模式
监听模式
-
下载
new_rep-源码
new_rep-源码
-
博客
python:DataFrame输出为csv(Pandas的to_csv()使用)
python:DataFrame输出为csv(Pandas的to_csv()使用)
-
学院
Windows系统管理
Windows系统管理
-
博客
String StringBuffer StringBuilder的区别
String StringBuffer StringBuilder的区别
-
博客
解决“ValueError: Expected 2D array, got scalar array instead:array=“的错误。
解决“ValueError: Expected 2D array, got scalar array instead:array=“的错误。
-
学院
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
下载
超级超级十月节-源码
超级超级十月节-源码
-
学院
用微服务spring cloud架构打造物联网云平台
用微服务spring cloud架构打造物联网云平台
-
下载
音乐:misicas-源码
音乐:misicas-源码
-
学院
app软件测试全栈系列精品课程
app软件测试全栈系列精品课程
-
学院
libFuzzer视频教程
libFuzzer视频教程
-
下载
Install-Node-yarn:安装程序节点脚本(可选)-源码
Install-Node-yarn:安装程序节点脚本(可选)-源码
-
博客
高品质的游戏音乐需要满足以下几点(二)
高品质的游戏音乐需要满足以下几点(二)
-
学院
MySQL 触发器
MySQL 触发器
-
学院
自动化测试Python3+Selenium3+Unittest
自动化测试Python3+Selenium3+Unittest
-
学院
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
学院
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
下载
联合正交变换与信号交织的测距仪脉冲干扰抑制方法
联合正交变换与信号交织的测距仪脉冲干扰抑制方法
-
博客
等式约束和不等式约束下的KKT条件求法
等式约束和不等式约束下的KKT条件求法
-
学院
Oracle_11g_Linux到Linux_DataGuard部署
Oracle_11g_Linux到Linux_DataGuard部署