←トップへ

←部誌ページへ

CAUTION!!

この部誌はパズル研究部の部員達の自己満足の塊ですので、ここに載っているパズルの 中には、遊び要素の多いネタパズルやパズル通信ニコリには絶対載らない ような超難度パズルも数多く掲載されております。十分注意して取り掛かって下さい。

また、ここに載っているパズルは、誤植などの理由により解けないパズルや、 別解の発生するパズルも存在する事があります。予めご了承下さい。

もう何が何やら...

今年度から仕事で学園広報を担当することになりました。

今まで雰囲気で用いていた 『言葉』 と云うモノに,敏感になりました。現実の全てを言葉で表現するには無理があり,だからと云って踊ったりする技能もなく,チョッと苦悩しています。当然,数式も役に立ちません。さらには,場面によっては反射神経も必要であり,結果として綱渡り感は否めません。反省と共に,いやな汗が流れます。

例えば 『多様性』 と云う言葉があります。最近よく耳にする言葉です。「多様性の担保が重要である」と云う趣旨の話を,国内外の大学関係者,果ては中学・高校の関係者からも聴きます。実のところ,僕も使用します。でもある時,ふと疑問みたいなモノを感じました。

開成学園を紹介する時,僕は以下のようなことを云います。

教員A:「開成では中学が一学年300名,高校が一学年400名なので,全学年を合わせると2100名います。人数的にかなり多様な人材が集まっています」

教員B:「開成には2100名もいます。その規模の大きさから自分の学年で同好の士が5名ぐらいはいます。そのため,ある程度の行動力さえあれば仲間が見つかり,個人が疎外感を持つことはまずありません。時にはその仲間で同好会が結成されたりもします。事実,20ほどの同好会が存在し,部も合わせると70ほどになります。この70と云う数字は開成が持つ多様性の表れだと思っています。」

さて,この二つの話にどのような感想を持つでしょうか。さらには,大学と中・高では規模が違うので『多様性』が意味することもかなり異なると思いきや,リベラルアーツ系の大学などは開成学園と人数的に変わらなかったりするので厄介です。僕はきっと『多様性』を理解できていません。

何となくですが,『多様性』って便利で厄介です。最近,僕はこの言葉を用いなくなりました。

また,広報という仕事を通じて結構な方々とお会いする機会もあります。

良く云われることではありますが,開成学園にとってOBの存在は大変な財産です。しかし仕事でのお付き合いとなると,ただただ申し訳ないばかりで恐縮してしまいます。皆さん,それぞれの分野で凄い存在です。その方々に手弁当で活動していただいています。今のテーマは,OBの方々と現役生や受験生との出会いをどのように創り出すかです。チョッと広報の域を超えていますが,是非とも取り組みたい話題です。なんか興味深い手はないでしょうか。

総じて,広報を担当するようになってからの5か月がトンデモナイ勢いで過ぎていきました。

たぶん踏ん張りどころなんだろうなぁ...と感じています。

さてさて話題は変わり,文化祭です。

子供たちをみるのは楽しいことです。ましてや,ある程度以上の真剣さで何かに取り組んでいる子をみるのは尚更です。開成はそのような子達の先に,ちゃんと『何か』がある学校です。それは保証できるのですが,何故そうなっているのかが謎です。世の中,そう云うモノなのでしょうか。

パズ研の皆さんも,それぞれの真剣さで何かしらに取り組んでいるようで何よりです。パズルひとつ作れない顧問ですが,これからもよろしくお願いいたします。

参加されている皆様方も,パズ研の子達の先に何があるのかを頭に置きながら,ぜひ話しかけてみてください。こう云うのも文化祭の楽しみ方だと思います。

毎度,どうでもいい文章ですみません。このような文章を書ける自分にあきれています。

...と云う文章を,今から5年前の平成26年に書きました。

『広報』としての3年間,海外での説明会やニューヨークタイムズの取材対応を経験し,何となくですが時代の潮流も感じました。また昨年は3度目の6年間を終え,卒業生を送りました。もう50歳,開成では25年が経ちます。

此の間の経験で,なんだかんだ云って得た実感は「意外と開成イケてる」です。

数学科を含め教科の充実ぶりは目を見張りますし,ウチの子たちはカンボジアに学校を作らなくても,英語さえクリアできれば,何処の大学へも進学を望めます。「本気」になればです。

そして今,僕は昨年から学年主任をしています。いま中二を担当していますので,予定では卒業までの5年ほど学年主任をします。そろそろ自分トコの生徒とOBとのコラボに手を付ける時期かな,と考えています。「ようこそ先輩」スタイルではなく,出来ることならOBのトコへお邪魔するスタイルを模索します。さて,どうしましょうか。

やっぱり目の前に生徒がいる仕事は愉しいですね。

さて,パズ研です。今年は100ページを超える部誌を作ったとのこと。内容の充実も凄いようです。さすがの編集長! また合宿も昨年から行っています。二泊三日ですが,基礎体力作りに可なりの効果があるようです。OBも貢献してくれています。

上にも書きましたが,パズルはお子様に任せ,大人の方々は是非ともパズ研の子に話しかけてみてください。チョッとコミュニケーションの難があるかもですが,其れをかき分けると,きっと「開成」を感じられると思います。

パズル研究部顧問  数学科
清水 哲男

部長挨拶

この度は、パズル研究部による参団「エニグマゼヒツェーン」にお越しいただき、誠に有難うございました。毎年、ドイツ語で「謎」を表す「エニグマ」にドイツ語で数字をくっつけて参団名にしています。 今年は16年目で、16はゼヒツェーンなんだそうです。

今年は高2の数が多く、部誌100ページ企画が立ち上げられました。 さらに初めて合宿を行ったり部Tを作ったりと、革新の年となりました。 この年がたまたま令和元年にあたり、奇遇だなあと思う次第です。

少し部誌について書きたいと思います。 今回はかなり充実した物ができたのではと思います。種類・量ともに増えたので、 きっと面白いなと思えるパズルが見つかると思います。 また、読み物系も増えました。そちらも楽しんでいただけたらなと思います (一部僕にも分からないものがありますが)。 ただ、この部誌は部員達の自己満足の塊ですので、超難易度パズルが多数掲載 されております。Lv.1からして難しいです。 十分注意して取り掛かってください。 ニコリを一度解いてからやってみると良いかもしれません。

最後におそらく僕の20倍ほどは働いているだろうと思われる 編集長をはじめとする部員たちへの感謝を述べて、この挨拶を終わらせたいと思います。

パズル研究部部長  おかもん

編集長挨拶

去年はLuaLaTeXを使いましたが、メンテナンスが上手くできなさそうだったので 今年はSATySFiを使うことにしました。必要なものが全くそろっていなかったので 1000行以上もあるクラスファイルを一から作りあげた上に 足りていないパッケージを何個か作りましたが、苦労した甲斐あってか 夏休みに入ってからの編集作業がとても楽になりました。 Webページの作成も苦労しました。上手く自動生成することができましたが、 自動化出来なかったら4000行も手打ちすることになっていたと考えると冷や汗ものですね。 この部誌を作る過程で様々な技術を新たに身につけることができました。 貴重な経験になったと思います。

部誌本体の組版にはSATySFiが使われていますが、 LaTeXも虫食い算作成をはじめこの部誌のいろいろなところに使われています(実は部Tにも……)。 TeXを作成してくださったKnuth先生、LaTeXの作成や発展、TeXやLaTeXの普及に取り組まれている多くの方々、 SATySFiを作成してくださったT. Suwaさん、 そして部誌を作るのに利用した様々なツールを開発保守運営をしてくださっている多くの方々に感謝申し上げます。

今年は120ページという歴代最大のページ数を達成したうえ、作成部数1250部という これもまた例年よりかなり多い量を作っています。大変でした。いや、本当に。

量だけでなく、パズルの種類も増えました。 「ドッスンフワリ」・「ビルディング」・「ぬりみさき」・「お家へ帰ろう」・「シロクロリンク」 ・「立体ぬりかべ」などが新しく入り、 「フィルオミノ」と「スラローム」などが数年ぶりに復活を遂げています。 パズルも増えましたが記事も増えました。部員一人ひとりが抱えている世界観や知識を覗いていただけたら幸いです。 是非お楽しみ下さい。

中1から高3まで全ての学年の部員が様々なパズルを沢山作ってくれたおかげでこうして部誌が完成しています。 沢山のパズルを提供してくださった部員の皆・活動を支援してくださった顧問やOB、関係する方々には感謝してもしきれません。 来年も同じクオリティのニポリを作れるかはわかりませんが、やれることをやっていきたいと思います。

本日はこのニポリ16号を手にとっていただき誠に有難うございます。

パズル研究部編集長  ぷりにゃん

副部長挨拶

今年度一番働いたであろう編集長に「真面目に書け」と言われたので、 今年はあくまで真剣に書かせていただこうと思います。

私は中学高校通して五年間、パズル研究部員として過ごしてきました。 高校に入ってからは副部長という大役も任せていただいた訳ですが、おそらくパズル研究部員として 一番精力的にパズルを作っていたのは中学二年生の頃で、以降は忙しさも有り余り積極的にパズルを 作ることが出来なかったと記憶しております。

ですが、今年度は部活動の運営に力を尽くし、 合宿を行う・部Tを作るといった初の試みを行う事が出来たので、 部誌にはあまり現れない側面ではありますが、 パズル研究部という部活動に対して少しは何かを残せたのではないかと思います。

さて、今年の部誌に関してですが、10号以来の100ページ、史上最大のページ数になっている、はずです。

パズルの種類も増やし、ペンシルパズル以外のコーナーも充実させ、 以前よりバラエティ色豊かな部誌になっている、はずです。

そう、私がこの挨拶を書いている時点では部誌はまだ完成していません。 去年より進捗は順調だと思いますが、100ページなどという馬鹿げた数字に対して 「去年より」という曖昧な基準では少々不安がありますが、まあ優秀な 次期部長(もしかして:編集長)がなんとでもしてくれると思います。

中学一年生の頃、私の夢の一つは難しいパズルを簡単に作れるようになる事でした。 その夢は叶っていません。今では難しいパズルを解くのですら骨が折れます。 ですが、今の私には同じ部活の仲間が沢山います。 私一人には困難でも、「パズル研究部」は大量の難しいパズルを生み出すことが出来ます。

私が五年間で学んだ事は、言ってしまえば妥協することです。投げ出すことです。 代わりに私の前には、他の人が出来ない、やらないことが回ってきます。 言ってしまえば「協力する」という簡単なことですが、明らかに自分以上に優秀な能力を持つ 仲間達に囲まれ、その中で仕事を見つけ出す。という経験は、思いの外得難い物だったのだろうと思います。

パズル研究部副部長  MAX

パズル研究部の歴史

