python实现简单井字棋游戏

作者:无落 时间:2023-08-08 21:38:01 

井字棋,英文名叫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()

游戏结果:

python实现简单井字棋游戏

python实现简单井字棋游戏

还有一种结果是平局:

python实现简单井字棋游戏

来源:https://blog.csdn.net/qq_43433255/article/details/89298354

标签:python,井字棋
0
投稿

猜你喜欢

  • 水晶报表 分页 的问题

    2022-11-08 05:53:30
  • 深入了解Go语言中web框架的中间件运行机制

    2024-04-26 17:24:33
  • 如何用Python绘制棒棒糖图表

    2021-05-02 06:26:33
  • 一文教会你pandas plot各种绘图

    2021-04-29 19:41:11
  • Python ADF 单位根检验 如何查看结果的实现

    2021-05-24 13:40:39
  • web.config文件的中文解释

    2024-05-13 09:16:08
  • python代码实现将列表中重复元素之间的内容全部滤除

    2023-11-17 18:17:32
  • Python分析特征数据类别与预处理方法速学

    2023-04-29 09:55:52
  • 最新WebStorm2020.2注册码永久激活(激活到2089年) <font color=red>原创</font>

    2023-03-20 19:28:51
  • python3制作捧腹网段子页爬虫

    2021-01-17 20:58:48
  • 分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]

    2024-04-25 13:09:11
  • Python对象类型及其运算方法(详解)

    2023-08-30 09:11:59
  • Python字符串和字典相关操作的实例详解

    2023-08-19 12:49:08
  • python 如何比较两集合的大小关系

    2023-10-14 01:37:06
  • mysql5.1.26安装配置方法详解

    2024-01-29 01:47:03
  • 关于MySQL自增ID的一些小问题总结

    2024-01-22 18:52:56
  • python中使用pyhook实现键盘监控的例子

    2023-08-17 10:21:52
  • Matplotlib 折线图plot()所有用法详解

    2023-01-30 06:10:30
  • asp error对象基础

    2008-08-04 13:25:00
  • 基于 Dubbo Admin 动态调整服务超时时间的操作步骤

    2023-01-06 13:53:54
  • asp之家 网络编程 m.aspxhome.com