python制作简单五子棋游戏
作者:Eric· Charles 发布时间:2021-09-13 06:49:47
标签:python,五子棋
本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下
#五子棋
‘''
矩阵做棋盘 16*16 “+”
打印棋盘 for for
游戏是否结束
开始下棋 while 游戏是否结束:
黑白交替 player=0 p%2==0 ==1 p+=1
下棋动作一样 但是棋子不一样
‘''
代码
#创建棋盘的程序
def initBoard():
global board #调用全局的board
board=[None]*16
for i in range(len(board)):
board[i]=["+ "]*16
#打印棋盘的程序
def printBoard():
global board
for i in range(len(board)):
for j in range(len(board[i])):
print(board[i][j],end=" ")
print("")
#开始下棋的程序
def startGame():
global board
player=0
while isGameContinue():
if player%2==0:
#黑方下棋
print("==>黑方下棋")
if not playChess("●"):
continue
else:
#白方下棋
print("==>白方下棋")
if not playChess("○"):
continue
player+=1
def playChess(chess):
#获取位置
x=int(input("==> X="))-1
y=int(input("==> Y="))-1
if board[x][y]=="+ ":
board[x][y]=chess
printBoard()
return True #落子成功
else:
print("==> 已有棋子 请重新落子\a")
printBoard()
return False#落子失败
def isGameContinue():
for i in range(len(board)):
for j in range(len(board[i])):
if board[i][j]!="+ ":
#横向
if j<=11:
if board[i][j]==board[i][j+1]==board[i][j+2]==board[i][j+3]==board[i][j+4]:
whoWin(i,j)
return False
#竖向
if i<=11:
if board[i][j]==board[i+1][j]==board[i+2][j]==board[i+3][j]==board[i+4][j]:
whoWin(i,j)
return False
#反斜
if i<=11 and j<=11:
if board[i][j]==board[i+1][j+1]==board[i+2][j+2]==board[i+3][j+3]==board[i+4][j+4]:
whoWin(i,j)
return False
#正斜
if i>=4 and j<=11:
if board[i][j]==board[i-1][j+1]==board[i-2][j+2]==board[i-3][j+3]==board[i-4][j+4]:
whoWin(i,j)
return False
return True
def whoWin(i,j):
if board[i][j]=="●":
print("黑方胜!")
else:
print("白方胜!")
for i in range(10):
print("\a")
board=[]
initBoard()
printBoard()
startGame()
来源:https://blog.csdn.net/qq_42197548/article/details/85073198


猜你喜欢
- 最近在做一个魔术网的div+css切割,昨晚发现了长期以来一直无记录下来的问题!关于兼容IE跟FF的float属性。趁现在还清醒赶紧记下笔记
- #!/usr/bin/python#-*-coding:utf-8-*-# JCrawler# Author: Jam <810441
- 一.安装环境这里也顺便记录一下如何在windows7上卸载解压版MySQL5.6数据库,如果无需卸载请忽略下一步,直接看第三步即可二.win
- 数据库MySQL 是一种开源的关系型数据库管理系统,被广泛用于各种不同规模的应用程序中。在进行 MySQL 数据库开发过程中,需要深入了解如
- 如果我有一个数据集,他的某个列名下面的value很长,我们需要筛选出,所有列名中value值字符串大于20的数据集。其实比较简单啦,一句代码
- os.stat(path) :用于在给定的路径上执行一个系统 stat 的调用。path:指定路径返回值:st_mode: inode 保护
- 一、安装配置PHP1、下载Php的版本zip包之后,解压缩到指定目录。下载地址:http://www.php.net/downl
- 本文实例讲述了PHP函数shuffle()取数组若干个随机元素的方法。分享给大家供大家参考,具体如下:有时候我们需要取数组中若干个随机元素(
- 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jw
- 前言今天在学习python的过程中,发现python没有switch这个语法。于是就想在python中如何才能实现这个功能呢?正文本文中我们
- 论坛里面有不少人在使用Javascript编写Asp,经常有人在论坛提问,为什么Asp对象在对比指定值时返回结果不对?现在在这里给大家写点关
- 1. 写在前面笔者在不同电脑上多次尝试了Hyper-V下的安装配置。个人感觉,使用体验和VMware没差(除了一次在较低电量情况下出现了GU
- 临时对象池 pool 是啥?sync.Pool 给了一大段注释来说明 pool 是啥,我们看看这段都说了些什么。临时对象池是一些可以分别存储
- 1:下载MySql 官网下载地址:https://dev.mysql.com/downloads/mysql/ 选择对应
- python基于新浪sae开发的微信公众平台,实现功能:输入段子---回复笑话输入开源+文章---发送消息到开源中国输入快递+订单号---查
- 传统行业里,缺做互联网资深的人;互联网行业里,缺玩传统业务资深的人。于是会造成很多问题,比如两边难沟通,在传统行业者心目中,网络营销e-Ma
- 本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下效果效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子
- 安装软件的时候默认访问sql server账号是sa,Management Studio Express默认是使用Windows身份验证登陆
- 问题:我想上传文件时后改名,下载时又将名改回来。 如:我上传一张“我的照片.jpg”上传后改为系统数名“20040302001.jpg”下载
- 前言: 在数据库运维过程中,我们时常会关注数据库的链接情况,比如总共有多少链接、有多少活跃链接、有没有执行时间过长的链接等。数据库