このパズル研究部も今年で16年目となりました。この16年間、さらにはそれができる前には数々のエピソードがありました。ここではそんなパズ研の歴史をご紹介したいと思います。

パズ同消滅

旧パズル同好会消滅当時、会員には高2と中2・3がいました。そして当時の会長がその座を引き継ぐ時、中3ではなくパズルを作るのが上手かった中2を次期会長としました。…が、会長の座を渡した後、その高2の旧会長が突然開成をやめてしまい、その事実を知った会員達は慌てふためき、そのままパズ同は消えてしまったそうです。

再興計画……?

上のような経緯で旧パズ同が消滅してしまいましたが、直接的な原因は同好会継続申請届の出し忘れ(というより、そもそも存在を知らなかった事)に有ったようです。しかし翌春、当時の高2はこれにこりたハズなのに、同好会新規作成届を出し忘れたそうです。このままだと会員を呼び込めず、パズ同を立てる人がいなくなってしまいます。

そこで彼らは文化祭を使って何とか会員を呼び込み、同好会を立て直す計画を立てていたのですが…文化祭に出る為には必須の第三次参団説明会をすっぽかしたようで、文化祭自体に出られなくなるという悲惨な事態に。ちなみに参団とは、文化祭でいろいろな出し物をしているそれぞれのグループの事です。

彼らは文化祭が無理なら廊下を使って…と考えていたようですが、見事に文化祭準備委員会に却下されました。その後紆余曲折を経て、囲碁部の部屋の片隅で文化祭をしたそうです。

復活 ー 1年目

パズ同の危機を知った現パズ同の初代会長は、同好会の立ち上げには5人必要なので、ニコリを買っている人を2人見つけ、あと2人は強制的にパズルを覚えさせ、奇跡の復活を遂げました。尚、ニコリについては57ページを御覧下さい。また、この年から文化祭に「エニグマ」+「ドイツ語の数字」の参団名で参加しています。ちなみにエニグマは、ドイツ語で「謎」の意味です。そして、先述のニコリと日暮里をかけて「ニポリ」という名前の会誌を始めました。

ニポリ100ページ!? ー 2年目

新パズ同になってから2年目の文化祭。なんと当時の会長さんの一声により、その年の会誌「ニポリ」が100ページになりました。凄いですねぇ…ちなみに創刊号は48ページだったので、2倍以上に増えたんです。ただ、次号からは今までずっと3、40ページくらいをうろうろしています。流石に無理がありましたか…。

文化祭が…… ー 3年目

3年目の文化祭では活動場所が半部屋になると知り、2年目の文化祭が終わった後に座を引き継がれた会長さんが、「部屋が広くないとできない」と言ってくれたおかげで、結局部屋1個分の広さは確保できたものの、場所が中学(B会場)5階。とにかく入り口から遠いです。また、この年からパズルっぽい対戦型ゲームコーナーも設けました。お客さんが結構来てくれたので良しとしましょう。感謝、感謝。

安定期 ー 4年目

当時高2と中2だった誰かがパズルを大量作成してくれた為、殆どパズルの数に困る事はありませんでした。良かった良かった。

不安定期 ー 5年目

4年目の文化祭後に5人も先輩会員がいなくなり、前年とは打って変わって会員数が激減しました。元から10人くらいしかいなかったので、ほぼ半分になってしまいました。よって、パズルの数も足りず、文化祭ギリギリまでニポリ第5号を作成していました。そのせいで会誌にミスが多発。ペコン。とにかく時間と人員が不足した1年でした。

中学5階 再び ー 6年目

場所が中学(B会場)5階。…要するに3年前と同じ状況になってしまった訳ですが、そんな中で来てくれた方々には本当に感謝です。 このときは文化祭がはじまってから二ポリを製本し始める、という状況でした(汗)。 まだまだ人員不足が解消されない1年でした。

安定期(場所が) ー 7年目

まだまだ時間も人員も不足しているようで、パズルの量は減る一方。文化祭直前にスパートをかけて何とか息継ぎしている、といった状況です。このままではまたパズ同が消滅してしまう……!

まだまだ安定期() ー 8年目

7年目の文化祭後に多くの会員が引退し、危機を脱するどころかさらに悪化。部屋は半部屋から1部屋になって広くはなったものの、場所は変わらず中学(B会場)5階。さらに当時の編集長が2年間幽霊だったこともあってパズルは全然作れずに編集もまともに出来ない、ということでこの年もまた大変な年でした。

再興 ー 9年目

8年目の文化祭の後、当時の高2の先輩2人が抜け、一時は7人というさらに悲惨な状況に。しかし、文化祭後から3学期にかけて2人入ってくれたため、何とか当時と同じ人数まで持ち直すことが出来ました。さらに9年目になって勧誘会で高校2人中学4人の6人と、その直後に1人入ってくれたおかげで16人まで会員が増えました。つまり、合計で9人増えました。ただ、場所については高校の教室も申請してみたものの、相変わらず中学(B会場)5階でした。

ニポリ100ページ!?再び ー 1年目(10年目)

ついに部に昇格してパズル研究部となることが出来ました。人数に関しては、9年目の文化祭の地点で高2の会員がいなかったため、そこまで部員は減らず、勧誘会で中学生がたくさん入ってくれたため、18人になりました。そして、当時の高2の活躍により、ニポリが100ページに!但し、相変わらず中学(B会場)5階でした。。

さらば5階 ー 2年目(11年目)

場所がついに4階に!そして、フリーペーパーの取材が来るなどいろいろなことが起きました。その一方で、部になったことにより文準の援助がなくなり、部費が足りないなどの問題も見えてきました。

安定期(?) ー 3年目(12年目)

場所は去年に引き続き中学(B会場)4階でした。この年は勧誘会で入ってくれた中学1年生が5人もいて、みんながしっかり働いてくれたため、人員不足にあまり困らなかった一年でした。また、当時の部長は2年目(11年目)の部長が2年連続で部長を務めてくれたため、部長の仕事が慣れていたこともあり、比較的仕事も思い通りに進みました。

爆発期 ー 4年目(13年目)

前年の文化祭が終わった時点での中一(今年の中二)が五人でただでさえ例年比で多いところを、翌年の勧誘会でさらに増やして中二だけで八人になりました。ここまでくるとパズルの量にはほとんど苦労しません。パズルが予想以上に集まってくれて助かりました。

更に再びのB501 ー 5年目(14年目)

この年の文化祭は参団数を増やそうという試みが行われたらしく、部屋が足りなくなりつつあったために、昔パズル研究部がB501を使っていたということからこの年のみ再びB501を使うことになりました。多分この年が最後です。

不穏な空気(期) ー 6年目(15年目)

去年は新入部員が0名だったので心配でしたが、今年は勧誘会も成功し、会場も再び4階に。執行部となる高1のメンバーも沢山いて部誌は安泰、かと思いきや活動が思いの外不調。パズルは何とかなったものの、編集長の中三にかなりの負担を強いることに。面目ない……。

革新期 ー 7年目(16年目)

今年は高2の数が多いこともあって様々な新しいことが行われました。初めて部Tを作成し、さらに合宿を2回も行いました。部誌は100ページを大幅に超え、非常に充実した1年になったと思います。文化祭でも不思議と場所が激戦区、3階に。元号が令和になってからいいスタートを切れたと言えそうです。

驚くほど新規イベントが多いです。また、部誌のページ数が良くも悪くもとても多いです。紙が足りないと問題になったくらいです。さらに部誌の印刷の日にちも執筆時点では文化祭直前ではないと予想されています。もはやパズケンではない?!部長として先導したことはあまり無いないので、部員のみんなには感謝の言葉しかありません。

文責:おかもん

ニコリについて

「ニコリ」の名称はここまでに度々出てきていたかと思います。本誌の元となっているニコリについて、 説明しようと思います。

そもそもニコリとは、元々は競走馬の名前であり、それにちなんで名付けられたパズル雑誌であり、その パズル雑誌のメインキャラクターの馬の名前であり、その雑誌を発行する会社でもあるんです。こんがらがっ ています。つまり…ニコリの意味は4 つあるわけですが、正直な所結構引用で書いているので、最初のなん て本当なのかどうだか…恐らくは本当だろうと思いますけど。

勿論の事ながら、競走馬やキャラクターを説明しても仕方が無いので、パズル雑誌のニコリについて説明 します。ところで、ニコリの名前を新聞のパズルコーナーなどで見かけた事は有りませんか?知っている方 も多いと思いますが、ニコリは新聞や雑誌などにパズルを提供しています。メインとしては、パズル通信ニ コリやその別冊、そしてペンシルパズル本(通称ペンパ本)を刊行しています。

パズル通信ニコリは季刊で、年に4 回発行されます。大きさはB5 変型で特徴的です。価格は882 円と手 にとりやすい価格なのですが、実際に手に取るには一部の書店に行かなければならないようです。どの本屋 にもパズルコーナーはあると思いますので、おそらく探せば売っていることと思われます。コンビニでも売っ てるかも……?

ニコリには読者参加型企画も有り、読み物のページも有り、と結構面白い物が多いです。ニコリにはパズ ルも投稿出来て、パズルが載るとその載った本と多少のお金がもらえるそうです。投稿した事が無いので何 とも言えませんが…是非一度投稿してみてはどうでしょうか?

そして、本題から少しずれますが、秋葉原の方に「TORITO(トリト)」というパズルショップが有ります。 そこには知恵の輪やブロックパズルなど、本当に沢山の種類のパズルが売っています。僕も文化祭に使うも のの買い出しのついでに行ってみましたが、2 時間程潰れましたから、くれぐれも暇のある時に行くようお 願いしますね(笑)。

勿論、あの有名なルービックキューブも売っています。ルービックキューブから派生したパズルも結構置 いてあるので、興味のある方は足を運んでみて下さい。ちなみに、先程も書いた通り、この店にはニコリや ペンパ本も売っています。一度トリトに訪れれば、貴方もきっとパズルの世界は奥が深い事を実感出来るハ ズです。

連続黒マスと分断について

いくつかのパズルを解く際に気を付けなければいけないルールです。

連続黒マスの禁止について

黒マスがタテヨコに連続してはいけないというルールです。説明無しでも分かると思います。こういうルー ルのパズルが多い一方、ぬりかべやLITS では「全ての黒マスは繋がっていなければならない」というルー ルがあるので、結構特殊なパズルだったりします。詳しくは下の図で確認して下さい。

分断の禁止について

黒マスがタテヨコに続かない、つまりナナメにしか接していなくても、それらの黒マスによって盤面を分 割していてはいけないというルールです。…と、そのままなので少し言い換えると、白マスはタテヨコにひ と繋がりになっていなければならない、という事です。ナナメで接していてもタテヨコで繋がらないとルー ル違反となります。詳しくはまたまた下の図で確認して下さい。

余談(対称について)

