2018の8日目の記事です。Machine(日本語版はもっともっとインクレディブル・マシーン)を紹介します。Machineはルーブ・ゴールドバーグ・マシーンを作るゲームのシリーズです。ルーブ・ゴールドバーグ・マシーンというのは、単純な作業を手の込んだからくりを使って遠回りに実現する装置のことです。いわゆるピタゴラ装置ですね。Machineシリーズの2作目で発売年は1992年(日本語版は1995年)だそうです。95のノートパソコンで遊んでました。XP,Vista,10で動作するものが購入するできます。packが約$10で購入できます。packはWindowsのみ対応らしいです。昔はMacで動くやつも販売されていたらしいんですが。)ゲームの形式は次のようになっています。各ステージ毎に課題と道具の初期配置(固定)、自由に配置できる道具のセットが与えられます。自由に配置できる道具を配置して、課題をクリアしたら勝ち。一つだけ例をやってみます。このステージでは一番右の蝋燭に火をつければ勝ちです。自由に使える道具は画面右側のツールボックスにあります。(スクリーンショットでは隠れている)です。課題を解決するには例えば次のように道具を配置します。これを動かしてみると次のようにして課題が解決できます。バケツが重力に従い落下し、一番左の白熱電球を灯す虫眼鏡を通った白熱電球の光がロケットに火をつけるロケットが発射し上に向かう。途中でダイナマイトに火をつけるダイナマイトが爆発して、ボウリング球を右側に飛ばすボウリング球が懐中電灯のスイッチをつける懐中電灯の光が虫眼鏡を通ってロケットに火をつけるロケットが発射し、シーソーにぶつかるシーソーにつながれたロープが滑車を通して、白熱電球を灯す白熱電球の光が虫眼鏡を通ってろうそくに火をつける動画で見るとこんな感じです。ちなみに、このゲームにはフリーエディットモードがあり、使える道具の制約なしに自分の好きなルーブ・ゴールドバーグ・マシーンを作ることができます・・・と聞くと半加算器を実装したくなるのが人情というものですよね。「プログラマーにオススメしたいゲーム紹介」という企画だったので、そこそこ頭をひねって実装してみました。1bit半加算器これが俺の答えじゃー!(ババーーン)左側のスイッチ付きコンセントが入力装置です。スイッチの上に野球ボールを置くと1、置かないと0とします。右側の家は下位ビットの出力です。家の中に人が入ると1、入らないと0です。右側の猿が乗った自転車が上位ビットの出力(桁上がり)です。猿が自転車をこぐと1、こがないと0です。動作させるとこんな感じになります。(野球ボールの位置をミスって何回かトライしてます。)AND回路の実装は簡単だったのですが、XORの実装方法を考えるのが難しかったです。何度、YouTubeで検索しそうになったことか・・・お付き合いいただきありがとうございました。Machine競技プログラミングコンテストカレンダーを作る(AtCoderスクレイピング編)月別アーカイブリンクはてなブログブログをはじめる(無料)お知らせはてなブログをはじめよう!blue_jamさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。