本書に登場する用語を、カテゴリごとにまとめました。「初出」には、その用語が最初に詳しく説明されている部と章を示しています。
CHaserのルール用語
- CHaser(チェイサー):対戦型のゲームプラットフォーム上で動作する自律型プログラムによる競技(第1部1章)。
- フィールド:対戦が行われるマス目(グリッド)状の盤面(第1部2章)。
- Cool・Hot:先攻・後攻を担当する2人のプレイヤーの呼び名(第1部2章)。
- アイテム(Item):取得するとスコアが上がるマス。取得した瞬間にブロックへ変わる(第1部2章・4章)。
- ブロック(Block):通り抜けができないマス。攻撃や妨害にも使える(第1部2章)。
- Floor:何もない空きマス(第2部2章)。
- Enemy:相手プレイヤーを表す値(第2部2章)。
- アタック勝ち:相手のいるマスにブロックを設置して勝利すること(第1部5章)。
- 衝突:自分がブロックのマスに移動しようとして負けること(第1部5章)。
- 閉じ込め勝ち:相手を上下左右すべてブロックで囲んで勝利すること(第1部5章)。
- 自縛(じばく):自分自身がブロックに囲まれて身動きが取れなくなり負けること(第1部5章)。
- ターン:CoolとHotが交互に1手ずつ行動する対戦の基本単位。1回の番で行動できるのは1回だけ(第2部4章)。
- 距離の偶奇:自分と相手の距離(縦のずれ+横のずれ)が、偶数か奇数か。お互いに毎ターン1マス動くと変わらないので、初めの距離が偶数で相手が動き回るときは、
putを1回入れて、偶奇をずらす必要がある(第2部4章)。 - 合言葉:同じ対戦ルームに入るための合図(第3部2章)。
- ルーム:対戦を行う場所の単位(第3部2章)。
プログラミングの基本用語
- 変数:値に名前を付けて覚えておく仕組み(第2部0章・5章)。
- 代入:変数に値を入れること。Pythonでは
=で表す(第2部0章)。 - 比較演算子:2つの値が等しいかどうかなどを調べる記号。Pythonでは
==・!=・>など(第2部0章・2章)。 - 条件分岐:「もし〇〇なら」という条件によって、実行する処理を変える仕組み(第2部0章・2章)。
- 繰り返し:同じ処理を複数回、または条件を満たす間くり返し実行する仕組み(第2部0章・1章)。
- ネスト(入れ子):繰り返しや条件分岐の中に、さらに別の繰り返しや条件分岐を入れた構造(第2部1章)。
- インデント(字下げ):Pythonで、
ifやwhileなどの内側の処理を示すための字下げ(第2部0章)。 - コメント:
#から行の終わりまでの、プログラムの動作に影響しない、人間が読むためのメモ(第2部0章)。 - 論理演算(and・or・not):条件を組み合わせたり、反対にしたりする仕組み(第2部3章)。
- リスト:複数の値を順番に並べてまとめて扱うデータ。番号(0から始まる)で1つずつ取り出せる(第2部0章・3章・5章)。
- 乱数(ランダム):候補の中から予測できない形で1つを選ぶ仕組み(第2部5章)。
- 引数(ひきすう):命令や関数を呼び出すときに渡す値(第2部5章)。
- 戻り値:関数の実行結果として呼び出し元に返される値(第2部5章)。
- None:「該当なし」を表す、Pythonの特別な値(第2部5章)。
- 優先順位の連鎖:判断を行う関数を優先したい順に並べ、行動したらそのターンを終えるという形で、プログラムを組み立てる方法(第3部3章)。
- 辞書:キーを指定して値を取り出すデータ。
{キー: 値}の形で書く(第3部3章)。 - タプル:
(x, y)のように、複数の値をかっこで囲んで1組にしたもの。作ったあとで中身を変えられない(第3部3章)。 - 座標・自己位置:スタート地点を
(0, 0)として、マスの位置と自分の位置を(x, y)で表したもの。歩くたびに数えて更新する(第3部3章)。 - 幅優先探索(BFS):近いマスから順に広げて、目的のマスへの最短の道順を探す方法(第3部3章)。
Pythonの画面の用語
- チュートリアル(Python):ステージ選択画面の右上の切り替えを「Python」にして開く、Pythonでステージを解く画面。命令を
walk(Up)のように名前だけで書く(第1部6章、第2部0章)。 - 骨組み:対戦用のPythonの画面を開いたときに、最初から書かれているプログラム。自分で書き換えるのは、
while True:の中と、自分で作る関数だけ。命令にはplayer.を付ける(第2部0章)。 - プレイヤー・対戦AI・マップ(タブ):Pythonの画面のエディタを切り替えるタブ。自分のプログラム、練習相手のプログラム、練習で使うマップを、それぞれ編集する(第3部1章)。
- 出力欄:
print()の出力や、エラーメッセージが表示される場所(第3部1章)。
Pythonの命令・演算子とCHaser専用の関数
- Client:ゲームに接続して、キャラクターを動かすための
playerを作る道具。骨組みに書かれている(第2部0章)。 - map_info:自分を中心とした周囲9マスの情報がまとめて入った変数(第2部2章)。
- get_ready():自分の番を待ち、最新の周辺情報を取得する命令(第2部4章)。
- walk(方向):指定した方向に1マス移動する命令。対戦用の画面では
player.walk(方向)と書く(第2部1章)。 - put(方向):指定した方向にブロックを設置する命令(第2部4章)。
- look(方向):指定した方向の2マス先を中心とした周囲9マスを調べる命令(Blocklyの近隣探査)。結果は
look_info(第2部3章)。 - search(方向):指定した方向に一直線9マス分の情報を調べる命令(Blocklyの遠方探査)。結果は
search_info(第2部3章)。 - first_index(リスト, 値):リストの中で指定した値が最初に見つかった位置を返す関数。Blocklyから変換されたコードに出てくる。チュートリアルのPython画面では使えない。位置は1から数え、見つからなければ0を返す(
search_info[番号]が0から数えるのとは数え方が違う)(第2部3章・5章)。 - in:値がリストの中に含まれているかどうかを調べるPythonの演算子(第2部3章)。
- and・or・not:条件を組み合わせる、または反対にする論理演算子(第2部3章)。
- for・range():回数が決まっている繰り返しを書く文と、数字の並びを作る命令(第2部0章・1章)。
- while True::ずっと繰り返す書き方(第2部1章)。
- def・return:関数を定義する文と、関数から値を返す命令(第2部5章)。
- random.choice(リスト):リストの中からランダムに1つを選ぶ命令。チュートリアルの画面では、先頭に
import randomが必要(第2部5章)。 - global:関数の外にある変数を、関数の中で書き換えるときに、関数の先頭で行う宣言(第2部5章・第3部3章)。
- print():値を出力欄に表示する命令。プログラムの途中の値を確かめるのに使う(第2部6章)。
Blocklyのブロックと、Pythonの書き方の対応は、第2部6章の「Blockly⇔Python対応表」にまとめています。
用語ではなく「この話題はどこに書いてあったか」を探したいときは、付録4「索引」も利用してください。