クロスワードパズルにおける黒マスの配置は、上の二つのルールに則った上で、更に点対称でなければな らない、という事になっています。…が、いろいろなクロスワードを見ていると、黒マスの配置が点対称で ない物も多々見られるようです。他にも、スリザーリンク、フィルオミノなどは、パズルを作成する時に数 字の配置が点対称でなければならない、という規則があります

ペンシルパズル

スリザーリンク

  1. 点と点をタテヨコに繋げ、全体で1 つの輪を作ります。
  2. 四つの点で作られた小さな正方形の中の数字は、その正方形の辺に引く線の数です。数字の無い小さな正方形の辺には、何本の線を引くか分かりません。
  3. 線は交差したり、枝分かれしたりはしません。
1 作/ぷりにゃん Lv.1
2 作/りんりー Lv.1
3 作/五十宇 Lv.1
4 作/MAX Lv.1
5 作/セブン Lv.1
6 作/まっつー Lv.1
7 作/かとちゃん Lv.2
8 作/開ん5論 Lv.2
9 作/MAX Lv.2
10 作/ハリネズミ Lv.2
11 作/ふじしょー Lv.2
12 作/セブン Lv.2
13 作/しばにゃん Lv.2
14 作/しばにゃん Lv.2
15 作/しばにゃん Lv.3
16 作/おかもん Lv.3
17 作/しばにゃん Lv.4
18 作/おかもん Lv.5
19 作/かとちゃん Lv.1

ぬりかべ

  1. 以下のルールに従って盤面のマスを塗りつぶします。
  2. 数字は、その数字が含まれる、黒マスによって分断された所(シマ)のマスの数です。
  3. 全てのシマには数字が1つずつ入っていなければならず、数字が入っているマスを塗ってはいけません。
  4. 全ての黒マスはタテヨコにひとつながりになっていなければなりません。
  5. 黒マスが2×2以上のカタマリになってはいけません。
1 作/kfk Lv.1
2 作/kfk Lv.1
3 作/セブン Lv.1
4 作/かとちゃん Lv.1
5 作/kfk Lv.1
6 作/MAX Lv.2
7 作/kfk Lv.2
8 作/kfk Lv.2
9 作/まっつー Lv.2
10 作/kfk Lv.2
11 作/kfk Lv.2
12 作/kfk Lv.2
13 作/kfk Lv.3
14 作/開ん5論 Lv.3
15 作/kfk Lv.3
16 作/しばにゃん Lv.3
17 作/かとちゃん Lv.3
18 作/kfk Lv.3
19 作/kfk Lv.3
20 作/kfk Lv.3
21 作/おかもん Lv.4
22 作/開ん5論 Lv.5
A + B = 6
23 作/おかもん Lv.3
A + B = 5
24 作/kfk Lv.3

数独

  1. 空いているマスに、1から9までの数字のどれかを入れます。
  2. タテ列(9列)、ヨコ列(9列)、太線で囲まれた3×3のブロック(9個)のどれにも1から9までの数字が1つずつ入ります。
1 作/ry Lv.1
2 作/かとちゃん Lv.1
3 作/まっつー Lv.1
4 作/ぷりにゃん Lv.1
5 作/りんりー Lv.1
6 作/開ん5論 Lv.2
7 作/おかもん Lv.2
8 作/おかもん Lv.2

この数独は対角線でも、1から9までの数字が1つずつ入ります。

9 作/まっつー Lv.2

美術館

  1. 以下のルールに従って盤面に照明(○) をおきます。
  2. 黒マス内の数字は、その数字の入っているマスにタテヨコに隣り合う白マスのうち、照明が入るマスの数を表しています。
  3. 照明は、そのマスから上下左右に、黒マスか外枠にぶつかるまでの範囲を照らします。
  4. 照明どうしが照らし合ってはいけません。
  5. すべてのマスが照明によって照らされます。
1 作/五十宇 Lv.1
2 作/かとちゃん Lv.1
3 作/かとちゃん Lv.1
4 作/りんりー Lv.1
5 作/kfk Lv.1
6 作/kfk Lv.1
7 作/kfk Lv.2
8 作/ふじしょー Lv.2
9 作/ネギ Lv.2
10 作/ネギ Lv.2
11 作/ネギ Lv.2
12 作/ネギ Lv.2
13 作/ネギ Lv.2
14 作/ネギ Lv.2
15 作/ネギ Lv.2
16 作/ネギ Lv.2
17 作/ネギ Lv.2
18 作/ぷりにゃん Lv.2
19 作/開ん5論 Lv.2
20 作/おかもん Lv.3
21 作/しばにゃん Lv.3
22 作/開ん5論 Lv.3

のりのり

  1. 以下のルールに従って盤面のマスを塗りつぶします。
  2. 黒マスは必ずタテかヨコにちょうど2つだけつながったカタマリになります。
  3. 太線で区切られた各部分には、黒マスが2つずつ入ります。
1 作/かとちゃん Lv.1
2 作/かとちゃん Lv.1
3 作/かとちゃん Lv.1
4 作/ぷりにゃん Lv.1
5 作/セブン Lv.1
6 作/セブン Lv.1
7 作/セブン Lv.1
8 作/かとちゃん Lv.2
9 作/かとちゃん Lv.2
10 作/おかもん Lv.2
11 作/森てぃ Lv.2
12 作/しょーへーくん Lv.2
13 作/おかもん Lv.3
14 作/おかもん Lv.4

四角に切れ

  1. 点線の上にタテヨコに線を引き、盤面をいくつかの長方形( 正方形も含みます) に分けましょう。
  2. どの長方形にも数字が1つずつ入るようにします。
  3. 数字は、1マスの面積を1としたときに、その数字が入る長方形の面積がいくつになるかを表しています。
1 作/五十宇 Lv.1
2 作/五十宇 Lv.1
3 作/五十宇 Lv.1
4 作/りんりー Lv.1
5 作/ジムジム Lv.1
6 作/セブン Lv.1
7 作/セブン Lv.1
8 作/セブン Lv.2
9 作/セブン Lv.1
10 作/セブン Lv.1
11 作/セブン Lv.1
12 作/セブン Lv.1
13 作/セブン Lv.1
14 作/セブン Lv.1
15 作/セブン Lv.1
16 作/セブン Lv.1
17 作/蛇 Lv.2
18 作/セブン Lv.2
19 作/セブン Lv.2
20 作/五十宇 Lv.2
21 作/ぷりにゃん Lv.2
22 作/五十宇 Lv.3
23 作/セブン Lv.2
24 作/セブン Lv.2
25 作/蛇 Lv.3
26 作/蛇 Lv.4

シャカシャカ

  1. 盤面のいくつかの白マスを三角形に黒くぬりつぶしましょう。
  2. マスのぬり方は、の4通りのいずれかです。
  3. 盤面の数字は、その数字の入っているマスにタテヨコに隣り合うマスのうち、三角形にぬるマスの数を表しています。
  4. ぬられずに白く残った部分は、すべて長方形(正方形も含む)にならなければなりません。
1 作/kfk Lv.1
2 作/kfk Lv.1
3 作/kfk Lv.1
4 作/ぷりにゃん Lv.1
5 作/ぷりにゃん Lv.1
6 作/ぷりにゃん Lv.2
7 作/ぷりにゃん Lv.2
8 作/かとちゃん Lv.1
9 作/MAX Lv.1
10 作/ぷりにゃん Lv.2
11 作/kfk Lv.2
12 作/ぷりにゃん Lv.2
13 作/kfk Lv.2
14 作/開ん5論 Lv.3
15 作/kfk Lv.3
16 作/kfk Lv.3
17 作/ぷりにゃん Lv.1
18 作/ぷりにゃん Lv.1

ヤジリン

  1. 点線の上にタテヨコに線を引き、盤面をいくつかの長方形( 正方形も含みます) に分けましょう。
  2. どの長方形にも数字が1つずつ入るようにします。
  3. 数字は、1マスの面積を1としたときに、その数字が入る長方形の面積がいくつになるかを表しています。
1 作/MAX Lv.1
2 作/kfk Lv.1
3 作/kfk Lv.1
4 作/kfk Lv.1
5 作/逆さ傘 Lv.2
6 作/逆さ傘 Lv.2
7 作/ぷりにゃん Lv.2
8 作/ぷりにゃん Lv.2
9 作/しばにゃん Lv.2
10 作/おかもん Lv.3
11 作/開ん5論 Lv.3
12 作/しばにゃん Lv.3
13 作/しばにゃん Lv.3
14 作/しばにゃん Lv.3
15 作/おかもん Lv.3
16 作/しばにゃん Lv.4
17 作/しばにゃん Lv.2
18 作/開ん5論 Lv.5

ましゅ

  1. 盤面に線を引き、全体で一つの輪を作ります。線はタテヨコにマスの中央を通り、1マスに1本だけ通過できます。線を枠の外に出したり、交差や枝分かれさせたりしてはいけません。
  2. 白丸、黒丸のあるマスは必ず線が通ります。
  3. 白丸を通る線は、白丸のマスで必ず直進し、白丸の両隣のマスの少なくとも片方で直角に曲がります。
  4. 黒丸を通る線は、黒丸のマスで必ず直角に曲がりますが、黒丸の隣のマスで曲がってはいけません。
1 作/ぷりにゃん Lv.1
2 作/kfk Lv.1
3 作/kfk Lv.1
4 作/逆さ傘 Lv.2
5 作/逆さ傘 Lv.2
6 作/逆さ傘 Lv.2
7 作/おかもん Lv.2
8 作/しばにゃん Lv.2
9 作/おかもん Lv.3
10 作/しばにゃん Lv.3

へやわけ

  1. 以下のルールに従って盤面に黒マスを配置します。
  2. 出ている数字は、太線で区切られた四角(部屋)の中に入る黒マスの数です。数字の入っていない部屋には、いくつ黒マスが入るか分かりません。
  3. 白マスはタテ又はヨコにまっすぐに3つの部屋にわたって続いてはいけません。
  4. 黒マスをタテヨコに連続させたり、黒マスで盤面を分断したりしてはいけません。
1 作/かとちゃん Lv.1
2 作/おかもん Lv.1
3 作/おかもん Lv.2
4 作/かとちゃん Lv.2
5 作/かとちゃん Lv.2
6 作/開ん5論 Lv.2
7 作/おかもん Lv.2
8 作/おかもん Lv.3
9 作/かとちゃん Lv.3
10 作/開ん5論 Lv.3

LITS

  1. 太線で区切られた部分それぞれに、黒マスがタテヨコに4つつながってできたピース( テトロミノ) を1つずつ配置します。
  2. 回転あるいは裏返しをして同じ形になるテトロミノ同士が辺を共有してはいけません。
  3. 全ての黒マスはタテヨコにひとつながりになっていなければなりません。
  4. 2×2の黒マスを作ってはいけません。
