上次我們講到,伺服器上的遊戲狀態會直接反應出遊戲的畫面。
而我們也需要隨著遊戲進行,依照動作與遊戲規則來改變遊戲狀態。
看起來我們要先把這個遊戲狀態的結構固定好。
痾...想到什麼就先加上去看看好了, 今天的應該比較像 sudo-code 我們先專注在設計結構本身
決定好之後再一次幫他們定義好
%Game{}
建立了一局遊戲,我們先加上玩家好了。這個是 1 對 1 的遊戲,預計的流程大概是建立新遊戲之後,再把遊戲連結分享給對手加入。所以會有一個 host 一個 guest
%Game{
host: %Player{},
guest: %Player{}
}
Player 我們待會再詳細定。
接著是每一局當中的遊戲狀態,目前想到的有紀錄現在第幾局、紀錄結果
%Game{
host: %Player{},
guest: %Player{},
round: 1,
winner: nil
}
我現在困擾的事場面上的卡要放在 Game 層,還是要放在 Player 層,畢竟場上還是有分兩邊的。
我看我們現在的東西也滿少的,不如就先完全不要有 Player 層,全部都撒在 Game 試試看:
%Game{
host_hand: [],
host_desk: [],
guest_hand: [],
guest_desk: [],
round: 1,
winner: nil
}
或是用 Round(回合) 來分類
%Game{
rounds: %Round{...在下面}
host_hand: [],
guest_hand: [],
current_round: 1,
winner: nil
}
%Round{
host_desk: [],
guest_desk: [],
winner: nil
}
最後這樣似乎合理很多...嗎? 雖然之後有可以會再改,甚至是明天我們把這些結構寫出來的時候就會後悔,但目前看起來是還可以接受的開始。
你會怎麼紀錄這個遊戲的資料呢?