エクセルでお絵描きロジック

エクセルでイラストロジックを作ってみました。
自分で遊ぶためのもので、自動で作ったり解いたりするわけじゃないです。
正解判定もありません。

あえてマクロは使わないで作ったので、少し力業です。メモリー少ないPCだとつらいかも。

遊び方

  1. はじめて開いたときは、上部に黄色いバーで許可を求めるメッセージがでるので許可してください。
  2. MiniCGIのサイトから遊びたい問題番号を探して、問題取得シートのB1セルに入力すると問題を取得します。
  3. ゲームシートに問題が表示されるので、1,0を入力して問題を解いてください。
  4. 別の問題をやりたいときはゲームシートのA1セルの数式を、ロジック内部のセル全部にコピーして、問題取得シートのB1に問題番号を入力してください。

どうやって作ったの

条件付き書式、WEBSERVICE関数、数式に名前を付けるなどかなり上級テクニックを使っています。
特に難しかったのは、色々なサイズの問題に自動で対応すること。マクロを使うしかないかとあきらめてましたが、
関数配置をテーブルにすることで何とか実現できました。セル参照が複雑すぎたのか、再計算に時間がかかることがあります。
改善する余地は結構あるかな。

イラストロジックを遊ぶ部分

裏計算シートがみそです。ゲームシートに1,0を入力していくと、裏シートで連続するセルを数えて縦横のヒントを更新しています。

裏計算シート

ゲームシートの入力に応じて、連続するブロック数を数えます。
全てのセルに同じ数式が入っています。

@CHOOSE(VLOOKUP(ROW(),関数配置,MATCH(COLUMN(),関数表列)),"",縦方向ヒント,横方向ヒント,横方向カウント,横方向インデックス,縦方向カウント,縦方向インデックス,ゲーム!K8,サイズ)

この仕組みはあとで説明します。数式の後ろの縦方向ヒント,横方向ヒント,…が名前を付けた数式になります。
各数式の定義を参照するには、数式タブ→名前の管理を使います。

数式に名前を付ける

縦方向カウント・横方向カウント

縦方向インデックス・横方向インデックス

縦方向ヒント・横方向ヒント

連続セルの数え方

条件付き書式

問題取得部分

WEBSERVICE関数

JSONP形式の解析

ゲームシートの描画

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

アップロードファイルの最大サイズ: 8 MB。 添付可能なファイル:画像, 音声, 動画, 文書, スプレッドシート, 対話型, アーカイブ, その他 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ

Translate »