1 作/かとちゃん Lv.1
2 作/セブン Lv.2
3 作/かとちゃん Lv.2
4 作/かとちゃん Lv.2
5 作/かとちゃん Lv.2
6 作/かとちゃん Lv.2
7 作/かとちゃん Lv.2
8 作/しばにゃん・おかもん・開ん5論 Lv.3

フィルオミノ

  1. すべてのマスに数字を1つずつ入れ、さらに点線の上にタテヨコに線を引いて、盤面をいくつかのブロックに分けまょう。
  2. 同じ数字が入ったマスがタテヨコに隣り合っている場合、それらは同じブロックに入ります。
  3. ブロックに入るマスの数は、そのブロックに入る数字と同じになるようにします。
1 作/セブン Lv.1
2 作/ぷりにゃん Lv.1
3 作/ぷりにゃん Lv.2
4 作/ぷりにゃん Lv.2

スラローム

  1. 盤面のいくつかの白マスに線を引き、○のマスからスタートして○のマスに戻る1つの輪っかを作りましょう。
  2. 線はマスの中央を通るようにタテヨコに引きます。線を交差させたり、枝分かれさせたりしてはいけません。
  3. 破線を「旗門」と呼びます。線は、すべての旗門と1回ずつ垂直に交差するように引きます。交差以外で旗門と線を接触させてはいけません。
  4. ○の中の数字は旗門の総数を表しています。
  5. 両端が同じ数字ではさまれている旗門と、数字のマスから1つだけ出ている旗門で、端の数字は、○のマスから出た線がその旗門と何番目に交差するかを表します。上記以外の旗門では、順番は問いません。
1 作/おかもん Lv.1
2 作/MAX Lv.1
3 作/kfk Lv.1
4 作/kfk Lv.1
5 作/kfk Lv.1
6 作/kfk Lv.1
7 作/ぷりにゃん Lv.1
8 作/ぷりにゃん Lv.1
9 作/kfk Lv.2
10 作/おかもん Lv.2
11 作/開ん5論 Lv.2
12 作/開ん5論 Lv.2

ドッスンフワリ

  1. 盤面のいくつかの白マスに、風船(○)か鉄球(●)のどちらかを入れます。
  2. 太線で区切られた各部分には、風船と鉄球が1つずつ入ります。
  3. 風船は軽く浮くので、盤面のいちばん上の列や黒マスのすぐ下、および風船のすぐ下のマスにしか入れられません。
  4. 鉄球は重く沈むので、盤面のいちばん下の列や黒マスのすぐ上、および鉄球のすぐ上のマスにしか入れられません。
1 作/ぷりにゃん Lv.1
2 作/ぷりにゃん Lv.1
3 作/ぷりにゃん Lv.1
4 作/ぷりにゃん Lv.1
5 作/ぷりにゃん Lv.1
6 作/ぷりにゃん Lv.1
7 作/kfk Lv.1
8 作/かとちゃん Lv.1
9 作/ぷりにゃん Lv.1
10 作/kfk Lv.2

ビルディング

  1. タテヨコすべての列に、1から一辺の長さまでの数字を一度ずついれます。
  2. 外枠の数字はその方向から見たときに見えるビルの数を表しています。
1 作/MAX Lv.1
2 作/kfk Lv.1
3 作/kfk Lv.1
4 作/kfk Lv.1
5 作/おかもん Lv.2
6 作/kfk Lv.2
7 作/おかもん Lv.2
8 作/開ん5論 Lv.3

シロクロリンク

  1. 白丸と黒丸をまっすぐな線でつなぎます。
  2. 線を交差させたり、ナナメにかけたり、丸をかけたりしてはいけません。
1 作/kfk Lv.1
2 作/kfk Lv.1
3 作/kfk Lv.1
4 作/ぷりにゃん Lv.1

お家へ帰ろう

  1. 盤面にある文字をタテヨコに移動させ、その軌跡を線で書き込みましょう。
  2. 太線で区切られた部分を家と呼びます。文字を移動させた結果、同じ文字は同じ家、違う文字は違う家に入るようにしなければなりません。
  3. 文字の移動の軌跡は矢印で表します。
  4. 矢印の線はマスの中央を通るようにタテヨコに引きます。線は途中で折れ曲げてもかまいませんが、他の矢印や文字とぶつかるようにしてはいけません。
1 作/kfk Lv.2
2 作/kfk Lv.2

ぬりみさき

  1. 盤面のいくつかのマスを黒くぬりましょう。
  2. タテヨコに隣り合うマスのうち1つだけが白マスで残りすべてが黒マス、という白マスのことを「岬」と呼びます。丸のマスは必ず岬になります。また、丸のないマスが岬になってはいけません。
  3. 丸の中の数字は、丸のマスから白マスがある方向に、いくつ白マスが連続するかを表します。数字のない丸のマスでは、何マス連続するかはわかりません。
  4. すべての白マスはタテヨコにひとつながりになっていなければなりません。
  5. 白マスも黒マスも、2×2以上のカタマリになってはいけません。
1 作/しばにゃん Lv.2
2 作/しばにゃん Lv.3
3 作/しばにゃん Lv.4
4 作/しばにゃん Lv.4

虫食い算

  1. この筆算が成り立つように□の中に数字を入れます。
  2. 一つの□に数字は0から9のどれか一つしか入りません。
  3. 一番左端に0は入りません。
  4. n進法虫食い算の時は基本は普通の虫食い算と変わりませんが四則演算も全てn進法のものになります。また、断りがない限り、原則として10以上の数もそのまま表記します(アルファベット表記にはしない)。
1 作/ぷりにゃん Lv.1
2 作/ぷりにゃん Lv.1
3 作/ぷりにゃん Lv.1
4 作/ぷりにゃん 7進法 Lv.2
5 作/アメンボ 15進法 Lv.2
6 作/アメンボ 7進法 Lv.3
7 作/アメンボ ?進法 Lv.3
8 作/ぷりにゃん 100進法 Lv.3

イラロジ

  1. 縦と横に記されている数字に従いマスを塗りつぶしてください。
  2. 数字は連続して塗るマスの数を示しています。
  3. 数字が複数ある場合、塗り潰したマスの“カタマリ”同士を1マス以上空けてください。
1 作/ジムジム Lv.1
2 作/ぷりにゃん Lv.2

立体ぬりかべ

  1. ぬりかべの立体版です。
  2. 黒マスが2×2×1以上のカタマリになってはいけません。
  3. それ以外はぬりかべと同じルールです。
1 作/kfk Lv.3
2 作/kfk Lv.4

ペンシルパズル定石集

文責:おかもん

1. はじめに

ここにあげる定石は、私個人が執筆当時に思いついた「定石」をあつめたものです。 何が言いたいかというと、

  • ある手筋を定石と思うかどうかはその人次第
  • よって、ここに書いてあるものだけが定石の全てだとかそういうわけではない。
ということです。 ですから、「このページの定石を覚えよう」とかそういう使い方をするのではなく、 「ここの定石から他のにも応用できるエッセンスを読み取ろう」というように使ってほしいと思うのです。 そのようにすることで他の事項にも応用でき、楽しいパズルlife(?)がおくれます。 そのため、ぜひご自分の手を動かして、仮定したものが矛盾して、一部が決まっていく様子を確認して、 「理解」していただきたいと思います。

2. スリリン

①3の条件は強い

と仮定すると、 となり、矛盾する。 その他は対称性より明らか

まず、のように仮定すると、 より矛盾。

さらに、と仮定すると より普通は(これ以外に数字があれば)ループが2つ以上できるので矛盾。

②角(と縁)の条件は強い

まず、 このように仮定する。すると のようになり、右側下の線が脱出できていないので矛盾。その他は対称性より明らか。

まず、線がのようになるとすると、こうでてくる。 のように線がないとすると、 のようにでてくる。 あとは共通点より明らか。

このように仮定すると、 こうなって線が脱出できないので矛盾。その他も対称性より明らか。

0があると同様な状況が起こりやすい。

③本数にて議論

まずまではすぐにわかる。 ここで、の指金形部分の線の合計は1本である。すると、 "十"部分の線の合計は1本であるため、3の条件よりが確定する。

3. ぬりかべ

①黒マスの伸びる性質

まず、数字が次のようにあったとき、 ?と?の間が白マスになることは無いので黒マスになります。 ここで、のように仮定すると、黒マスが孤立してしまうので矛盾。以上より、黒マスがこのように伸びることになる。

②黒マスが洪水しないようにする

(※ただし、まわりに大きな数字が無いとして)

「?」マスには誰も届かないので黒マスが確定する。

黒マスは2×2の塊を作ってはいけない無いのでこのように確定する。

③空間充足

6が通れないマスに点を打つと のようになり、空間が6で埋まり確定する。

4. 美術館

①個数にて議論

の★のどちらかには明かりが入る。すると、☆には絶対に明かりが入らない。 よって確定する。

②照らすのがコイツしかいない

☆を照らす明かりは★しかありえない。

5. のりのり

①3の条件は強い

より、共通している☆が白マスであることが確定する。

縦2置きにすると破綻する。よってこの場合しか成り立たない。

6. 四角に切れ

①こいつしか届かない

右下は8しか取れない。よって、8が右下をとるようにすると8の形が決まる。

②部分確定を書く

5の置き方を考えると、★のマスは絶対取る必要がある。よって、3マス分の線が確定する。

7. シャカシャカ

①白マス周辺の処理

ここで、 とすると、白マスが繋がって長方形にならないため、必ず黒に塗られる。 また、 以外の塗り方をするとすべて白部分を長方形にすることができないので不可能。よって確定する。

もし★部に黒マスが入ったとすると、 のようになってどうしても白部が長方形にならない。よって★は白マス

②個数にて議論

★のどちらかには必ず三角形が入ることになる。そうすると☆は 白マスになるので確定する。

8. ヤジリン

①黒マスと線の強い結びつき

★の部分に線は入れないので、黒マスが来る。すると、このように線を引くしかなくなり、確定する。

★の部分を通ろうとするとこのように曲がるしかなくなる。

②個数で議論

説明することはあまりないが、盤面の辺に接して黒マスを配置すると、 線が通る分を確保せねばならないことに注意したい。

③偶奇を考える

「ループが完成する」という条件から閉じた空間に出入りする線の数は2以上の偶数になることがわかる。 このことより、2→の黒マスの置き方が確定する。

(両方とも不成立)

9. ましゅ

①意外なところに折れ曲がる条件が……

このように仮定すると、☆の〇が両端でまっすぐになり、矛盾。

②わかるところから書く

●での線の引き方は2通り。

共通するところから確定する。

10. へやわけ

①白マスを分断しないという条件は強い

とすると☆が孤立するので矛盾。

とすると☆が孤立するので矛盾。

11. LITS

①黒マス2×2のカタマリを作らないように!

☆が白マスとすると、その他で黒マス2×2を作ることになるので矛盾。

②わかるところからかく

