python实例:井字棋

本文介绍如何使用Python编程语言实现经典的井字棋游戏。包括游戏板的创建、游戏逻辑以及玩家交互等核心部分。
摘要由CSDN通过智能技术生成

 

目录

board

game

player


board 

class Board(object):
    """棋盘类"""

    def __init__(self):
        self.board_data = [" "] * 9  # 棋盘数据
        self.movable_list = list(range(9))  # 可移动列表

    def show_board(self, show_index=False):
        """显示棋盘

        :param show_index: True 表示显示索引 / False 表示显示数据
        """
        for i in (0, 3, 6):
            print("       |       |")

            if show_index:
                print("   %d   |   %d   |   %d" % (i, i + 1, i + 2))
            else:
                print("   %s   |   %s   |   %s" % (self.board_data[i],
                                                   self.board_data[i + 1],
                                                   self.board_data[i + 2]))
            print("       |       |")

            if i != 6:
                print("-" * 23)

    def move_down(self, index, chess):
        """在指定位置落子

        :param index: 列表索引
        :param chess: 棋子类型 X 或 O
        """
        # 1. 判断 index 是否在可移动列表中
        if index not in self.movable_list:
            print("%d 位置不允许落子" % index)
            return

        # 2. 修改棋盘数据
        self.board_data[index] = chess

        # 3. 修改可移动列表
        self.movable_list.remove(index)

    def is_draw(self):
        """是否平局"""
        return not self.movable_list

    def is_win(self, chess, ai_index=-1):
        """是否胜利

        :param chess: 玩家的棋子
        :param ai_index: 预判索引,-1 直接判断当前棋盘数据
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值