1)課題
左側のコンベアのパネルを2つごとに加算した結果を、右側に運んでください。[ADD]コマンドが使用可能になりました。指定箇所の数値を、手元の数値に加算します。
2)解説
足し算をするADDコマンドの使い方を学ぶための問題です.
コマンドをいくつか並べて, ADDコマンドの動作を確認します. ステップ実行して, ADDコマンドの動作を確認してみましょう.
COPYTOコマンドまで実行しました. カーペットの0番に8と書いたパネルを置いています.
INBOXコマンドを実行したので, 左のコンベアから3と書いたパネルを取りました.
ADDコマンドを実行しました. ADDコマンドの左の数字は0となっています. ADDコマンドを実行する前は, カーペットの0番には8と書いたパネルが置いてあり, 3と書いたパネルを持っていました. ADDコマンドを実行すると, 11と書いたパネルを持っています. つまり, ADDコマンドは, カーペットのパネルと持っているパネルの数字を足し, 足した結果を書いたパネルを持ちます. また, カーペット0番に置いてあるパネルの数字は変わっていないことも確認してください.
このコマンドの並び, 即ちコードによって, 左のコンベアのパネル2枚を加算できました. 持っているパネルを右のコンベアに運べば, 課題をクリアーできます.
ADDコマンドの動作を確認するコードは, 左のコンベアからパネルを2枚取り出し, 加算した結果を持っています. 加算した結果をそのまま右のコンベアに運び, JUMPコマンドで先頭に戻れば, 課題をクリアーできます.
3)補足
ADDコマンドがエラーとなり, 上司に怒られる条件を確認します.
パネルを持たず, カーペットにもパネルを置かずにADDコマンドを実行すると上司に怒られます.
パネルを持っていますが, カーペットにパネルを置かずにADDコマンドを実行しても上司に怒られます.
カーペットにパネルを置いていますが, パネルを持たずにADDコマンドを実行しても上司に怒られます.
4)まとめ
- この課題では, ADDコマンドを使ってカーペットのパネルと持っているパネルを加算する方法を確認しました.
- 加算した結果は持っているパネルに反映されます. 一方, カーペットのパネルは変化しません.
- ADDコマンドを実行する時は, パネルを持っていることと, カーペットにパネルを置いていることの両方の条件を満たす必要があります.
- ADDコマンドを実行できる条件を満たしていないのに, ADDコマンドを実行すると上司に怒られます. 上司はすぐに怒るので, 慎重にコードを組み立てましょう.