黒マスの置き方はどちらかなので、共通部分を取り出してみる。

Haskellでn 進法の掛け算表を作ってみる

文責:ぷりにゃん

1. 要約

掛け算表を作成するソフトをHaskellというプログラミング言語で作りました。 このソフトに任意の非負整数を入力させると、その数での進法の掛け算表が書かれたCSVファイルを生成してくれます。

2. 動機

n進法の虫食い算を作るときには掛け算表が必須になります。 10進法であれば頭の中に入っているので楽ですが、違う進法になると基本的に使います。5進法などの小さいものでも使います。 ましてや12進法や15進法、100進法などになると使わないとまず無理です。 例えば、「20進法の時、 \(1ab32\times2cd\) の答えはわかる?」と言われたときにパッと答えられるでしょうか。 無理です。 しかも虫食い算を作るときはこれをなんどもやるわけです。

もちろん、この「掛け算表が必要」という問題の対策のために掛け算表を作ることができるExcellファイルを作ってみたり、 LaTeXで掛け算表を自動生成するパッケージを利用したりしていたわけですが、 それぞれ「複数の進法の掛け算表を見比べることが難しい」「あまりにも大きい進法だとはみ出してしまったり、見にくくなったりする」 などの不満がありました。

そこでその不満を解消するべく、今回ソフトを作成することにしました。

3. 仕様と実装方針

ソフトを起動するときに数字(ここでは仮に〈n〉とする)を与えると、〈n〉.csvというファイルを生成し、その中に〈n〉進法の掛け算表を書き込みます。 この時、〈n〉進法の表記は〈m〉-〈l〉(読みは「〈m〉ダッシュ〈l〉」といった感じでしょうか)という形で、 〈n〉が10より大きい場合でもアルファベットを使ったものにはしません。これは、アルファベットが足りなくなるほど〈n〉が大きくなった時に対応するためです。 例えば、12進法で通常2aと表記される数は2-10という風に表記し、50-5という風に表記されます。 また、表が大きくなった時でもどの数の積の結果なのかがすぐにわかるように、掛け算の形で記します。 そのため、12進法での掛け算 \(1b\times1b\) は11 x 11 = 10-1と表記されます(xは便宜的に掛け算記号を表しています)。

これらの結果は表の形をするようにならばせ、それぞれの式の間には", "を挟みます。 そのため、3進法の掛け算表はこのようになります。

1 x 1 = 0-1, 1 x 2 = 0-2,
2 x 1 = 0-2, 2 x 2 = 1-1,

起動方法ですが、ソフト名を仮にmulttableとしたとき、起動する際には

$ mluttable 12
とすると 12進法の掛け算表が生成されるようにします。 また、数字ではなくてVまたはversionが入力されたときはバージョン番号を、 Hまたはhelpが入力されたときはヘルプを表示するようにします。 引数が1よりも多い場合にはエラーを返すようにします。

仕様が固まったところでこれらの実装方針を示します。 まず、言語はHaskellを使うことにします。Haskellを選んだ理由は特にないですが、 強いて言えば5日くらい前に使い始めてみたので良い練習になると思ったからです。 C++やC#、RubyやPythonといったものは使いません。苦手なので。

1から〈n〉-1までのリストを2つ用意し、それらを組み合わせて(1個目のリストの数, 2個目のリストの数, それらの積) となるタプルを全組み合わせで生成します。 そして、これらをもとに式を作り出し、あとはリストの要素同士を, と改行コードで繋ぐだけです。 そしてそれをファイルに書き出します。 入力に対しての反応は場合分けを頑張ることで乗り切ります。

4. 前提知識

Haskellの特徴と構文をよく知らない人が多いと思うので、簡単に説明をします。

4.1. Haskellの特徴

Haskellは静的型付け言語であり、かつ関数型言語であるプログラミング言語です。

静的型付け言語とは、値をその性質によって分類するときに使う「型」というものについて、 そのプログラムを実行する前に検査を行ってある程度の安全性を保障する言語のことです。 型とは、「値をその性質によって分類する」もので、例えば数字は「四則演算ができる」といった特徴を持つものとして分類し、特別にInt型という型を与えます。 また、文字列は「一文字ずつ分解できる」「文字同士を結合できる」といった特徴を持つものとして分類し、特別にString型という型を与えます。 これらのように型がきちんとついて何が嬉しいかというと、エラーを事前に見つけやすくなるということがあります。 例えば、整数を受け取ったら1増やして返すplusという関数を考えてみましょう。 plus 12を返しますし、plus -1は0を返します。そのため、この関数を「Int型を受け取ってInt型を返す関数」と呼ぶことが出来ます。 さて、この関数に文字列を入れてみるとどうなるでしょう。plus "kaisei"としたときに何が返ってくるか予想がつきますか? 正解は簡単、エラーが返ってきます。 特別に定義されていない限り、文字列に対して「1増やす」なんていう操作はできないのです。 逆に言えば、これを逆手に取って「事前にコードをチェックしてplusに対して数字以外が与えられていたら報告する」という仕組みを作ると、 非常に早くエラーを発見できることになります。 単純化すると「Int型を受け取る関数にInt型以外が渡されていたらエラーを出す」という仕組みになります。これが静的検査の概要です。 これを全ての関数や値に対して行い、対象となる型も大量に用意するととても便利になります。 ココらへんに関しては高校図書館にある「型システム入門 プログラミング言語と型の理論」という本 に詳しく書いてあるので基礎を学びたい人はぜひ読んでみてください。

関数型言語は、すべてのものを関数と値に分けて、これらを組み合わせてコンピュータに指示を出す言語です。 同じ値を与えると常に同じ値が返ってくることが前提となっていて、それが破られるものは特殊な形でしか利用できないようになっています。 小さな関数を組み合わせて大きな機能を作り上げられるのが魅力です。

4.2. リスト

[1,2,3,4]のように、同じ型が並んでいるデータ構造をリストと呼びます。 同じようなものをまとめるときは非常に便利なものです。

これを扱う関数がいくつかあり、headは一番左の要素を取り出すもので、 mapは関数を受け取って要素全体にその関数を適用するもので、 foldrは、関数を受け取って、要素の右側から順に適用していくものです。 また、Haskellでは[1..5]のように書くと、[1,2,3,4,5]という1から5まで数字が一つずつ増加していくリストが作成されます。

例えばhead [1,2,3]1を返し、 map plus [1,2,3,4]はすべてに1が足された[2,3,4,5]が返ってきます。

4.3. タプル

タプルは、関連する複数の情報を一つにまとめるときに利用します。 例えば、出席番号と名前を結び付けたいときは(15, "山田太郎")などのようにします。 これをリストと組み合わせると非常に強力で、クラス名簿のようなものも簡単に作ることができます。

5. 実装

以下のコードを実装しました。Main.hsで定義されるmain関数がソフトを起動したときに実際に動くものです。 ここでLib.hsで定義された関数を使って結果を返します。

Main.hs

module Main where

import System.Environment (getArgs)
import Lib

main :: IO ()
main = do
  args <- getArgs
  if 1 == length args then
    if head args == "V" || head args == "version" then
      returnVersion
    else
      if head args == "H" || head args == "help" then
        returnHelp
      else
        writeFileTable (head args)
  else
    returnError

まず、必要なパッケージなどをimportを使って読み込みます。 次にmain関数を定義します。この関数はIO()型です。

まずはgetArgsを使って、起動したときに入力したものを文字列のリストで受け取ります。 そして、このリストの中身が1でない場合はエラーを返すようにしています。 そして、この入力の値がvversionである場合にはバージョン情報を、 hhelpである場合にはヘルプを返すようにしています。 この時、returnErrorreturnVersionreturnHelpはそれぞれLib.hsで定義されている関数です。 この時、はじかれなかった場合はCSVファイルを実際に生成する関数であるwriteFileTableにリストの中身を渡します。 もちろんこれもLib.hsで定義されています。

Lib.hs

module Lib
  (returnVersion,
    returnHelp,
    returnError,
    writeFileTable
  ) where

import Data.List
import Control.Monad

returnVersion :: IO()
returnVersion =
  putStrLn "(バージョン番号)"

returnHelp :: IO()
returnHelp =
  putStrLn "(良い感じのヘルプ)"

returnError :: IO()
returnError =
  putStrLn "error"

makeTable :: Int -> String
makeTable n =
  let xList = [1..(n - 1)] in
  let yList = [1..(n - 1)] in
  let makeTuple n = map (\y -> (n, y, n * y)) yList in
  let convert i = (show (i `div` n)) ++ "-" ++ show (i `mod` n) in
  let makeCell (x, y, xy) =
    show x ++ " x " ++ show y ++ " = " ++ convert xy
  in
  let mainList = map (map makeCell) $ map makeTuple xList in
    foldr (\x y -> x ++ "\n" ++ y) "" $ map (foldr (\x y -> x ++ ", " ++ y) "") mainList

writeFileTable :: String -> IO()
writeFileTable n = writeFile (n ++ ".csv") (makeTable (read n))

まずはreturnErrorなどを実装します。これは文字列を表示するだけの関数なので特に難しいものはありません。 次に一番下で、ファイル書き出しを行うwriteFileTableという関数を定義しています。 これは入力された数字をもとにファイルを生成して表を書き込む関数です。 ここで使われているwriteFileという関数は、まずファイル名を受け取ってそれを生成し、 次に受け取った文字列をそのファイルに書き込むという動作をします。 書き込む内容は上で定義してあるmakeTableという関数で自動的に作成します。

makeTableでは、まず1からn - 1までのリストを2つ用意します。 次にmapを上手く使って(かけられる数, かける数, 積)のタプルのリストを作ります。 そして上手く定義したconvertを使って式を完成させ、 最後にfoldrを使ってカンマと改行文字で要素をつなげ、文字列を作成します。 これによって、makeTableによって作られた文字列がファイルに書き込まれ、欲しいCSVファイルが完成します。

ここで作ったソフトは https://github.com/puripuri2100/multtable にあり、 作成したCSVファイルはCSVというフォルダの中にあります。 60進法の虫食い算を作る時などにぜひ利用してみてください。

パズルとは

文責:MAX

パズル。この言葉を聞いたら、あなたは何を思い浮かべるでしょうか。

普通の人なら厚紙を組み合わせて絵を作る例のアレ、つまりジグソーパズルを思い浮かべるのかなと思います。パズドラやキャンディークラッシュといったスマホゲームを思い付く人も多いと思います。 ですが、こんな分厚い部誌のこんな辺鄙な所にまで目を通しているあなたなら、多分ちょっと捻くれたことを言って下さると思います。 数字は独身に限る、とか。

