我正在Flask做一个tic tac toe用于学习目的。该板表示为字典,是一个全局变量。我想要一个按钮,重置"该板是空的,所以用户可以再次播放,但我的代码不起作用(它执行没有错误,但板保持不变)
html按钮调用执行的/ reset,但不会更改板值。
任何想法我做错了什么? 非常感谢!
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div class="enter name">
<form action="/play1" method="POST">
<lable>Please specify your move (1,2,3,4,5,6,7,8,9)</lable>
<input type="number" name="move" value"">
<input type="submit" value="Make your move!">
</form>
</div>
<div>
<table border="1">
<tr id="row1">
{% if theBoard[1]!=' ' %}
<td><h1>{{ theBoard[1] }} </h1></td>
{% else %}
<td><h1> 1 </h1></td>
{% endif %}
{% if theBoard[2]!=' ' %}
<td><h1>{{ theBoard[2] }} </h1></td>
{% else %}
<td><h1> 2 </h1></td>
{% endif %}
{% if theBoard[3]!=' ' %}
<td><h1>{{ theBoard[3] }} </h1></td>
{% else %}
<td><h1> 3 </h1></td>
{% endif %}
<tr id="row2">
{% if theBoard[4]!=' ' %}
<td><h1>{{ theBoard[4] }} </h1></td>
{% else %}
<td><h1> 4 </h1></td>
{% endif %}
{% if theBoard[5]!=' ' %}
<td><h1>{{ theBoard[5] }} </h1></td>
{% else %}
<td><h1> 5 </h1></td>
{% endif %}
{% if theBoard[6]!=' ' %}
<td><h1>{{ theBoard[6] }} </h1></td>
{% else %}
<td><h1> 6 </h1></td>
{% endif %}
<tr id="row3">
{% if theBoard[7]!=' ' %}
<td><h1>{{ theBoard[7] }} </h1></td>
{% else %}
<td><h1> 7 </h1></td>
{% endif %}
{% if theBoard[8]!=' ' %}
<td><h1>{{ theBoard[8] }} </h1></td>
{% else %}
<td><h1> 8 </h1></td>
{% endif %}
{% if theBoard[9]!=' ' %}
<td><h1>{{ theBoard[9] }} </h1></td>
{% else %}
<td><h1> 9 </h1></td>
{% endif %}
</table>
</div>
<div class="reset">
<form action="/reset" method="GET">
<lable>Do you wanna play again?</lable>
<button>Play!</button>
</form>
</div>
</body>
</html>
{% endblock %}
html:
g++
答案 0 :(得分:2)
html按钮调用执行的/ reset,但不会更改板值。
def reset():
for i in range (1,9):
theBoard[i] == ' ' # <--- This line
return render_template("test.html", theBoard=theBoard)
您使用==
进行比较,返回True
或False
,您想要的是=
运算符(赋值运算符,单等号),所以:theBoard[i] = ' '
答案 1 :(得分:1)
以下代码导致我所看到的错误:
theBoard[i] == ' '
以上实际上是执行比较而不是分配,将其更改为:
theBoard[i] = ' '