開発メンバーの大村です。
野心的なところもあって素敵なプログラムだと思います。
最低限以下の2つの修正が必要です。
修正のヒントを以下の通り紹介します。
1)撃墜数カウントの修正
> x=1。
> x:代入=(x+1)。
> 敵:衝突=「x! 代入。 自分! 消える。敵たち!(自分)消す」。
この部分は、敵を倒したらxを増やす意図で記載していると思います。
考え方は正しいですが、「x:代入=(x+1)。」だと、xの代入という変数の中にx+1を代入(つまり、今回のプログラムだと2を設定)する記述になっているので、上述の意図のプログラムになっていないみたいです。
※得点を部品(オブジェクト)として捉えて、命令を追加しようとした発想はとても素晴らしいです。
上記は少し難易度が上がるので、衝突のたびにXに1を足すプログラムを追加するプログラムから始めてはどうかと思います。
[例]
x=1。
敵:衝突=「:x= (:x) +1。 自分! 消える。敵たち!(自分)消す」。
なお:xという書き方をしていますが、今回の「X=1.」のように、命令のブロック内に含まれない箇所で作成した変数(グローバル変数)を、命令のブロック内で利用する場合には:をつけて利用します。
詳しくは「
https://dolittle.eplang.jp/ch_syntax」のグローバル変数の項目を確認してください。
また。上記の修正をした場合は、”「x == 1」!なら”などの評価の部分も”「(:x) == 1」!なら”と変更する必要があるので変更するようにしてください。
2)撃墜数チェックが1回しか行われない。
> 「(x) == 1」! なら「
> コメント欄! "tesuto4" 書く 100 400 位置。
> 」実行。
>
> 「(x) == 2」! なら「
> コメント欄! "tesuto2" 書く 100 400 位置。
> 」実行。
上記で、撃墜数のチェックをしていますね。
この評価式は正しいものです。
ただし、このままだと、プログラムを実行したときに1回しか実行されません。
このため、ミサイル(ロケット)が敵にぶつかった時には、上記のプログラムの実行は終了しているので、文字が変わらない結果になっています。
この修正の考え方はいくつかあります。
考えやすいところだと以下の2つかなと思います。
a)ロケットと敵がぶつかったときに判定するようにする。
b)ロケットの移動のように、タイマーを使って、一定間隔(できるだけ細かい間隔)で何度もチェックする
いずれもメリット・デメリットがあります。
作るゲームに合わせてどちらを選ぶかを考えてみてください。