鱼C论坛

 找回密码
 立即注册
查看: 1999|回复: 3

[原创] 井字棋

[复制链接]
发表于 2020-2-2 00:02:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写了个井字棋不过需要双人游戏哈哈
def printTable():
    print(' | |')
    print(''+board[1]+'|'+board[2]+'|'+board[3])
    print(' | |')
    print('-----')
    print(' | |')
    print(''+board[4]+'|'+board[5]+'|'+board[6])
    print(' | |')
    print('-----')
    print(' | |')
    print(''+board[7]+'|'+board[8]+'|'+board[9])
    print(' | |')
def isWinner(board):
    #print(board)
    if board[1] == 'O' and board[4] == 'O' and board[7] == 'O'or\
       board[2] == 'O' and board[5] == 'O' and board[8] == 'O'or\
       board[3] == 'O' and board[6] == 'O' and board[9] == 'O'or\
       board[1] == 'O' and board[2] == 'O' and board[3] == 'O'or\
       board[4] == 'O' and board[5] == 'O' and board[6] == 'O'or\
       board[7] == 'O' and board[8] == 'O' and board[9] == 'O'or\
       board[1] == 'O' and board[5] == 'O' and board[9] == 'O'or\
       board[3] == 'O' and board[5] == 'O' and board[7] == 'O':
        return 'O'
    if board[1] == 'X' and board[4] == 'X' and board[7] == 'X'or\
       board[2] == 'X' and board[5] == 'X' and board[8] == 'X'or\
       board[3] == 'X' and board[6] == 'X' and board[9] == 'X'or\
       board[1] == 'X' and board[2] == 'X' and board[3] == 'X'or\
       board[4] == 'X' and board[5] == 'X' and board[6] == 'X'or\
       board[7] == 'X' and board[8] == 'X' and board[9] == 'X'or\
       board[1] == 'X' and board[5] == 'X' and board[9] == 'X'or\
       board[3] == 'X' and board[5] == 'X' and board[7] == 'X':
        return 'X'
def boardisFree(board,step):
    return board[int(step)] == ' '
board = [' ',]*10
printTable()
plear = 'X'
while True:
    if plear == 'X':
        step = input('X走,请输入(1~9):')
        if boardisFree(board,step):
            board[int(step)] = 'X'
            plear = 'O'
            #print(board)
            printTable()
            if(isWinner(board) == 'X'):
                print('X玩家赢了')
                answer = input('是否再来一局(N/Y):')
                if answer.upper() == 'Y':
                    board = [' ',]*10
                    continue
                if answer.upper() == 'N':
                    break
        else:
            print('该格子已有棋')
            printTable()
            continue
    if plear == 'O': 
        step = input('O走,请输入(1~9):')
        if boardisFree(board,step):
            board[int(step)] = 'O'
            plear = 'X'
            #print(board)
            printTable()
            if(isWinner(board) == 'O'):
                print('O玩家赢了')
                answer = input('是否再来一局(N/Y):')
                if answer.upper() == 'Y':
                    board = [' ',]*10
                    continue
                if answer.upper() == 'N':
                    break
        else:
            print('该格子已有棋')
            printTable()
            continue

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
zltzlt + 3 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 16:02:05 | 显示全部楼层
挺好的,为啥木有人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-11 02:22:13 | 显示全部楼层
本帖最后由 maki_ 于 2022-11-11 02:25 编辑

def printTable():
    print('0———————————0')
    print('| '+board[1]+' | '+board[2]+' | '+board[3]+' |')
    print('|———————————|')
    print('| '+board[4]+' | '+board[5]+' | '+board[6]+' |')
    print('|———————————|')
    print('| '+board[7]+' | '+board[8]+' | '+board[9]+' |')
    print('0———————————0')

优化了下棋盘,现在看起来会更舒服些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-24 20:24:30 | 显示全部楼层
建议添加当两方都没能赢(也就是和棋)时加入“平局!”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-21 22:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表