パズルと一口に言っても種類は様々で、ぱっと思い付くだけでも、クロスワードやイラストロジックを始めとするペンシルパズル、天秤でニセ金を見分けたり天使と悪魔に話し掛けたり川を渡ったりする論理パズル、勿論知恵の輪やルービックキューブ、変わった所では詰将棋なども入るかと思います。 ちなみに私は15パズルのようなスピードを競えるパズルが好きです。短時間で解けるパズルは頭のリフレッシュにもなります。

例えばこういう小難しいふりをした文章を考えるとき、小休止としてちょっとルービックキューブを、みたいな格好いいことができると凄く楽しいと思いませんか。 まあ私の手元には無いんですけど。お陰で大分煮詰まってきました。悪魔の爪が触りたい。

閑話休題。 様々な種類のあるパズルですが、ふと思ってみると、クイズや数学の問題などとの違いが分からなくなってしまうことがあります。 例えばいわゆる漢字パズル、中央の四角に何の字が入るかを当てるパズルはほぼほぼ語彙力勝負ですし、この部誌に載っているようなとても難しいペンシルパズルは全てのパターンを書き出して解く他無いこともたまにあります。

求められているものがただの学力や根気かもしれない、ということです。

では、一体何がパズルで、パズルの何が面白いのでしょうか。

どのご家庭にでもある一般的な広辞苑第五版を開いてみると、そこにはこう書いてあります。

『謎解き、判じもの。』

恐ろしく簡潔です。外国語だからでしょうか。 ちなみに広辞苑に判じもの意味は載っていませんでした。酷いと思います。 では実質三文字、『謎解き』がパズルの正体ということになります。再び広辞苑で引いてみましょう。

『謎の意味を明らかにすること』

はしごを外された気分です。せっかく辞書界の大御所であるところの広辞苑様に頼ったのに、あまり有用な答えは返ってきませんでした。 ……いえ、もしかしたら、もう答えは出ているのかもしれません。 この謎を明らかにするために、どのご家庭にもごく一般的にあるウィズダム英和辞典第四版を引いてみましょう。

〈puzzle〉 動詞 1,〈人〉の頭を悩ます 2,〈人が〉頭を悩ます、考え込む  名詞 1,理解できない事、難問、謎 2,パズル;ゲーム

少し、分かってきました。 まず、パズルは問題では無く、難問であるということです。 確かに、何か面白かったクイズや問題を「パズルみたい!」と人に話すとき、大抵その問題に対して、あなたは随分頭を悩ませ、ときに自分の力で、ときに答えを見て、ぽんと膝を打ったのではないでしょうか。 つまり、 「考え込まされるような事が綺麗に明らかになるようなもの」 を、人はパズル、あるいはパズルのようにと呼ぶのです。

少し辞書から言葉を補ってしまいましたが、おおよそこのような解釈で納得していただけるのではないかと思います。 ……これだと手なぐさみに私が解こうとしていたパズルは、片手間で解けてしまって全然パズルらしく無い、という事になってしまう気もします。ですが、例えば今の自分が簡単に解けてしまうようなパズルでも、かつての自分が頭を悩ませ解いたものは、きっと解法発見の鮮烈な快感と共に、パズルとして刻み込まれているのでしょう。 と言ってみると、恐らく大事なのは「明らかにする」という広辞苑で既に出ていた要素になるのかなあと思いつつ、その辺りは次代の副部長にやってもらう事にして、私はとりあえず一通り謎を解き明かした後のすっきりとした気持ちで筆を置かせてもらおうと思います。

部誌を支える技術

文責:ぷりにゃん

1. はじめに

2年間編集長をやりましたが、この2年間でいろいろな技術を試してきました。 その成果として今ここに部誌があるわけですが、今回は部誌をつくるまでの過程や そこに投入されている技術等を紹介していきたいと思います。 ちなみにですが、引き継ぎがあまり引き継がれなかったので自分以前の編集状況については 前日までドタバタで編集していたことくらいしか知りません。

2. 部誌ができるまでの大まかな流れ

夏休みまでパズルを作ります。パズルが無いと何もはじまらないのでパズルをとにかく作ります。 また、それと同時に手が空いている人が、パズルを解いて「解がただ一つに定まること」を確認します(我々はこれを「別解チェック」と呼んでいます)。 そして、解が一つであることを確認したら難易度を付けます。この部誌での難易度の基準は大まかにこのようになっています。

  • Lv.1 ・・・ 仮定をせずに、普通に解いていけば解にたどり着くもの
  • Lv.2 ・・・ 仮定をしないと解けないもの
  • Lv.3 ・・・ 二重仮定が入ってくるもの
  • Lv.4 ・・・ 二重仮定以上を使ってきて難しい
  • Lv.5 ・・・ とにかく難しい

