現在、より複雑な Tic Tac Toe ゲームを設計しています。保存したゲームを再開するかどうかをプレイヤーに尋ねたいと思います。はいの場合、テキストまたはバイナリ ファイルからゲームの状態を読み込みます。誰もそれを行う方法を知っていますか? ありがとうございました!
1193 次
2 に答える
1
通常の方法は、ステートフル オブジェクトを何らかのファイルにシリアライズ/デシリアライズすることです。シリアライズに代わる良い方法は、Google Protocol Buffersを使用することです。
あなたの場合、シリアル化が必要なものは 1 つだけです。それはゲーム ボードです。IMOには、最後に保存された正確な時点でゲームを再開できる十分な情報が含まれています.
于 2012-04-24T15:02:55.383 に答える
0
最初に行う必要があるのは、ゲームの状態を含むデータのリストを作成することです。これには間違いなく含まれます。
- ゲームボード (「X」のある位置、「0」のある位置、空の位置)
- 誰の番ですか?(プレーヤーかコンピュータか?)
含めることができます (ゲームの複雑さによって異なります)。
- AI難易度
- 私が忘れているかもしれない他のこと。
簡単にするために、ボードとターンだけを見ていると仮定します。ボードの構造/クラスが既にあるはずです。また、ゲームの「状態」(ボードとターンを含む) の構造/クラスを持つこともできます。ここで必要なのは、次のことを行うためのいくつかの関数です (それぞれに 1 つの関数)。
- データ構造をバイナリ (またはその他のもの) にキャストする関数。
- バイナリをファイルに書き込む関数。
- ファイルからバイナリを読み取る関数。
- バイナリを解釈し、ゲームの「状態」をロードする関数。
- (オプション) ユーザーが保存時にファイルのディレクトリ/名前を選択できるようにする機能 (ハードコーディングされたディレクトリを使用して、ゲームを現在の日付/時刻として保存することもできます)。
- (オプション) 保存したゲームをロードするかどうかをユーザーに尋ねる機能。はいの場合、ユーザーにディレクトリを要求するか、ユーザーがハードコードされたディレクトリ名から選択できるファイルの選択肢のリストを提供します。
これは圧倒されるように思えるかもしれませんが、小さなことから始めてください。次の作品を見る前に、1 つの作品を試してみてください。
于 2012-04-24T16:16:04.267 に答える