Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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とメモリの仕組みは面白い!