Python简易井字棋小游戏

前言

你好啊,我是一个自学Python的小白.才刚学会基础的循环,方法这些.利用这些写了一个超简易的井字棋小游戏,希望你能喜欢.不要忘了点赞哦

代码

from sys import argv
import sys

#输入提示符,可不要
promot=">"
#数组,用来模拟棋盘
arr=[[0 for i in range(3)] for i in range(3)]

#棋盘输出
def print_board(arr):
    print("棋盘:")
    for i in range(3):
        for j in range(3):
            print(arr[i][j],end=' '),
        print()

#用来判断红方是否胜利
def check_win_red(arr):
    if ((arr[0][0]==arr[0][1]==arr[0][2]=='*') or (arr[1][0]==arr[1][1]==arr[1][2]=='*') or
    (arr[2][0]==arr[2][1]==arr[2][2]=='*') or (arr[0][0]==arr[1][0]==arr[2][0]=='*') or
    (arr[0][1]==arr[1][1]==arr[2][1]=='*') or (arr[0][2]==arr[1][2]==arr[2][2]=='*') or
    (arr[0][0]==arr[1][1]==arr[2][2]=='*') or (arr[0][2]==arr[2][0]==arr[1][1]=='*')):
        return True
    else:
        return False
#用来判断黑方是否胜利
def check_win_black(arr):
    if ((arr[0][0]==arr[0][1]==arr[0][2]=='#') or (arr[1][0]==arr[1][1]==arr[1][2]=='#') or
    (arr[2][0]==arr[2][1]==arr[2][2]=='#') or (arr[0][0]==arr[1][0]==arr[2][0]=='#') or
    (arr[0][1]==arr[1][1]==arr[2][1]=='#') or (arr[0][2]==arr[1][2]==arr[2][2]=='#') or
    (arr[0][0]==arr[1][1]==arr[2][2]=='#') or (arr[0][2]==arr[2][0]==arr[1][1]=='#')):
        return True
    else:
        return False
#获取帮助的方法
def get_help():
    print("""
        *输入横坐标纵坐标回车落子,eg:1 1
        *当每行或者每列或者对角满足三个相同为胜
        *因为还不会,所以必须输入两个数并且空格开,没办法,才刚开始学
    """)
#进入游戏
while True:
    print("欢迎体验简易五子棋模拟器,回车继续,输入q回车退出")
    print("输入h获取提示")
    q = input(promot)
    if q=='q':
        break
    elif q=='h':
        get_help()
    else:
        while True:
            while True:
                print_board(arr)
                #红方先走1
                print("请红方输入落子处,中间用空格分开:")
                x,y = input(promot).split()
                x = int(x)-1
                y = int(y)-1
                if x not in (0,1,2) or y not in (0,1,2):
                    print("请输入3以内的一对数凑成坐标")
                elif arr[x][y]=='*' or arr[x][y]=='#':
                    print("请在没有子的地方落子")
                else:
                    arr[x][y]='*'
                    break

            if check_win_red(arr):
                print("red win")
                print_board(arr)
                print("======================")
                break

            while True:
                print_board(arr)
                print("请黑方输入落子处,中间用空格分开:")
                x,y = input(promot).split()
                x = int(x)-1
                y = int(y)-1
                if x not in (0,1,2) or y not in (0,1,2):
                    print("请输入3以内的一对数凑成坐标")
                elif arr[x][y]=='*' or arr[x][y]=='#':
                    print("请在没有子的地方落子")
                else:
                    arr[x][y]='#'
                    break

            if check_win_black(arr):
                print("black win")
                print_board(arr)
                print("======================")
                break

运行效果:

Python简易井字棋小游戏_第1张图片

你可能感兴趣的:(Python小游戏,自学手册,python,游戏)