python井字格游戏_python实现简单井字棋游戏
井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。
游戏的难点在于,如何判断连接成了一条线;横、竖、斜三个方向;
游戏的代码:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
u'''
Created on 2019年4月13日
@author: wuluo
'''
__author__ = 'wuluo'
__version__ = '1.0.0'
__company__ = u'重庆交大'
__updated__ = '2019-04-13'
# 创建井字棋的程序
def initBoard():
global board # 调用全局的board
board = [None] * 3
print("井字棋:")
for i in range(len(board)):
board[i] = ["+ "] * 3
# 打印井字棋的程序
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 <= 8:
if player % 2 == 0:
# 甲方下棋
print("==>黑方下棋")
if not playChess("x"):
continue
else:
# 乙方下棋
print("==>白方下棋")
if not playChess("○"):
continue
player += 1
else:
print("平局")
break
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 == 0:
if board[i][j] == board[i][j + 1] == board[i][j + 2]:
whoWin(i, j)
return False
# 竖向
if i == 0:
if board[i][j] == board[i + 1][j] == board[i + 2][j]:
whoWin(i, j)
return False
# 正斜
if i == 0 and j == 0:
if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
whoWin(i, j)
return False
# 反斜
if i == 2 and j == 0:
if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
whoWin(i, j)
return False
return True
def whoWin(i, j):
if board[i][j] == "x":
print("黑方胜!")
else:
print("白方胜!")
for i in range(3):
print("win")
class main():
board = []
initBoard()
printBoard()
startGame()
if __name__ == "__main__":
main()
游戏结果:
还有一种结果是平局:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2020-03-04
python井字格游戏_python实现简单井字棋游戏相关推荐
- python实现简单小游戏_python实现简单井字棋小游戏
#Tic-Tac-Toe 井字棋游戏 #全局常量 X="X" O="O" EMPTY=" " #询问是否继续 def ask_yes_no( ...
- c语言实现简单的多子棋游戏
c语言实现简单的多子棋游戏# 系列文章目录 c语言实现简单的多子棋游戏 前言 *大家好呀!今天我们要探究怎么用c语言实现以三子棋为基础的五子棋.十子棋等等多子棋游戏.游戏对代码的要求不高,只需要学习c ...
- python坦克大战游戏_python实现简单坦克大战
基于对面向对象编程的思想完成简单的坦克大战游戏.主要目的锻炼面相对象编程思想 同样的在使用python进行游戏编写时需要安装pygame模块 安装方法: pycharm安装方式:File --> ...
- python开发网络小工具_Python 实现简单网络应用程序开发
最后一次更新于 2019/07/10 ICMP Ping 目的 此任务是重新创建第3讲(延迟,丢失和吞吐量)中讨论的ping客户端. Ping 是一个用于在计算机网络中测量延迟和丢失的工具. 在实际应 ...
- python编程超市购物系统_python实现简单购物车系统(练习)
#!Anaconda/anaconda/python#coding: utf-8 #列表练习,实现简单购物车系统 product_lists= [('iphone',5000), ('computer ...
- python编的俄罗斯方块游戏_Python使用pygame模块编写俄罗斯方块游戏的代码实例
文章先介绍了关于俄罗斯方块游戏的几个术语. 边框--由10*20个空格组成,方块就落在这里面. 盒子--组成方块的其中小方块,是组成方块的基本单元. 方块--从边框顶掉下的东西,游戏者可以翻转和改变位 ...
- c++rpg黑框游戏_c++实现简单RPG对战游戏的代码.doc
c实现简单RPG对战游戏的代码 c++实现简单RPG对战游戏的代码 #include#include#includeenum propte {sw,ar,mg};class container//人物 ...
- 拼图游戏c语言简单,(C语言拼图游戏.doc
(C语言拼图游戏 (郑重声明:本文绝对本人原创,盗版必究) (免费提供给爱好C语言的朋友,希望志同道合的朋友们一起加油!) (运行环境Turbo C,下载的朋友把图形驱动路径改为自己驱动实际路径即可) ...
- java四连环游戏编程_Java实现四连环棋游戏
本文实例为大家分享了Java实现四连环棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: (1)双人游戏,有黑红两色棋子,双方各执一色棋子. (2)空棋局开盘,黑棋先发,从最上面一行开始下,棋子会 ...
- 猜数游戏控制猜测次数c语言,C语言小游戏之猜数字,三子棋游戏
#define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() { printf("************ ...
最新文章
- 51Talk乘一带一路之东风,破普惠教育巨浪
- 香港居民换领新智能身份证 市民对办理过程表满意
- Android源代码解析之(四)--gt;HandlerThread
- GDI绘图基本步骤总结(经典)
- 1+X web中级 Laravel学习笔记——Laravel中的路由
- Java工具方法——属性拷贝方法:BeanUtils.copyProperties(Object, Object)
- python怎么使用-如何使用python进行第一个机器学习项目(详细教程篇)
- error LNK2019: unresolve d external symbol _DriverEntry@8 referenced in function _GsDriverEntry@8
- 完整的python项目实例-python完整项目
- 图片和Base64编码相互转换
- 自动化学报latex模板相关问题解决方案
- vb连接mysql数据库报错_vb6连接mysql数据库
- Linux与网络基础知识
- Ubuntu系统如何进行屏幕截图
- C语言常量 变量与作用域
- android 5.1 取消录制屏幕跳出的权限对话框问题(开发版,不适用手机)
- java上课听不懂怎么办_上课听不懂怎么办?我们告诉你解决办法!
- js 将字符串中的大写变成小写,小写变成大写
- 【python】tkinter界面化+百度API—聊天机器人(四)
- 企业网配置必备技术NAT,3张图理清