見出し画像

Lancers×日本HP×マイクロソフト「Excelドット絵」コンペ入選!作品ダウンロード可


少し時期が過ぎましたが、2020年9月28日に、

Lancersと日本HP(Hewlett Packard)とMicrosoftの合同コンペ『【報酬総額200万円!】エクセルアート募集/大人も子供も夢中に!Excelドット絵でのお絵描き! 』にて、入選することができました。

特賞1本150万円、入選10本5万円の賞金が出るコンペで、応募総数300本の中からの入選となりました。


入選作品

画像5

画像1


以下、入選した作品の投稿ページです。


入選作品のダウンロード

画像18

※ 2020年10月7日、運営もとに確認し、ファイルの公開を許可していただきましたので公開いたします。許可頂き誠にありがとうございます。

VBAマクロです。ZIPファイルで圧縮しておりますので、解凍してご利用ください。


画像19

利用規約 & 再配布規約

コードの修正・変更・改造などを加えたり、シートを修正した後の公開には、特に制限を設けません。ただし、ウィルスやマルウェアなどを加えて再配布することを禁止します。コードや新たなドット絵の作成などを行わない状態での再配布も禁止します。また、当方の名をかたった再配布も禁止します。

画像20

ウィルススキャン他

ダウンロードしてご利用の際は、念のためウィルススキャンを実施してください。念のためCRC SHA-256の結果も提示しておきます。

CRC SHA-256:CEAAC7539FE5014FF88B8A299CF6304C38429045814BD35404737E45261C5CC9

画像21


作品コンセプト

画像4

作品制作時に、以下のコンセプトを定めました。

1.子供が楽しめて、且つ、子供の教育に役立つ作品を作る
2.ドット絵の自動生成ツールにはできない作品にする
3.エクセルらしい作品にする
4.可能な限りドット絵の枠組みにはまりつつ、可能な限りその範ちゅうを超える
5.自分らしい作品を作る


そこで、

・間違い探しにすることで子供の情操教育に役立つ作品にする
・ドット絵ツールにはできない、人間らしい作品にする
・エクセルVBAを組み込んで、実際にプレイできる作品にする

ということを行い、「自分らしく・エクセルらしい・子供のころ好きだった間違い探し」を実現しました。


VBAでプレイ可能!ドット絵間違い探し

画像6

画像2

ドット絵をクリックすると、正解か否か表示される! 音も鳴るよ!


画像7

画像3

間違ってないところをクリックすると、✖がついちゃう! これじゃ聲の形になっちゃうね🙄💦


間違い探しのアルゴリズム

画像8

この間違い探しは、Excelのシートをうまく使うことで、簡単に間違いか否かを判定できます。

具体的には、「問題用シート」と、「解答用シート」を二つ作っているところがミソです。「問題用シート」のセルをクリックすると、同じ位置に当たる「解答用シート」のセルの値を用いて判定しています。


画像10

解答用シート(全体表示)

画像11

画像9

「問題用シート」をコピーして、「解答用シート」を作っています。

そしてそれだけでなく、解答用シートの各セル――間違っていると判定させる領域のセル――に、それぞれ1~10の番号を設定しています。

拡大したところを見るとその意味が分かるはずです。


画像12

解答用シート(拡大)

画像13

画像14

各ドット絵のセルにそれぞれの間違いに番号(1~10)を振っています。

これによって、

・簡単に間違っているかどうかが判定できる、
・既に正解したところを再度クリックしていないか簡単に判定できる

ようになっています。
なお、これはいわゆる画像処理におけるテクニックの一つである「ラベリング」を利用しています。


画像15

ソースコード(抜粋)

画像16

今回のソースコードを抜粋して掲示します。簡単な判定で済んでいることがお分かりいただけるでしょう。

   ' 問題シートのクリック位置(address)と同じ位置の解答シートの値を取得'
   Dim value As Integer
   value = Sheet4.Range(address).value
   
   If value < 1 Or value > MAX_MISMATCH Then
       ' 不正解の処理'
       Exit Sub
   End If
   
   If answerd(value) Then
       ' 既に正解済みの処理'
       Exit Sub
   End If
   
   ' 正答用の配列に正解した番号をインデックスとしてフラグを立てる'
   answerd(value) = True
   ' 残りの間違いの数を減らす'
   last = last - 1
   
   ' 正解の処理'


後書き

画像17

実は、この作品は当日の1日だけで作成しました。

厳密にはお昼の13時から作業をして、募集の締め切り18時の20分前に作業を完了し、急いで応募用の文章を書いて提出しました。募集が開始されたときにはコンペの概要なども知っていましたが、Lancersの他の依頼や仕事の都合などでまとまった時間が取れなかったためです。

そこで最終日に強引に時間を空けてチャレンジしました。

本当はもう少し時間があれば、もっとレイアウトなどにもこだわりたかったのが本音です。各絵がバラバラと配置されてしまっていて、要素要素に一つの間違いがあるような状態になってしまったのが反省点でしょう。

とはいえ、「自分らしく・エクセルらしい・子供のころ好きだった間違い探し」を実現でき、それが入選という結果を伴ったことはうれしく思います。


私はデザインやアートとは日頃は無関係ですが、アート作品とデジタル作品をつなぐことができる、プログラマーとしての腕は十分に発揮できたと思います。

ここまで長文でしたが、ご覧いただきありがとうございました。


ランサーズプロフィール

noteプロフィール

運営ブログ


記事を読んでいただき、ありがとうございます。何かの参考になりましたら、ツイッター等でシェアして頂けると嬉しいです!😉 サポートいただけるとモチベアップに繋がります!