#

五子棋

#!/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五子棋相关推荐

  1. python五子棋人机对战_Python:游戏:五子棋之人机对战

    原标题:Python:游戏:五子棋之人机对战 开端 画棋盘 首先肯定是要画出棋盘来,用 pygame 画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到, ...

  2. 五子棋人机对战_10.带人机对战的五子棋程序

    今天我们带来一个带人机对战功能的五子棋程序.程序基于前面文章中的框架搭建,新增人机对战的策略.程序基于规则进行决策,不考虑禁手,玩家执黑子先行.棋盘规模采用15乘15,棋盘规模容易扩展,程序棋力中等, ...

  3. c语言五子棋人机对弈算法,使用canvas基于AI算法实现人机对战之五子棋

    这是我使用canvas基于AI算法实现的人机对战之五子棋 黑棋是我 下了几局,真心下不过啊!!! 不说了,源码奉上: 人机大战之五子棋 canvas{ display: block; margin:5 ...

  4. java五子棋人机对战_实现简单的人机对战五子棋(实践)

    五子棋人机对战实践项目 总的任务和目标 完成一个人机对战的五子棋项目,基本效果如下: 第一部分 Java绘图原理 1.   基本概念 像素,坐标 2.   组件自定义绘图原理 3.   Graphic ...

  5. C语言 AI智能,五子棋 人机对战,人人对战

    C语言五子棋,人机对战,人人对战 chunli@Linux:~$ cat main.c # include<stdio.h> # include<string.h> # inc ...

  6. C#实现五子棋人机对战的思路与源码分享

    前言 业余闲暇时,基于.netframework使用C#语言开发了一个五子棋人机对战的游戏,在此做些整理和分享,先上图. winform版 UI虽然很简洁,却花了些功夫,图形元素全动态生成,毕竟不是美 ...

  7. 人工智能 - 五子棋人机对战

    人工智能 - 五子棋人机对战 作者: jig    阅读人次: 6635    文章来源:本站原创    发布时间:2007-7-12     网友评论(8)条 原帖及讨论:http://bbs.bc ...

  8. C语言——五子棋人机对战

    先说下背景吧,写下这篇博客时,博主大一在读,C语言初学者,寒假无事,便计划写几个由C语言实现的小游戏以提升编程能力.在这篇博客里分享的是可人机对战的五子棋游戏. 棋类游戏要实现初级的机器智能,其核心思 ...

  9. Python编写人机对战小游戏(抓狐狸)(2)

    封面图片:<中学生可以这样学Python>,董付国.应根球著,清华大学出版社 =========== 很久很久以前,在公众号里推送过一个抓狐狸游戏,详见Python编写人机对战小游戏(抓小 ...

最新文章

  1. mysql 113_MySQL教程113-MySQL流程控制语句
  2. python读取本地文件-python解析本地HTML文件
  3. idea分支如何刷新显示最新
  4. java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...
  5. 推荐一个比FiddlerCore好用的HTTP(S)代理服务器
  6. Ajax基础知识梳理 1
  7. 使用Azure Data Factory优雅的迁移SQL Server 2000 DTS包
  8. 模块间同步消息队列的设计
  9. STM32CUBEF4 实现USB 虚拟串口
  10. 【DFS】LeetCode 51. N-Queens
  11. R的数据可视化,各种图表,常用统计量计算
  12. MySQL online create index实现原理
  13. tx2开发板接口详解_Linux CAN编程详解
  14. 查看计算机本机IP地址,本机ip地址查询
  15. 04-乐优商城项目搭建
  16. stm32跑马灯程序
  17. 关于新加坡的身份证与电话号码验证
  18. APPstore上架问题 ERROR ITMS-90096
  19. JavaScript数组方法大全(分为会不会改变原数组)
  20. Excel如何冻结窗口

热门文章

  1. 风云lua分析-Lua GC 的源码剖析 (5)
  2. VC++上机例题——画椭圆(图形方法总结)
  3. 脱敏工具类,对姓名、手机号、身份证进行脱敏
  4. 树莓派搭建 Google TV
  5. c++实现---十六进制转化为十进制
  6. 计及调峰主动性的风光水火储多能系统互补协调优化调度(Matlab代码实现)
  7. 《外汇市场与交易系统》读书笔记2
  8. HTML5前端开发实战02-旅游网页面设计
  9. 安卓配置多渠道包error:All flavors must now belong to a named flavor dimension
  10. 1080ti显卡崩了迅速重装