問題描述
設計乙個演算法,判斷玩家是否贏了井字遊戲。輸入是乙個 n x n 的陣列棋盤,由字元" ","x"和"o"組成,其中字元" "代表乙個空位。
以下是井字遊戲的規則:
玩家輪流將字元放入空位(" ")中。
第乙個玩家總是放字元"o",且第二個玩家總是放字元"x"。
"x"和"o"只允許放置在空位中,不允許對已放有字元的位置進行填充。
當有n個相同(且非空)的字元填充任何行、列或對角線時,遊戲結束,對應該字元的玩家獲勝。
當所有位置非空時,也算為遊戲結束。
如果遊戲結束,玩家不允許再放置字元。
如果遊戲存在獲勝者,就返回該遊戲的獲勝者使用的字元("x"或"o");如果遊戲以平局結束,則返回 "draw";如果仍會有行動(遊戲未結束),則返回 "pending"。
例子image.png
思路:這個井字遊戲相信大家都玩過,那如何去判別某個狀態的輸贏呢,其實很簡單,就是將所有的行、列、對角線的字母組成字串,然後與「o」x n 和「x」 x n進行對比。
class solution:
def tictactoe(self, board: list[str]) -> str:
re= #儲存所有情況的列表
n=len(board)
t='' #對角
u=''
for i in range(n):
t+=board[i][i]
u+=board[n-i-1][i]
for j in range(n):
g=''
for i in range(len(board)):
g=g+board[i][j]
if 'x'*n in re:
return "x"
if 'o'*n in re:
return "o"
if ' ' in ''.join(board):
return "pending"
else:
return "draw"
python井字棋 用python井字棋
上篇文章 python 井字棋 文本版 上 電腦端下棋策略是隨機的,有哪些位置可下棋,就隨機選擇乙個位置 實際中是不存這麼傻的對手的,賦予電腦乙個正常的智商還是很有必要的 至少當對手下一步要贏了,我們應該馬上堵住哪個位置 如果電腦自己能贏了,那就應該下能夠贏的位置 如果雙方都贏不了,那就找乙個比較好...
python 井字棋遊戲,Leetcode
今天刷到一道python的題目,對比了他人的做法,覺得自己簡直弱爆了,把這道題記錄一下,也供大家學習,真的很棒!設計乙個演算法,判斷玩家是否贏了井字遊戲。輸入是乙個 n x n 的陣列棋盤,由字元 x 和 o 組成,其中字元 代表乙個空位。規則玩家輪流將字元放入空位 中。第乙個玩家總是放字元 o 且...
Python簡易井字棋小遊戲
你好啊,我是乙個自學python的小白.才剛學會基礎的迴圈,方法這些.利用這些寫了乙個超簡易的井字棋小遊戲,希望你能喜歡.不要忘了點讚哦 from sys import ar import sys 輸入提示符,可不要 promot 陣列,用來模擬棋盤 arr 0for i in range 3 fo...