#棋盘
#落子
#规则
import random
class chess:
def __init__(self):
print('#---------------棋盘----------------#')
self.grid = []
self.si = []
for i in range(8):
self.grid.append([' □ ']*8)
for j in range(8):
print(''.join(self.grid[j]),'\n') #''.join(grid[j])) def getPos(self,x,y):
print('#----------------落子----------------#')
self.x = x
self.y = y
if self.grid[self.x][self.y]== ' ○ ' or self.grid[self.x][self.y]== ' ● ': # 判断棋子是否重复
print('\t\t\t棋子有重复')
else:
self.l = 0
self.grid[self.x][self.y] = ' ● '
if self.x==7 or self.y==0 :
self.grid[random.randint(self.x-2,self.x-1)][random.randint(self.y-2,self.y-1)] = ' ○ '
else: self.grid[self.x][self.y] = ' ● '
self.grid[self.x + 1][ self.y + 1] =' ○ '
self.si.append([self.x, self.y])
for i in range(len(self.si)):
if self.si[i-1][0] == self.si[i][0] or self.si[i-1][1] == self.si[i][1] or self.si[i][1]==self.si[i][0] and self.si[i-1][1]==self.si[i-1][0] and (self.grid[self.x-1][self.y] != ' □ ' or self.grid[self.x+1][self.y+1] != ' □ '
or self.grid[self.x-1][self.y-1] != ' □ '
or self.grid[self.x+1][self.y] != ' □ '
or self.grid[self.x-1][self.y] != ' □ '
or self.grid[self.x][self.y-1] != ' □ ' or self.grid[self.x][self.y+1] != ' □ '
or self.grid[self.x][self.y-1] != ' □ '): # 判断玩家是否排成一条线
self.l += 1
for j in range(8):
print(''.join(self.grid[j])+'\n') #''.join(grid[j])) def rulers(self):
recode = []
recode.append([self.x,self.y])
print(self.si) for i in range(len(recode)):
for j in range(len(recode[i])):
if self.l==5: # 标记,当为5时结束游戏
print('游戏结束')
print('玩家胜利')
self.t = False
return self.t
elif len(self.si)>6: # 判断平局,因为条件简单,所以不会出现电脑赢的情况
print('游戏结束')
print('平局')
self.t = False
return self.t
else:
self.t = True
return self.t play = chess()
t = True
while t: # 循环实现棋盘出现
x,y = input("\t请输入x,y坐标用','分割:\n").split(',')
play.getPos(int(x),int(y))
t = play.rulers()

这只是简单练习

小白一枚,AI训练方式还未学习,后面会持续出更

继续努力

python控制台简单实现五子棋的更多相关文章

  1. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  2. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  3. python开启简单webserver

    python开启简单webserver linux下面使用 python -m SimpleHTTPServer 8000 windows下面使用上面的命令会报错,Python.Exe: No Mod ...

  4. Python开发简单爬虫 - 慕课网

    课程链接:Python开发简单爬虫 环境搭建: Eclipse+PyDev配置搭建Python开发环境 Python入门基础教程 用Eclipse编写Python程序   课程目录 第1章 课程介绍 ...

  5. python使用简单http协议来传送文件

    python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServ ...

  6. Python超简单的HTTP服务器

    Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...

  7. 教学项目之-通过Python实现简单的计算器

    教学项目之-通过Python实现简单的计算器   计算器开发需求 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/ ...

  8. python多线程简单例子

    python多线程简单例子 作者:vpoet mail:vpoet_sir@163.com import thread def childthread(threadid): print "I ...

  9. python实现简单的循环购物车小功能

    python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...

随机推荐

  1. kubernetes lowB安装方式

    kubernetes离线安装包,仅需三步 基础环境 关闭防火墙 selinux $ systemctl stop firewalld && systemctl disable fire ...

  2. 【错误】【vscode】"'#' not expected here"

    今天使用vscode发现完整的代码报错了,但依然可以运行

  3. Kubernetes Pod 驱逐详解

    原文链接:Kubernetes Pod 驱逐详解 在 Kubernetes 中,Pod 使用的资源最重要的是 CPU.内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 ...

  4. vue-cli中的跨域之proxytable

    为什么会有跨域? 浏览器有一个叫做同源策略的东西.同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互.这是一个用于隔离潜在恶意文件的重要安全机制. 同源策略规定了如果两个页面的协 ...

  5. golang 结合实例更好的理解参数传递和指针

    关于参数传递 其实go的参数传递,核心就是一句话:go里所有参数传递都是值传递,既把参数复制一份放到函数里去用. go的函数传参,不管参数是什么类型,都会复制一份,然后新的参数在函数内部被使用. 不像 ...

  6. [原创实践]RedHat Enterprise Linux 5 安装GCC和redis

    Redis的安装需要使用GCC,Red Hat Enterprise 5默认是不安装gcc的,需要自己手动安装. 1:查看系统中是否有gcc gcc -v 查看本机linux版本 lsb_releas ...

  7. 史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式

    1.概述 通过前两篇 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 文章对SignalR的介绍, ...

  8. Sentry错误日志监控你会用了吗?

    无论作为新手还是老手程序员在程序的开发过程中,代码运行时难免会抛出异常,而且项目在部署到测试.生产环境后,我们便不可能像在开发时那样容易的及时发现处理错误了.一般我们都是在错误发生一段时间后,错误信息 ...

  9. ES 26 - 通过partial update局部更新索引文档 (partial update增量修改原理)

    目录 1 什么是partial update 1.1 全量修改文档的原理 1.2 修改指定field的思路 1.3 partial update的优势 1.4 partial update的使用 2 ...

  10. 记一次Linux修改MySQL配置不生效的问题

    背景 自己手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把腾讯云的MySQL数据库迁移到AWS RDS上,因为AWS的出口规则和安全组等问题,我需要修改默认的3306端口 ...