井字棋,英文名叫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实现简单井字棋游戏相关推荐

  1. python实现简单小游戏_python实现简单井字棋小游戏

    #Tic-Tac-Toe 井字棋游戏 #全局常量 X="X" O="O" EMPTY=" " #询问是否继续 def ask_yes_no( ...

  2. c语言实现简单的多子棋游戏

    c语言实现简单的多子棋游戏# 系列文章目录 c语言实现简单的多子棋游戏 前言 *大家好呀!今天我们要探究怎么用c语言实现以三子棋为基础的五子棋.十子棋等等多子棋游戏.游戏对代码的要求不高,只需要学习c ...

  3. python坦克大战游戏_python实现简单坦克大战

    基于对面向对象编程的思想完成简单的坦克大战游戏.主要目的锻炼面相对象编程思想 同样的在使用python进行游戏编写时需要安装pygame模块 安装方法: pycharm安装方式:File --> ...

  4. python开发网络小工具_Python 实现简单网络应用程序开发

    最后一次更新于 2019/07/10 ICMP Ping 目的 此任务是重新创建第3讲(延迟,丢失和吞吐量)中讨论的ping客户端. Ping 是一个用于在计算机网络中测量延迟和丢失的工具. 在实际应 ...

  5. python编程超市购物系统_python实现简单购物车系统(练习)

    #!Anaconda/anaconda/python#coding: utf-8 #列表练习,实现简单购物车系统 product_lists= [('iphone',5000), ('computer ...

  6. python编的俄罗斯方块游戏_Python使用pygame模块编写俄罗斯方块游戏的代码实例

    文章先介绍了关于俄罗斯方块游戏的几个术语. 边框--由10*20个空格组成,方块就落在这里面. 盒子--组成方块的其中小方块,是组成方块的基本单元. 方块--从边框顶掉下的东西,游戏者可以翻转和改变位 ...

  7. c++rpg黑框游戏_c++实现简单RPG对战游戏的代码.doc

    c实现简单RPG对战游戏的代码 c++实现简单RPG对战游戏的代码 #include#include#includeenum propte {sw,ar,mg};class container//人物 ...

  8. 拼图游戏c语言简单,(C语言拼图游戏.doc

    (C语言拼图游戏 (郑重声明:本文绝对本人原创,盗版必究) (免费提供给爱好C语言的朋友,希望志同道合的朋友们一起加油!) (运行环境Turbo C,下载的朋友把图形驱动路径改为自己驱动实际路径即可) ...

  9. java四连环游戏编程_Java实现四连环棋游戏

    本文实例为大家分享了Java实现四连环棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: (1)双人游戏,有黑红两色棋子,双方各执一色棋子. (2)空棋局开盘,黑棋先发,从最上面一行开始下,棋子会 ...

  10. 猜数游戏控制猜测次数c语言,C语言小游戏之猜数字,三子棋游戏

    #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() { printf("************ ...

最新文章

  1. 51Talk乘一带一路之东风,破普惠教育巨浪
  2. 香港居民换领新智能身份证 市民对办理过程表满意
  3. Android源代码解析之(四)--gt;HandlerThread
  4. GDI绘图基本步骤总结(经典)
  5. 1+X web中级 Laravel学习笔记——Laravel中的路由
  6. Java工具方法——属性拷贝方法:BeanUtils.copyProperties(Object, Object)
  7. python怎么使用-如何使用python进行第一个机器学习项目(详细教程篇)
  8. error LNK2019: unresolve d external symbol _DriverEntry@8 referenced in function _GsDriverEntry@8
  9. 完整的python项目实例-python完整项目
  10. 图片和Base64编码相互转换
  11. 自动化学报latex模板相关问题解决方案
  12. vb连接mysql数据库报错_vb6连接mysql数据库
  13. Linux与网络基础知识
  14. Ubuntu系统如何进行屏幕截图
  15. C语言常量 变量与作用域
  16. android 5.1 取消录制屏幕跳出的权限对话框问题(开发版,不适用手机)
  17. java上课听不懂怎么办_上课听不懂怎么办?我们告诉你解决办法!
  18. js 将字符串中的大写变成小写,小写变成大写
  19. 【python】tkinter界面化+百度API—聊天机器人(四)
  20. 企业网配置必备技术NAT,3张图理清

热门文章

  1. 应用数学软件测试题,数学与应用数学专业试题.doc
  2. HTML创建简单动态时钟
  3. Barrett reduction
  4. UVA - 10400 Game Show Math
  5. MapReduce 基础案例 之 平均值 计算
  6. python列表所有元素平均值_python—组合数据类型
  7. Linux dev是什么文件,linux dev文件详解
  8. 如何成为优秀的技术主管?你要做到这三点
  9. 华为网络配置(路由配置)
  10. 如何删除Word 2010中的“向下箭头”