私はRubyで書かれたコマンドラインのTictactoeゲームに取り組んできました。 (規則を覚えていない人にはsee hereを入力してください)Tictactoeのスコアによるハッシュチェック
私が見た実装例のほとんどは、多次元配列を使ってBoard
構造を表現しています。それは[[1,2,3], [4,5,6], [7,8,9]]
のようです。 (Here is an example)
しかし、他の解決策を見る前に、私はハッシュの実装から始めました。私は文字(A、B、C)と数字(1,2,3)を持つ行を表し、値として "X"または "O"を設定します。ゲーム中の実装例:
{:a1=>"X", :b2=>"X", :c3=>"X", :b1=>"O", :c1=>"X", :c2=>"O", :b3=>"X", :a2=>"O", :a3=>"X"}
(。。。すべての動きで、私はこのハッシュへの新しい位置を追加することは、セルグリッドのようなものだ簡単にはASCIIテーブル内で可視化すること)
すべてが素晴らしいと感じました私が勝者のポジションを決定する方法を探し始めるまで。しかし今、私は自分のハッシュを使用して勝者のポジションかどうかを判断する良い方法を見つけることに固執しています。
ハッシュを使用して問題を解決する方法を教えてください。そして/または、この特定のシナリオで多次元配列の代わりにハッシュを使用することが悪い考えである理由を説明してください。それは勝者の位置やない場合はここで
はチェックの悪い見ている方法である(単一シナリオでは...):
def check_status
if(@@cells[:a1] == "X" && @@cells[:a2] == "X" && @@cells[:a3] == "X")
false # game will end
else
true # game will continue
end
end