設(shè)計(jì)一個Tic Tac Toe
根據(jù)圖片可以知道,只要vertically, horizontally, 兩個斜對角線 ?一共4個路線上 某一個路線上連了N個子就算獲勝搬卒!
move(x, y, player) 是下棋function的參數(shù)灯谣。
return 只要return 誰獲勝,要么player1, 要么player2刚盈, 要么沒人獲勝」夷裕【不需要畫出棋盤】
看到了整個邏輯藕漱,但是還是非常難實(shí)現(xiàn)。 怎么判斷有N個子連在了一起崭闲?
我初步的想法是肋联,每當(dāng)move一步之后,move(x, y, player). 把同一個x的row掃描一下镀脂,看看是不是全部== player, 是的話宣布勝利牺蹄。 然后掃描一下y的col,看看是不是都是player,是的話宣布勝利薄翅。對角線的話就有點(diǎn)麻煩了沙兰,因?yàn)橛械狞c(diǎn)是不存在對角線的,有的點(diǎn)在對角線上翘魄。 最中心的點(diǎn)還在2條對角線上鼎天。【不過后來想想其實(shí)還好暑竟,只要x !=y的斋射,我們直接不查對角線。 如果x==y的但荤,把兩條對角線上查一下罗岖, 雖然有點(diǎn)費(fèi)時間,但好歹也算完成任務(wù)腹躁∩0】
O(n) 應(yīng)該可以搞定。
優(yōu)化:【超級聰明纺非。哑了。赘方。Player1的添加+1, Player2的添加-1弱左, 抵消】