Slide 1

Slide 1 text

ゲームで コンピューターの仕組みを学ぶ ~ Human Resource Machine ~ 白栁隆司

Slide 2

Slide 2 text

自己紹介 エンジニアカウンセラー 白栁 隆司 Youtubeに平日ほぼ毎日動画投稿中! #ほぼ日ITエンジニアニュース @IT 自分戦略研究所 エンジニアライフにて「コレがワタシの生きる様」連載中(木曜日) 4つのことを、ITエンジニアに勧めてます 1. 傾聴によるコミュニケーション 2. メンタルヘルス(セルフケア) 3. セルフマネジメント 4. 日々の生活の中からエンジニアリングを学ぶ

Slide 3

Slide 3 text

はじめに この動画はMiraitoDesign社がYoutubeチャンネルで公開 している「現役エンジニアが最近話題のプログラミングの ゲームやってみた」シリーズの動画にインスパイアを受け て作成しました。 https://www.youtube.com/c/MiraitoDesignInc

Slide 4

Slide 4 text

知りたい、でもハードルが高い! CPUの仕組みやメモリの動きを知りたい人は多い これらを机上で教えるのは大変!!(経験談) ● 「メモリ空間」のイメージが難しい ● 「アセンブラ」?よくわからん! ● レジスタ?アーム?メモリと違うの?? etc...

Slide 5

Slide 5 text

実践で覚えればいいじゃない アセンブラ(CASLⅡ)Webシュミレーター https://www.chiba-fjb.ac.jp/fjb_labo/casl/index.html

Slide 6

Slide 6 text

実践で覚えればいいじゃない Paiza(C言語) ※C言語ならオンラインコーディング環境は沢山ある。 https://paiza.jp/

Slide 7

Slide 7 text

実践で覚えればいいじゃない アセンブラやC言語をやればいいけれど... やっぱりハードルが高い ● フルスペックなので機能が多い(全部入り) ● メモリ破壊ですぐ動かなくなる ● 低級言語過ぎて人間はわからん etc...

Slide 8

Slide 8 text

ゲームで覚えればいいじゃない Human Resource Machine ©Tomorrow Corporation ・STEAM ・WiiU ・iOS ・Android ・Nintendo Switch ※Swith版は解説付き

Slide 9

Slide 9 text

何故 Human Resoce Machine なのか? 1. 基本的なCPUとメモリの仕組みを再現 2. 限定された機能 3. 【一人称】の的確さ 4. いろんなハードで手軽に遊べる 5. 最終的にはアルゴリズムゲームになる

Slide 10

Slide 10 text

1. 基本的なCPUとメモリの仕組みを再現 ● 画面のそれぞれが、CPUやメモリに相当(次画面) ● 命令の少なさもCUP準拠(泣) ○ バリバリの低級言語仕様 ● メモリ領域やコードにラベルを書ける辺りが ちょっと高級言語!

Slide 11

Slide 11 text

1. 基本的なCPUとメモリの仕組みを再現 レジスタ 【標準入力】 【メモリー(アドレス)】 (外部・主記憶装置) 【演算装置(プロセッサー)】+【レジスター】 ※レジスタは内部の一時記憶領域 【標準出力】

Slide 12

Slide 12 text

【標準入力】 【標準出力】 【メモリー(アドレス)】 (外部・主記憶装置) 【使用可能命令】 (低級言語)

Slide 13

Slide 13 text

【実行メモリー(アドレス) 】 【メモリー(アドレス)】 (外部・主記憶装置) 【演算装置(プロセッサー)】 ※人が持ってる部分が【レジスター】 (アキュムレーターのみ)

Slide 14

Slide 14 text

2. 限定された機能 ● シンプル of シンプル ○ 必要なものは揃ってる ● 実行に必要なものが沢山 ○ 実行、ステップ実行、コード領域(3面) ラベル、アンドゥ、コピー&ペースト etc...

Slide 15

Slide 15 text

3. 【一人称】の的確さ ● 【人】が中心 ○ inbox : 人に入力 ○ outbox : 人から出力 ○ copyfrom : 人に指定メモリの情報を複写 ○ copyto : 人から指定メモリへ情報を複写

Slide 16

Slide 16 text

3. 【一人称】の的確さ ● 【CPU】が中心 ○ inbox : CPUに入力 ○ outbox : CPUから出力 ○ copyfrom : CPUに指定メモリの情報を複写 ○ copyto : CPUから指定メモリへ情報を複写

Slide 17

Slide 17 text

4. いろんなハードで遊べる ● PlayStation系、Xbox系以外のハードなら遊べる?               (Wikipedia調べ) ● オススメはNintendoSwitch版 ○ 各問題の解説ペーパーが付いてくるらしい ● Steam版+ネットの攻略記事でいいかも?

Slide 18

Slide 18 text

5. 最終的にはアルゴリズムゲームになる ● 「アルゴリズムゲーム」だと感じられたら、 CPUとメモリの仕組みが理解できてると思っていい ● 加減乗除に総和、素因数分解等、基本的なアルゴリズ ムは課題として用意されている ● 最小ステップ、最短ステップというゲーム性

Slide 19

Slide 19 text

おまけ. 足りないと感じたところ ● 比較処理の中に同値比較がない ○ ゼロ比較、マイナス比較は現実的な実装 ● ビット演算系の実装がない ○ ビット演算やシフト演算がない ○ それを利用して解く課題がない為だろう

Slide 20

Slide 20 text

おまけ2. ゼロ比較とマイナス比較の仕組み ビット演算で、とてもシンプルに実装できる 前提:2進数での数字表現の仕組み   2の乗数の組み合わせと符号での管理   

Slide 21

Slide 21 text

おまけ2. ゼロ比較とマイナス比較の仕組み ◇ ゼロ比較の仕組み   この演算結果が「ゼロ」なら【真】とする

Slide 22

Slide 22 text

おまけ2. ゼロ比較とマイナス比較の仕組み ◇ マイナス比較の仕組み   符号だけを取りだして「0/1」の判断ができる

Slide 23

Slide 23 text

まとめ ● Human Resource Machine は良いゲーム ○ CPUとメモリの機能を程よく再現している ○ 理解の目安も立てやすい ● 続編?の7 Bilion Machine は機械操作的要素多 ○ マルチスレッドの考え方とも言えるか?

Slide 24

Slide 24 text

ご視聴ありがとうございました エンジニアカウンセラー 白栁隆司 CPUとメモリの仕組みは面白い!