Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的井字游戏的列检查器有什么问题?_Python - Fatal编程技术网

Python 我的井字游戏的列检查器有什么问题?

Python 我的井字游戏的列检查器有什么问题?,python,Python,这是我的tic-tac-toe网络应用程序。有一个game.html未包括在内,但如果需要可以提供。下面的python代码可以正确识别玩家X或O是否有3个符号在一行中,并将给他们胜利。然而,它不能确定一个玩家是否在一列中有他们的3个符号,我不明白为什么尽管仔细地遵循它 谁能告诉我我的列检查算法有什么问题吗 from flask import Flask, render_template, session, redirect, url_for from flask_session import S

这是我的tic-tac-toe网络应用程序。有一个
game.html
未包括在内,但如果需要可以提供。下面的python代码可以正确识别玩家X或O是否有3个符号在一行中,并将给他们胜利。然而,它不能确定一个玩家是否在一列中有他们的3个符号,我不明白为什么尽管仔细地遵循它

谁能告诉我我的列检查算法有什么问题吗

from flask import Flask, render_template, session, redirect, url_for
from flask_session import Session
from tempfile import mkdtemp

app = Flask(__name__)

app.config["SESSION_FILE_DIR"] = mkdtemp()
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)


@app.route("/")
def index():
    if "board" not in session:
        session["board"] = [[None, None, None], [None, None, None], [None, None, None]]
        session["turn"] = "X"
    winner = None
    for row in session["board"]:
        if set(row) == set("X"):
            winner = "X"
        if set(row) == set("O"):
            winner = "O"
    for i in range(3):
        col_lst = []
        for row in session["board"]:
            col_lst.append(row[i])
        if set(col_lst) == "X":
            winner = "X"
        if set(col_lst) == "O":
            winner = "O"
    return render_template("game.html", game=session["board"], turn=session["turn"], winner=winner)


@app.route("/play/<int:row>/<int:col>")
def play(row, col):
    session["board"][row][col] = session["turn"]
    if session["turn"] == "X":
        session["turn"] = "O"
    else:
        session["turn"] = "X"
    return redirect(url_for("index"))
从flask导入flask,呈现模板,会话,重定向,url
从会话导入会话
从tempfile导入mkdtemp
app=烧瓶(名称)
app.config[“会话文件目录”]=mkdtemp()
app.config[“SESSION_PERMANENT”]=False
app.config[“会话类型”]=“文件系统”
会话(应用程序)
@附件路线(“/”)
def index():
如果“董事会”未开会:
会话[“董事会”]=[[无,无,无],[无,无,无],[无,无,无]]
会话[“转动”]=“X”
赢家=无
对于会话[“板”]中的行:
如果设置(行)=设置(“X”):
winner=“X”
如果设置(行)=设置(“O”):
winner=“O”
对于范围(3)中的i:
col_lst=[]
对于会话[“板”]中的行:
列附加(第[i]行)
如果设置(col_lst)=“X”:
winner=“X”
如果设置(col_lst)=“O”:
winner=“O”
返回渲染模板(“game.html”,game=session[“board”],turn=session[“turn”],winner=winner)
@应用程序路径(“/play/”)
def播放(行、列):
会话[“板”][行][列]=会话[“转”]
如果会话[“转动”]=“X”:
会话[“回合”]=“O”
其他:
会话[“转动”]=“X”
返回重定向(url_用于(“索引”))

我发现了问题所在。我必须将“X”和“O”放在一个集合函数中,类似于rows算法。

语法和大写的细微更正。如果这能解决您的问题,请接受自己的答案。@MarcinOrlowski我会的,但界面上说我必须等待2天。