パズルができたらこれを綺麗に画像化します。 このときに使うのが「ぱずぷれv3」というサイト( http://pzv.jp/ )です。 このサイトはjavascriptを使ってパズルを画像化することができるものです。 さて、パズルの別解チェックもレベル付けも画像化も終わったらこれを紙面に配置してPDFを作成することになります。 部誌にはパズル本体だけでなく、その解答も載せる必要があり、さらにはいくつかの記事も必要ですのでこれらの作成・執筆も行います。

部誌のPDFファイルが完成したら印刷・輪転・製本を行い、完成したものが当日配布されます。

3. 部誌作成環境の紹介

3.1. パズルの提出

部活用のLINEグループがあるので、それぞれ個人用のアルバムを作成してそこに画像を追加することでパズルの提出を行っています。

編集者としてはLINEのアルバムは使い勝手が良いわけではないので変更したいところですが、 やはり追加する際の手軽さや様々なデバイスから扱えるという点で部員からするとやりやすいだろうということで続けています(新しいソフトを導入しても学習コストを考えると現実的ではないですしね……)。

3.2. バージョン管理とリポジトリ

昔はdropboxを使っていたらしいですが、2年前からGitLabのプライベートリポジトリを利用してバージョン管理を行っています。

画像ファイルが多いのでGit管理はあまり適しているようには見えませんが、 後述するようにSATySFiやLaTeXを使っているのでクラスファイルやパッケージファイルの差分を管理する際にGitはかなり役立ちます。

今は基本的に1人で編集を行っているので、masterブランチに直接commitしています。 そこまで厳密な運用を行っているわけではないので、ある程度パズルが溜まったらcommitしたり、記事ができたらcommitしたりといったくらいの適当さです。

3.3. 組版ソフト

去年はLuaLaTeXを使ってPDFファイルを作成していましたが、今年はSATySFiを使うことにしました。

理由はいろいろとありますが、LaTeXはメンテナンスが難しいことや複雑なことをしようとすると一気にコードが冗長になり読みにくくなることがあげられます。 Pandocを使ったりRe:VIEWを使ったりする方法もありますが、どちらもニポリを作るためには表現力が乏しいので不採用となりました。

編集風景

4. SATySFiとそのプログラミング方法

今までSATySFiという単語が出てきたと思いますが、 ここからもどんどん出てくるので説明してしまいます。 また、この記事をこの先読み進めるのに必要な知識も説明します。

4.1. SATySFiとは

SATySFi(カタカナにするなら「サティスファイ」となるでしょうか)はつい最近発表されて今現在も発展し続けている組版ソフトです。 組版とは文字や図をページ上に配置することで、組版ソフトはそれを行うためのソフトです。

SATySFiの特徴として、“配置等の制御をすべて文字で行う”ということが挙げられます。 文字で制御するということで、SATySFiには高度なプログラミング機能が備わっています。

このプログラミング機能は大きな特徴を有しており、他の記事で紹介してあるHaskellと同じ関数型言語で静的型付け言語です。静的型付け言語なので型推論が強力で、そのおかげでエラー報告がかなり充実していてわかりやすいです。

PDFファイルを作成する過程を軽く説明します。 まず、メインとなる.saty拡張子のファイルをSATySFiで処理します。 すると、SATySFiは.satyファイルが読み込んだ.satyhを先にチェックして エラーが出る箇所を探します。この.satyhファイルはユーザー定義コマンドや便利な関数がたくさん定義されているものです。

エラーが出ないことが確認されたら.satyファイルの中身を実際に処理して文字を並べていってPDFファイルを自動生成していきます。

4.2. SATySFiの主要型

SATySFiに標準で備わっている主要な型を紹介します。

  • int
  • float
  • length
  • string
  • inline-text
  • inline-boxes
  • block-text
  • block-boxes

上の三つはそれぞれ整数・小数・長さ(10mmとか12ptとかです)です。単純ですね。 string型はなんの付加情報もない文字列です。^という演算子で繋げることができます。 例えば、`kaisei` ^ `gakuen`とすると`kaiseigakuen` となります。 これは多くのプログラミング言語でありますね。

重要でSATySFi特有なのは下の4つです。inline-text型は 組版上の情報も追加されたテキストです。 {テキスト}のように、中括弧の中に書くことで入力できます。 このテキストの中で関数(コマンドと呼びます)は、\command;のように、バックスラッシュから始まる命令を書き、最後にセミコロンを打つことで使うことが可能になります。引数を与えたい場合は\command(1)({text});のように丸括弧にいれることで実現できます。 inline-boxes型は、通常のinline-text列を文脈の保持するフォントや文字サイズなどをもとに “組める状態になったグリフとしての文字”に変換したものです。 inline-boxes型は++という演算子を使って文字列と似たような感覚で繋げることができます。

block-text型は'<>という括弧の中に入れて書きます。 通常の文字としては入力不可能なので、括弧内にコマンドの形で入力します。 ブロック内のコマンドは+command;のように、プラス記号からはじまる命令で書きます。 block-boxes型はinline-boxes型やblock-boxes型を行分割した組みあがった段落として変換したものです。+++という演算子を使って縦方向に繋げることができます。

5. パズル画像の自動配置

この部誌には200以上のパズルが載っており、問題と解答を合わせると400を超える画像を適切に配置しなければなりません。 これを手動で行うのは大変すぎますし、変更が加わったときに一々手動で細かな調節や並び替えを行うのは不可能と言っても良い作業です。 そこで、パズル画像の配置を自動化することで編集作業を楽にすることにしました。

5.1. 基本方針

デザインの本質的な変更は行わないので、まずは去年までの部誌を眺めてみましょう(みなさんもぜひ今年の部誌のデザインを見ながらこの記事を読んでみてください)。 するとパズルを載せるときに必要な要素が見えてくるはずです。

まず、パズルのタイトルとルールと例題、そして最後に大量に問題です。 これらがあればパズルを載せられます。さて、タイトル・ルール・例題については自動配置とあまり関連が無いので今回はパスしまして、問題なのは大量の問題です。 この問題には作者名・パズル画像・レベルの3つ情報が必要であることはすぐにわかりますね(パズル番号は自動で付けられるのでわざわざこちら側が用意する必要はないですね)。 さて、この3つだけで良いのでしょうか……? 実はもう一つ必要です。それがパズル画像の横幅です。いくつかのパズルにおいて、通常のサイズより大きいパズルがあると思います。これらに対処するためにはパズル大きさ、特に横幅の情報が必要であることがわかります。

さて、必要な情報がわかったところでこれをどのような形で与えるかも重要ですが、ここは単純に(画像の横幅, 画像のファイル名, 作者名, レベル)というタプルをリストにすれば良いでしょう。例えばこういう感じです。 ここで、横幅を直接30mmとかの長さではなく、標準サイズへの倍率であるのは、HTML版作成や汎用性との兼ね合いからです。

[
  (1., `puzzle/bijutukan/puri-1-Q.jpeg`, {ぷりにゃん}, 1);
  (1., `puzzle/bijutukan/puri-2-Q.jpeg`, {ぷりにゃん}, 2);
  (2., `puzzle/bijutukan/puri-3-Q.jpeg`, {ぷりにゃん}, 3);
]

さて、このデータを解答編でも使い回せるようになればさらに効率的に、間違いが無くなるでしょう。そのためにはいくつかの細工をしなければなりません。 具体的には、ファイル名の部分を「問題編では最後に-Qを、解答編では-Aをつけるようにし、拡張子は.jpegで統一する」と決めた上で ファイル名部分を`puzzle/bijutukan/puri-1`だけにし、処理部分でファイル名を補完するようにするのです。 つまり、`puzzle/bijutukan/puri-1`というデータを受け取った問題編作成関数は自動的に-Q.jpegという文字列を付け足して`puzzle/bijutukan/puri-1-Q.jpeg`として解釈をはじめるのです。解答編では-A.jpegという文字列を付け足します。

こうすれば同じパズルの問題部分と解答部分のファイル名をhoge-Q.jpeghoge-A.jpegに統一しておけば自動的に問題と解答がペアになってくれます。さて、データの形はこうなりました。

[
  (1., `puzzle/bijutukan/puri-1`, {ぷりにゃん}, 1);
  (1., `puzzle/bijutukan/puri-2`, {ぷりにゃん}, 2);
  (2., `puzzle/bijutukan/puri-3`, {ぷりにゃん}, 3);
]

さて、データの形を決めたところでこれをどのように処理すればこのニポリのようなパズルの配置になるでしょうか。 答えはわりと単純で、

  1. この(画像の横幅, 画像のファイル名, 作者名, レベル)という情報をもとにinline-boxes型を作る
  2. するとこのリストがinline-boxes listになる
  3. 中身を++演算子を使って横につなげていく
  4. 最終的に出来た大きなinline-boxesを行分割処理してblock-boxesにする
  5. block-boxesにする過程で適切な位置に適切なスペースを入れる
ということをするだけです。単純ですね。

5.2. 実装

実装もList.map make-ib-puzzle list |> List.fold-left (+++) inline-nilのようにすれば良いだけ……なのですが、このまま愚直に実装すると行分割が行われないままパズル画像がページからはみ出していきます。 これは、パズル画像には行分割候補箇所が設定されていないからです。 通常の文字であれば、基本的には単語内では分割禁止で、単語間であれば分割しても良いというふうに設定されているのですが、画像に関してはそういうふうな設定が存在していません。なので、行分割候補箇所を挟み込んでいきます。

行分割候補箇所はdiscretionary : int -> inline-boxes -> inline-boxes -> inline-boxes -> inline-boxesというプリミティブで作成することができます。引数の内容はそれぞれ「どれだけ行分割してほしいか」「そこで行分割されなかった場合に入るもの」「そこで行分割されたときに行末に入るもの」「そこで行分割されたときに行頭に入るもの」です。 それぞれ適切な値を入れて返ってくるinline-boxesをそれぞれのパズル画像の間に入れ、後はSATySFiの行分割アルゴリズムに任せるだけです。

今回の部誌では let break = discretionary 100 inline-fil inline-nil inline-filで定義されたbreakを挟み込んでいます。 こうすると、行分割された際にinline-fil ++ (パズル画像) ++ inline-fil ++ (パズル画像) ++ inline-filのようになってちょうどよい配置となります。

5.3. 例外機構の実装

これで完了と行きたいところですが、自動化するということは当然例外機構を組み込まないといけないということです。 具体的には、特殊ルールのパズルを載せるときにルールを書かなければいけない場合などです。今までは横に繋がっていただけのパズル画像にいきなり縦の流れを入れなければいけないのでかなり難しいです。

これを実現するためにSATySFiにはembed-block-breakable : context -> block-boxes -> inline-boxesというプリミティブがあります。 これの役割は、「途中までinline-boxesっぽく扱われるが、評価される段になると直前で行分割されてblock-boxesのような挙動をし、終わるとまたinline-boxesに戻る」というもので、“inline-boxesに擬態化したblock-boxes”という言い方ができます。

embed-block-breakableで特殊ルールの説明などをinline-boxesに変換してそのままつなぐと前後に自動的に挿入されるスペースがいたずらをするので、これを回避する必要が出てきます。 通常のinline-boxesをInlinePuzzle (ib)とし、変換したinline-boxesをBlockPuzzle (ib)として扱い、この2種類の接し方4通り全ての場合のスペースの付け方を個別に設定してやることで正常にスペースが入るようにしました。

6. HTMLの作成

紙の枚数は有限ですが、ページ数はどこまでも増やすことが可能です。そのため、頒布可能冊数が減ることは容易に想像できました。 頒布可能冊数が減るとということは、本来受け取れるはずだった人が受け取れなくなるということです。 これは困るので、救済策としてWeb上にホームページを作成してPDFファイルを公開することにしました。しかし、PDFファイルが40MB弱にもなる巨大なファイルになってしまったため、同じ内容のHTMLファイルを作成し、公開することにしました。

とは言っても部誌と同じ内容のHTMLファイルを一から書くのはとても大変な作業で、部誌本体に変更が加わったときにその変更を取り込むのも大変でしょう。 そこで、PDFファイルを作成しているデータから自動でHTMLファイルを作成することにしました。

SATySFiにはPDFファイルを書き出すだけでなく、テキストファイルを書き出す機能がついています(masterブランチの最新版でないと使えません)。 コマンドで変換コードを書いてあげればそのとおりにファイルに書き出される便利機能です。 例えば、URLを出力する\url(`http://nipori.gitlab.io`);のような使い方をする\urlコマンドは

let-inline ctx \url url =
  HTMLBase.tag ?:[(`href`, url)] ?:(false)
    tinfo `a` (fun tinfo -> url)

のように定義でき、\url(`http://nipori.gitlab.io`);http://nipori.gitlab.io のようにファイルに書き出されます。 これを組み合わせていけば自由にファイルを作ることが出来ます。 そして、実際この機能を使ってPDFファイルを同じ文書構造になるようなHTMLファイルを作成しています。 ここでPDFモードで使われているコマンドをHTML書き出しように別ファイルで定義して、同じファイルから自動でHTMLファイルとPDFファイルが作成されるようにしています。ちなみに、デザインの制御はCSSで行っています。

HTML書き出しとPDF書き出しの結果がほとんど同じようになるようにコマンドの記法を考えるのが難しかったです。

7. さいごに

部誌を作るときに使った技術や設計をいくつか紹介してきました。 まだまだ書いていない部分もありますが、苦労や工夫のもとでこの部誌ができているということに思いを馳せていただけると幸いです。

部活Tシャツ(部T)ができるまで

文責:ぷりにゃん・MAX・ハリネズミ・おかもん

今年は部Tを(おそらく)はじめて作成しました。 文化祭当日、青い部Tを着ている部員を見られることでしょう。 なにか質問等ありましたらぜひ声をかけてみてください。 さて、この部Tがどのようにして作られたのかを記事にしたいと思います。

1. なぜ作ることになったのか

例年、開成生が多く来場する参団のため、部員を見分けるのが困難となっていました。 これでは部員に用がある際に困るのではないかと考え、部員を見分けやすくするために専用のTシャツを作ることにしました。

2. デザイン編

大まかにデザイン編、とくくりましたが、Tシャツのデザインには様々な要素があります。もし何も決まっていなければ、Tシャツの色すら定まりません。 今回はTシャツ作成の発起人である副部長が大まかなデザインの構想を提案をすることから始まりました。

今回、単色のTシャツで、左胸と背中にプリントをしたTシャツを作成することにしました。Tシャツの色は無難で後述の背中デザインにもマッチした水色、胸にはこのパズル研究部のロゴという手堅い仕上がりだと思います(図一)。ちなみにロゴのデザインは四マス四方の変則数独になっています。

図一

そして背中のデザインですが、まずはこれを見て下さい(図二)。

図二

このドット絵をカラーロジック化して背面イラストにする予定でした。左が初期案、右が修正を重ねたものです。モチーフは「不思議の国のアリス」よりアリスです。分かるでしょうか。

しかしまだカラーロジック化していないので、実際の背面プリントとは大きく異なります。ここまではFireAlpacaというフリーペイントソフトを使って作業していたのですが、ここからはカラーロジック作成用のLogiNekoというフリーソフトを使用しました。

そして、カラーロジック化やTシャツにする上でのデザインを行ったものがこちらになります(完成図)。

完成図

ドット絵の状態から更に変化していますが、これは主に別解を消去するためのものです。別解というのはパズルに解が複数存在してしまうことで、カラーロジックの場合はイラストそのものに微修正を加えて解を確定させる必要があります。 左上の謎の英文は不思議の国のアリスの原作から引用したものです。パズル研究部なのでpuzzleの単語が入っている部分を引っ張ってきています。

後は細かい修正を加えた後、発注や入稿などと言った作業を行うので、そちらは作成編で詳しく記述します。

さて、原案は述べたとおりのものでしたが、部員から原案に反対する意見が出たので部員からもアイデアを募集することにしました。結果、アリスの絵を含めて3つの案が出ました。

図1 案A
図2 案B
図3 案C

しかしこのA案は7進法でどこかに明記しないと解けないということで、OBの力を借りるなどして以下の10進法覆面虫食い算のデザインに修正し、さらにアリスにも完成図と同じになるように若干の 修正をしたうえで投票を行いました。

修正A案

結果、修正A案に決定し、作業を進めることになりました

パズルとしてはスタイリッシュで格好いいと思いますが、どうやって解くんだコレ

とはいえこれでデザインが完成したので、次は実際のTシャツを作成する段階に入ります。

3. 作成編

紆余曲折の末デザインが決定したので、実際に画像を作成することになりました。 色々と事情があり、急遽編集長が作ることになりました。 LaTeXで虫食い算を作るパッケージ(編集長作)を利用して一旦PDFファイルを作り、これをさらにソフトを使って透過PNGに変換するという 非常に面倒な作業を行いました。が、それでは背中が寂しいということで参団名である「Enigma Sechzehn」という文字を追加することになったのですが、 作成した虫食い算のPNG画像を貼り付けてその下に文字を InDesignで打ち込んで、また透過PNGを出力するという非常に面倒な作業を行います。 部T作成の責任者がデザインの修正指示を担当していたのですが、編集者と完成イメージの共有ができなかったため、 作業が難航した上、結果も二人共がいまいち納得の行かないものになってしまったまま締め切りがきてしまいました。

これで画像が完成したので今度は発注作業に入ります。 まず、完成イメージを部員に見てもらい、大体の注文数を把握します。 次に、発注する会社を選ぶのですが、最近はオリジナルTシャツの作成を行っている会社が案外増えていて 選択肢は豊富にありました。しかし、前述の事情で時間があまりなく、吟味の余裕が無かったので適当な会社を選びました。 この会社は去年の文化祭のTシャツの作成を担当した会社だったのですが、1000人以上が購入する文化祭Tシャツとは勝手が違い、少し割高についてしまいました。

注文は入力フォームに必要事項を記入するだけで済むのでとても楽でした。 見積もりや支払い方法などはメールでスムーズにやり取りを行えたのでその後は特に苦労することなく無事にTシャツが届き、 全員に渡すことができました。

4. まとめ

急なデザイン変更などで予定が狂うなどありましたが、こうしてTシャツが完成しました。 締め切りには気をつけて、デザインを変更するなら早めにしないとダメですね。ともあれ無事に配布まで終わったのでよしとしましょう。

2019年パズ研合宿記録

文責:開ん5論

ここでは、恐らく初めての試みである、パズ研の合宿について書きたいと思います。文字ばかりになりますがすみません。筆者は合宿の運営に関わったわけでもなく、構成からして、かなり偏見に満ちた記事となりますが、パズ研では全員が異なる立場にあるので、このような記述になるのは仕方ないと思います。

1. 壱次会〜平成31年春合宿

パズ研で合宿をしたいという意見は、筆者が中1の時から存在した。オリンピックセンターでやるという案や、数研と合同でやるという案もあった。しかし、ほとんどの人が現実的でなくやる必要もないと考え続けていて、顧問にも反対されていた。そんな中、高1の1月頃に、合宿の予定が固まったと聞いて驚いた。しかも、高校教員室の上にある第一会議室に寝泊まりするというもので、そもそも学校に泊まるのが制度的に可能なのか心配であった。

しかし、合宿が現実になると、部長が泊まるのを拒否するという不自然な事態が発生したこともあり、高1は副部長兼自称合宿係1人しか泊まらなかった。筆者も非常に迷ったが、申込書が渡されるのが遅く親に確認する時間もなかったため、泊まらずに家から通うことになった。

3月26日(火)〜28日(木)に行われた春合宿では、OBを含めて通常より多くの人が集まった。部長も3日間とも、午前中に過去の部誌から抜萃したパズルが6問並べられたプリントを参加者に配り、しばらくしてから解説も行われた。1日目は他にも、実際のパズル大会と似た形式の模試のような物が行われ、2日目はその解説、3日目にはOBによるパズルの作り方の講義のようなことも行われた。特に模試では解きながら会話のドッジボールが起こったり、1日目に来れずに3日目に解いた人が圧勝したりして盛り上がった。通常の下校時刻である17時を過ぎると次々に帰って行き、筆者も特にすることがなくなり2日とも18時40分頃には泊まる5人だけとなった。

2. 弐次会〜パズ研合宿ではない

実は、春合宿より前に、修学旅行で同学年のパズ研部員の内6人が奇跡的に同じコースを選択したことが分かっていた。これは、春合宿より人数が多く、筆者が学校に泊まるのを妨げた要因の一つでもあった。6月4日(火)〜7日(金)の3夜同じ宿に泊まった。4日は部Tについて激しい議論が行われ、部長は急遽その日中に虫食い算を作らされることになった。詳しくはTシャツの記事を見て欲しい。しかし、その後は特にパズ研らしいことは行われなかった。

3. 参次会〜令和元年夏合宿

かつては、あれは最初で最後の無名の合宿だと思っていた。ところが、中1にパズルの作り方を教え、部誌のパズルを増やすという目的で、夏休みに再び合宿が行われることが決定した。この時はお知らせの配布も早く、申し込んだ人も倍増し10人であった。筆者もあまり迷わず申込を決めた。泊まらない参加者は春より少なかった。相変わらず部長は泊まらず、解かせるパズルのプリントを作っただけであった。プリントは春より多く、簡単な問題集と難しい問題集の2種類×3日分作ったが、その分学校での滞在時間が短かった。

8月6日(火)、重い荷物を持って冷房が動き始める前の食堂に集合する。第一会議室では折り紙研究部が合宿をするため、春より狭い第二会議室で行われるようなので、日中の活動は別に部屋を取るという案もあったが、連絡がない。部長はしばらく鍵を取っているのかプリントを作っているのか知らないが、校内をしばらく動き回っていて、先が思いやられる。結局、活動は全て第二会議室で行われることが決定し、その後机を動かしたり貸し布団屋から布団を運び込んだりして、本格的な活動を始められるまで、1時間近くかかってしまった。何人かが問題を解き終わると、昼食について話し合う。春合宿と違い食堂が営業していないので、全て外で調達しなければならない。昼食後は部室から知恵の輪や対戦型パズルが運び込まれる。それで遊ぶ人、色々なペンパを解く人、部誌を編集する人、OBと話す人、部屋の中を漂う人などが混在し、通常活動と同様適当に活動する。夕食は再びコンビニかスーパーで買い、風呂はすぐ近くの銭湯を利用する。そして、そのまま深夜まで盛り上がり、寝るのは1時を過ぎた。

2日目は7時過ぎに起きた。部長は来なかったが9時頃にプリントのパズルを解き始めた。1日目はほとんどパズルが生産されなかったので、全員にパズルを作らせようとした。前回よりは短いが作り方の軽い解説が行われ、中1もいくつかパズルを作った。昼食後に部長が来る頃から、部誌に載せる予定のパズルの本格的な別解チェックも行われた。泊まらない人が帰っても作業を続ける人もいた。この日の夕食は全員で弁当屋に買いに行った。OBも学校に残れる限界である22時の直前まで残り、証拠写真を撮るなどした。

3日目は全員が寝坊し、8時15分頃に起きた。そのため朝食後はすぐにパズルを解き始めた。そして2日目同様パズル制作や別解チェックが行われた。13時半頃には貸し布団屋のトラックが到着したので運び出し、活動と並行して少しずつゴミや私物の片付けが始まった。部長が到着したのは片付けが始まってからであった。その後、机の配置などの現状復帰を行い、17時に会議室を閉め、解散となった。

この代にとって、文化祭までの半年間は特に密度の濃い物となった。これらのパズ研合宿は全て終わりを告げたが、部活に積極的に参加する下級生も増え、顧問も賛成するようになり、来年以降も合宿を行いやすくすることができた。OBも参加していたので、合宿が毎年続けば、筆者の代も再び集まって活動することができる。受験勉強が終われば部長も泊まってくれるかもしれない。合宿は、元々人数が多いこの代が成し遂げた最大のことの一つである。とはいえ、これからの代も部の歴史に何かを残して行けば、合宿を始めたことなど小さいことになってしまうだろう。

筆者は所詮部室管理人という、役職ありと役職なしの境界のような立場ですが、これからの末長い部の繁栄を願います。

昨年度表紙問題

昨年度の表紙パズルの問題です。ヒントは「和は15」でした。

昨年度壁パズル問題

1同じ数探し

以下の四角の中に、同じ数が1組あります。ただし、数字を分解したり、計算したりしてはいけません。

2規則性

以下の数及び漢字の列は、ある法則に従い並んでいる。法則を見抜き、□に当てはまる数・数字を答えよ

  1. 3, 4, 3, 3, 3, 4, 4, 3, 4, □, 4, 3
  2. 1, 2, 4, 6, 16, □, 64, 24 ...
  3. 知, 森, 田, □, 城, 手 ...
3あるなし

下に示す言葉は、ある法則に当てはまれば「ある」、当てはまらなければ「ない」に分類される。このとき、「ある法則」を答えよ(左から(1), (2), (3)です)。

4クロスワード

ヒントを参考に、空欄に当てはまる言葉を書いてください。

5数字を当てろ!

A君は52枚のトランプ(ジョーカー除く)を持ってきてその中から適当に6枚引いたところ、次のようになったという。

  1. 3枚が奇数、3枚が偶数
  2. 素数のカードの方が、そうでないものより多い
  3. カードに書かれた数の約数の個数をそれぞれ求めて合計すると14個となった
  4. 絵札(11, 12, 13)は素数枚あった
  5. 書かれた数を全て足すと素数になった
  6. 書かれた数を全て掛けたところ、その最高位は4となった。また、位毎に数字を見ていくと、同じ数字は含まれていなかった。

このとき、引いた6枚のトランプに書かれている数字を答えよ。

昨年度表紙問題解答

ヒントは「和は15」でした。和が15、そして妙な位置にある6と9といえば \(3\times3\) 魔法陣ですね。これさえ思いつければ非常に簡単です。 この6と9に当てはまるように魔法陣を書き、その数字順に文字を並べていきます。 すると「文化祭たの6しい9」という文字列が出てくるはずです。 6と9は無視していいので、 答えは「文化祭たのしい」になります。

昨年度壁パズル解答

1同じ数探し

中央左よりの「4」と、右下の「ここは中学4階」の"4"が共通しているので、答えは「4」

2規則性
  1. むつき、きさらぎ、やよい・・・の文字数なので、かんなづきの「5」か、かみありづきの「6」
  2. 約数の数1, 2, 3, ... の最小の数なので、約数が6個ある数の中で最小である「12」
  3. 都道府県50音順の二文字目なので石川県の「川」
3あるなし
  1. 後に「球」を付けてスポーツになる
  2. 中に星座を表す言葉が入っている
  3. 上に1つ、下に2つ並べることで漢字になる(品など)。
4クロスワード
5数あてゲーム

2, 2, 7, 10, 13, 13

ペンシルパズル解答

スリザーリンク

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

ぬりかべ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

数独

1
2
3
4
5
6
7
8
9

美術館

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

のりのり

1
2
3
4
5
6
7
8
9
10
11
12
13
14

四角に切れ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

シャカシャカ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

ヤジリン

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

ましゅ

1
2
3
4
5
6
7
8
9
10

へやわけ

1
2
3
4
5
6
7
8
9
10

LITS

1
2
3
4
5
6
7
8

フィルオミノ

1
2
3
4

スラローム

1
2
3
4
5
6
7
8
9
10
11
12

ドッスンフワリ

1
2
3
4
5
6
7
8
9
10

ビルディング

1
2
3
4
5
6
7
8

シロクロリンク

1
2
3
4

お家へ帰ろう

1
2

ぬりみさき

1
2
3
4

虫食い算

1
2
3
4
5
6
7
8

イラロジ

1
2

立体ぬりかべ

1
2