本文へ移動

Suido水道

管を回してポンプと排水口をつなぎます。収録された問題やシード付きの問題で遊べます。

「水道」は、水を届ける設備を表す言葉です。 名前について(英語)

目次

やり方

進捗の保存と復元

元の問題コードと進捗を組にして保存します。

必要なときに保存する

import {newGame,turnAt,gameProgress,gameFromProgress,gameCode} from "@johnmorrisdotca/suido";
import {SUIDO_5X5} from "@johnmorrisdotca/suido/levels-5x5";
const code = SUIDO_5X5[0][0];
const game = turnAt(newGame(code)!,0);
const kept = gameProgress(game);
const restored = gameFromProgress(code,kept);
console.log(restored?.turns,restored && gameCode(restored)===gameCode(game));
1 true

元の問題コードと進捗を一緒に保存します。進捗の形式は手数と向きを保持します。gameCodeは現在の盤面を表し、手数は保持しません。gameFromCodeは合法な向きを復元し、turnsを0にします。どちらも互換性のない入力にはnullを返します。

保存はホスト側で決める

SDKは文字列を返します。ダウンロードや保存を提供するかはホスト側で決めます。iframeは保存しません。要素のprogressは現在の進捗を読み、代入すると保存済みの文字列を復元します。suido-changeで更新を受け取れます。コールバックの変更だけでゲームを作り直さないようにしてください。

ヒントには、その問題に対応する正しい解答が必要です。数だけで完成を判断せず、水の流れと検証、イベントの仕様を確認してください。

ソースを見るGitHub で編集@johnmorrisdotca/suido 1.7.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。