python五子棋人机对战_Python五子棋
#
五子棋
#!/usr/bin/python
from Tkinter import *
import random
class snake(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.body = [(0,0)]
self.bodyid = []
self.food = [ -1, -1 ]
self.foodid = -1
self.gridcount = 10
self.size = 500
self.di = 3
self.speed = 500
self.top = self.winfo_toplevel()
self.top.resizable(False, False)
self.grid()
self.canvas = Canvas(self)
self.canvas.grid()
self.canvas.config(width=self.size, height=self.size,relief=RIDGE)
self.drawgrid()
s = self.size/self.gridcount
id = self.canvas.create_rectangle(self.body[0][0]*s,self.body[0][1
]*s,
(self.body[0][0]+1)*s, (self.body[0][1]+1)*s, fill="yellow
")
self.bodyid.insert(0, id)
self.bind_all("", self.keyrelease)
self.drawfood()
self.after(self.speed, self.drawsnake)
def drawgrid(self):
s = self.size/self.gridcount
for i in range(0, self.gridcount+1):
self.canvas.create_line(i*s, 0, i*s, self.size)
self.canvas.create_line(0, i*s, self.size, i*s)
def drawsnake(self):
s = self.size/self.gridcount
head = self.body[0]
new = [head[0], head[1]]
if self.di == 1:
new[1] = (head[1]-1) % self.gridcount
elif self.di == 2:
new[0] = (head[0]+1) % self.gridcount
elif self.di == 3:
new[1] = (head[1]+1) % self.gridcount
else:
new[0] = (head[0]-1) % self.gridcount
next = ( new[0], new[1] )
if next in self.body:
exit()
elif next == (self.food[0], self.food[1]):
self.body.insert(0, next)
self.bodyid.insert(0, self.foodid)
self.drawfood()
else:
tail = self.body.pop()
id = self.bodyid.pop()
python五子棋人机对战_Python五子棋相关推荐
- python五子棋人机对战_Python:游戏:五子棋之人机对战
原标题:Python:游戏:五子棋之人机对战 开端 画棋盘 首先肯定是要画出棋盘来,用 pygame 画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到, ...
- 五子棋人机对战_10.带人机对战的五子棋程序
今天我们带来一个带人机对战功能的五子棋程序.程序基于前面文章中的框架搭建,新增人机对战的策略.程序基于规则进行决策,不考虑禁手,玩家执黑子先行.棋盘规模采用15乘15,棋盘规模容易扩展,程序棋力中等, ...
- c语言五子棋人机对弈算法,使用canvas基于AI算法实现人机对战之五子棋
这是我使用canvas基于AI算法实现的人机对战之五子棋 黑棋是我 下了几局,真心下不过啊!!! 不说了,源码奉上: 人机大战之五子棋 canvas{ display: block; margin:5 ...
- java五子棋人机对战_实现简单的人机对战五子棋(实践)
五子棋人机对战实践项目 总的任务和目标 完成一个人机对战的五子棋项目,基本效果如下: 第一部分 Java绘图原理 1. 基本概念 像素,坐标 2. 组件自定义绘图原理 3. Graphic ...
- C语言 AI智能,五子棋 人机对战,人人对战
C语言五子棋,人机对战,人人对战 chunli@Linux:~$ cat main.c # include<stdio.h> # include<string.h> # inc ...
- C#实现五子棋人机对战的思路与源码分享
前言 业余闲暇时,基于.netframework使用C#语言开发了一个五子棋人机对战的游戏,在此做些整理和分享,先上图. winform版 UI虽然很简洁,却花了些功夫,图形元素全动态生成,毕竟不是美 ...
- 人工智能 - 五子棋人机对战
人工智能 - 五子棋人机对战 作者: jig 阅读人次: 6635 文章来源:本站原创 发布时间:2007-7-12 网友评论(8)条 原帖及讨论:http://bbs.bc ...
- C语言——五子棋人机对战
先说下背景吧,写下这篇博客时,博主大一在读,C语言初学者,寒假无事,便计划写几个由C语言实现的小游戏以提升编程能力.在这篇博客里分享的是可人机对战的五子棋游戏. 棋类游戏要实现初级的机器智能,其核心思 ...
- Python编写人机对战小游戏(抓狐狸)(2)
封面图片:<中学生可以这样学Python>,董付国.应根球著,清华大学出版社 =========== 很久很久以前,在公众号里推送过一个抓狐狸游戏,详见Python编写人机对战小游戏(抓小 ...
最新文章
- mysql 113_MySQL教程113-MySQL流程控制语句
- python读取本地文件-python解析本地HTML文件
- idea分支如何刷新显示最新
- java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...
- 推荐一个比FiddlerCore好用的HTTP(S)代理服务器
- Ajax基础知识梳理 1
- 使用Azure Data Factory优雅的迁移SQL Server 2000 DTS包
- 模块间同步消息队列的设计
- STM32CUBEF4 实现USB 虚拟串口
- 【DFS】LeetCode 51. N-Queens
- R的数据可视化,各种图表,常用统计量计算
- MySQL online create index实现原理
- tx2开发板接口详解_Linux CAN编程详解
- 查看计算机本机IP地址,本机ip地址查询
- 04-乐优商城项目搭建
- stm32跑马灯程序
- 关于新加坡的身份证与电话号码验证
- APPstore上架问题 ERROR ITMS-90096
- JavaScript数组方法大全(分为会不会改变原数组)
- Excel如何冻结窗口