労作展

2025年度労作展 受賞作品

数学科

初めての労作展

1年Y.S.君

 労作展について初めて知ったのは、小学五年生の時に訪れた、普通部の学校説明会の時だった。母に連れられてやってきて、最初は乗り気ではなかった。しかし、いざ説明会が行われる体育館に入ってみると、体育館のステージ上に、過去の先輩方の労作展の作品が映し出されていた。
「こんなこともしていいの?」
 僕は衝撃を受けた。特に目を引いたのは、ルービックキューブの写真であった。僕はルービックキューブが好きでよくルービックキューブを回して遊んでいる。そして、遊んでいるときにいつも思うのが、「ルービックキューブを自動で解いてくれないかな」というものだった。
「ここでルービックキューブを解くものを作りたい!」
 それから普通部を目指すようになった。
 そして中学受験をして普通部に入り、しばらくして労作展の計画表が配布された。そこで迷わずルービックキューブを解くプログラミングを作ることを書いた。なぜここでプログラミングなのかというと、まず本当は「ルービックキューブを解くロボット」を作りたかったのだが、最初からそれはハードルが高いと思ったのと、プログラミングなら「scratch」という簡単なプログラミングで遊んでいたのでプログラミングの知識はあったからだ。
 しかし、いざ夏休みが始まっても(夏休みといっても普通部の夏休みは長く、今回の夏休みは七月一九日から始まった)、最初は何をすればいいのかわからなかった。とりあえずルービックキューブを早く解くアルゴリズム(解き方)をWEBで探してみた。しかし、なかなか分かりやすいアルゴリズムがなく、あったとしても海外の人のものばかりだった。結局諦めて、「ルービックキューブをこう回したらこうなる」というのをすべて探し出す、効率が悪い「総当たり」でルービックキューブを解くことにした。
 また、ルービックキューブをプログラミングで解くには、ルービックキューブの状態を何らかの形で表さないといけないことにも気づいて、自分でルービックキューブの状態を表す方法を作った。でもその表現方法は分かりづらく、結局WEBを検索したらそれよりも分かりやすく短く表せる方法があって、その方法にすることになった。
 このようにいろいろと方向転換しているうちに、いつの間にか八月に入り、一週間以上経っていた。さすがにまずいと思ってプログラミングを始めた。まず与えられたルービックキューブの状態から回したらどのような状態になるのかを出すプログラミングを、実際にルービックキューブを使って書いてみた。それは三日くらいでできて簡単だったのだが、そこからが大変だった。さっきも言った、「『ルービックキューブをこう回したらこうなる』というのをすべて探し出す」プログラムを書こうとしたのだが、繰り返しの処理が複雑でつまずき、エラーしか出ず、何度もプログラムを書き直していた。
 そして、新しく書いたプログラムを全面的に書き直して、やっとうまくいくプログラムを作れたのだが、それには致命的な欠点があった。ルービックキューブを解く方法を探し出すのに三分以上かかってしまっていたのだ。さすがにこれでは提出できないので、同じ手を二回繰り返さないというような工夫を施して、どうにか半分くらいはかかる時間を短縮することができた。
 プログラムがある程度完成したら、次は論文の制作に取り掛かった。論文で自分の作ったプログラムを解説したのだが、完成度が低く、荒井先生にアドバイスをもらいながら、何とか論文も完成させていった。しかし、出来た作品は全力を尽くしたが自分が満足いくものではなかった。なので、賞も貰えないだろうと考えていた。
 労作展当日、午前中は部活の仕事で忙しく、自分の教室には入っていなかった。昼ご飯を食堂で食べ終わり、ついでにという気持ちで教室に入った。そこに待っていたのは、展示しているルービックキューブで遊ぶクラスメイトと、
「賞取ってるよ」
の一言。まさかと思って自分の作品を見てみるとそこには賞と書かれている札がついていた。夏休みの苦労が報われたと思い、とても嬉しかった。
 今回の労作展では、ルービックキューブをプログラムで解いたのだが、実は六回まで崩したルービックキューブまでしか揃えられないプログラムで、さらに視覚的にも分かりにくかった。来年は今回のプログラムをベースによりよいプログラムを作っていきたい。