(投稿前に、内容をプレビューして確認できます)

簡易のブラックジャック

  • 寝屋
  • 2024/03/08 (Fri) 10:45:13
知識不足で作ってみたものの完成しませんでした。
ご教授お願いします。


ラベル1= ラベル!(乱数(10))作る。
ラベル1! -200 0 位置 100 50 大きさ。
ラベル2= ラベル!(乱数(10))作る。
ラベル2! -100 0 位置 100 50 大きさ。
ラベル3=ラベル!((ラベル1) +(ラベル2))作る。
ラベル3! 0 0 位置 100 50 大きさ。
ボタン1=ボタン! "一枚目" 作る。
ボタン1! -200 100 位置 100 50 大きさ。
ボタン2=ボタン! "二枚目" 作る。
ボタン2! -100 100 位置 100 50 大きさ。
ボタン3=ボタン! "合計" 作る。
ボタン3! 0 100 位置 100 50 大きさ。
ボタン4=ボタン! "引く" 作る。
ボタン4! -200 -100 位置 100 50 大きさ。
ボタン4 : 動作= 「ボタン4 ! 消える。」。
ボタン4 : 動作=「ラベル4= ラベル!(乱数(10))作る。」。
ラベル4! -100 -100 位置 100 50 大きさ。
ボタン5=ボタン! "結果" 作る。
ボタン5! 0 200 位置 100 50 大きさ。
ボタン5 : 動作= 「ラベル5= ラベル!(乱数(3)+17)作る。」。
ラベル5! -100 250 位置 100 50 大きさ。
ボタン5 : 動作= 「ぜんぶ!「(ラベル3) +(ラベル4)>=ラベル5」「(ラベル3) +(ラベル4)<22」本当」!なら
「ラベル6=ラベル!"your win" 作る」実行。
ラベル6! -400 -100 位置 100 50 大きさ。

Re: 簡易のブラックジャック

  • kanemune
  • 2024/03/10 (Sun) 21:43:19
寝屋さん、ご質問ありがとうございます。
「完成していない」とのことで作成途中なのだと思いますが、もし困っていることがありましたら、それを具体的に書いてみると誰かがアドバイスを書いてくれるかもしれません。

迷路ゲームのプログラム希望3

  • KY
  • 2024/03/07 (Thu) 06:03:42
kanemuraさん、返信をありがとうございます。

かめたの最初の位置を画面左下にしたいのですが、どうしたらいいでしょうか。
加えて、タイマーの時間を長くするにはどうしたらいいでしょうか。
本当に基本的な質問ばかりですみません。
よろしくお願いします。

Re: 迷路ゲームのプログラム希望3

  • K.Y
  • 2024/03/07 (Thu) 18:37:41
kanemuneさん、詳しい説明をありがとうございます。

これを参考にして、地道に作成してみようと思います。

とても親切で丁寧な回答をありがとうございました。

Re: 迷路ゲームのプログラム希望3

  • kanemune
  • 2024/03/07 (Thu) 06:54:37
KYさん、ご質問をありがとうございました。

ドリトルのテキストはこちらのページをご覧ください。
https://dolittle.eplang.jp/manualv331

タートルが使える命令は「命令一覧」の「グラフィックスオブジェクト」にあります。
https://dolittle.eplang.jp/ref_graphics33
タートルを左下に動かすには、「歩く」のほかに、「移動する」や「位置」が使えます。また、線を引かずに動かすときは「ペンなし」が使えます。

タイマーの説明は「4.アニメーション」にあります。実行時間を変えるには「時間」を使います。
https://dolittle.eplang.jp/ch_animation
「命令一覧」の「基本的なオブジェクト」にもタイマーで使える命令が紹介されています。
https://dolittle.eplang.jp/ref_basic33#%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC

それぞれの命令にはプログラム例が書かれていますので、ぜひ動かしながら試してみてください。

迷路ゲームのプログラム希望2

  • K.Y
  • 2024/03/06 (Wed) 06:08:07
kanemuneさん、さっそく返信をありがとうございました。
大変参考になります。

わがままを言って申し訳ないのですが、スタート位置からかめたを動かして、壁にぶつかったら、ゲームが終了する迷路ゲームの基本的なプログラムを紹介していただけないでしょうか。

そのくらい自分で考えなさいとおしかりを受けそうですが、どうかよろしくお願いします。

Re: 迷路ゲームのプログラム希望2

  • kanemune
  • 2024/03/06 (Wed) 07:25:34
K.Yさん、参考になってよかったです。
昨日のプログラムを参考にすれば、迷路ゲームをご自分で作れると思います。
ぜひ、チャレンジしてみてください。

迷路ゲームのプログラム希望

  • K.Y
  • 2024/03/03 (Sun) 08:41:19
ドリトル初心者です。かめたを移動させて出口まで到達したら「おめでとう」とメッセージがでるような迷路ゲームのプログラムを教えてくれませんか。どなたか、どうかよろしくお願いします。

Re: 迷路ゲームのプログラム希望

  • kanemune
  • 2024/03/05 (Tue) 21:42:40
K.Yさん、ご質問ありがとうございました。
おめでとうのメッセージを表示するサンプルプログラムです。
ご参考になれば。

===
// 主人公と表示欄を用意する
かめた=タートル!作る。
表示=ラベル!作る。

// 壁を作る
壁=かめた!200 歩く 90 右回り 50 歩く 90 右回り 200 歩く 図形を作る。
かめた!ペンなし 90 右回り 25 歩く 90 右回り。

// ゴールを置く(もう一匹のタートルを置いているが、図形を作ってゴールにすることも可能)
ゴール=タートル!作る ペンなし "star.png" 変身する 200 −25 位置。
ゴール:衝突=「時計!停止。表示!"おめでとう!!" 書く」。

// かめを動かす
時計=タイマー!作る。
時計!「かめた!10 歩く」実行。

当たり判定で困っています

  • 匿名の人
  • 2023/08/30 (Wed) 11:26:56
カメ太の出す玉に敵が当たったときのみに得点が増えるようにしたいです。下のプログラムを動かすと、敵に星が当たったときに得点が増えてしまいます。また、一番最初に作った敵オブジェクトにはカメ太が当たるとカメ太と敵の両方が消えますが、敵たち!(敵! 作る 〇〇 〇〇 位置)書く。で作った敵にあたったときは敵のみが消えてしまいます。どの敵にあたってもカメ太と敵が両方、もしくはカメ太のみが消えるようにしたいです。

画面! (黒)塗る。
カメ太=タートル! 作る ペンなし -550 0 位置。
カメ太! "ayumiBlue.png" 変身する。
up=ボタン! "up" "UP" 作る -80 -320 位置。
up:動作=「カメ太! 0 20 移動する」。
down=ボタン! "down" "DOWN" 作る -80 -440 位置。
down:動作=「カメ太! 0 -20 移動する」。

right=ボタン! "right" "RIGHT" 作る 50 -380 位置。
left=ボタン! "left" "LEFT" 作る -200 -380 位置。
right:動作=「カメ太! 20 0 移動する」。
left:動作=「カメ太! -20 0 移動する」。

カメ太:****=「タイマー! 作る「自分! 20 歩く」実行」。
****=ボタン! "****" "ENTER" 作る -50 -380 位置 100 45 大きさ。
****:動作=「カメ太! 作る 55 歩く "rocket.gif" 変身する ****」。
星=タートル! 作る "star.png" 変身する ぺんなし 10000 10000 位置。

星たち= 配列! 作る。


時計=タイマー! 作る 0.03秒 間隔 15秒 時間。
時計!「星たち!「|星|星! -5 0 移動する」それぞれ実行」実行。


繰り返し時計=タイマー! 作る 4秒 間隔 15秒 時間。
繰り返し時計!「


//二回目流れ
星たち!(星! 作る 800 70 位置)書く。
星たち!(星! 作る 610 0 位置)書く。
星たち!(星! 作る 710 300 位置)書く。

//三回目流れ

星たち!(星! 作る 1310 200 位置)書く。
星たち!(星! 作る 1200 90 位置)書く。
星たち!(星! 作る 1180 -210 位置)書く。
星たち!(星! 作る 1110 300 位置)書く。


//四回目流れ

星たち!(星! 作る 1630 -260 位置)書く。
星たち!(星! 作る 1510 -300 位置)書く。
星たち!(星! 作る 1610 0 位置)書く。
」実行。


敵たち=配列! 作る。
敵=タートル! 作る "ayumiAka.gif" 変身する ペンなし 180 右回り 20 40 移動する。
敵たち!(敵! 作る 400 -100 位置)書く。
敵たち!(敵! 作る 400 170 位置 "ayumiYellow.png" 変身する )書く。
敵たち!(敵! 作る 0 -350 位置)書く。
敵たち!(敵! 作る 200 -250 位置)書く。

x=1。
得点=フィールド!0 作る -800 400 位置。
敵:衝突=「|相手|「相手≠星」!なら「自分!消える。得点! 100 増やす。 :x=(:x)+1。」実行」。
カメ太:衝突=「|相手| 「相手=敵」!なら「自分!消える。」実行」。

制限時間=15。
カウントダウン=フィールド! 作る 700 400 位置。
コメント欄=ラベル! 作る  (黄色) 塗る -10000 400 位置。
終了時計=タイマー! 作る 1秒 間隔(制限時間)時間。

終了時計!「|n|カウントダウン!(制限時間-n)書く。
繰り返し時計=タイマー! 作る 0.1秒 間隔 14.85秒 時間。
繰り返し時計!「
   「(:x) == 1」! なら「
    コメント欄! "testo1" 書く -10100 -4000 位置。
                      」実行。

   「(:x) == 2」! なら「
    コメント欄! "testo2" 書く -10100 -4000 位置。
                      」実行。

   「(:x) == 3」! なら「
    コメント欄! "testo3" 書く -10100 -4000 位置。
                      」実行。
   「(:x) == 4」! なら「
    コメント欄! "testo4" 書く -10100 -4000 位置。
                      」実行。

」実行。

 「(n) == 15」! なら「
  ラベル! "Score"作る (白) 塗る -100 190 位置。
得点! 移動する 0 200 位置。
コメント欄! 移動する 0 0 位置。
  終了時計! 中断
 」実行
」実行。

どこを修正すればプログラムが動くようになるのか教えてください。


Re: 当たり判定で困っています

  • omura
  • 2023/09/01 (Fri) 22:06:14
開発メンバーの大村です。

衝突判定で消去する対象を限定したいということですね。
いろいろなやり方がありますが、キャラクターに判定対象なのかを判断させる属性を持たせて、その属性が消す対象かを判断するという方法があります。


以下のプログラムは「うさみ」「かぶきち」「かめた」というキャラクターに「種別」という属性を設定し、その属性が”敵”の時だけ、かめたの衝突判定で消す対象にする判断をしています。

この方法を利用すれば、お作りになったプログラムでも「弾に当たったときだけ」とか、「敵に当たったときだけ」消すプログラムが作れると思います。
参考にしてみてください。

***************
うさみ=タートル!作る "rabbitBlue.png" 変身する ペンなし。
うさみ:種別=”敵”。
うさみ! -150 -150 位置。

かぶきち=タートル!作る "beetle.png" 変身する ペンなし。
かぶきち:種別=”中立”。
かぶきち! 150 150 位置。

かめた=タートル!作る ペンなし。
かめた:種別=”味方”。
かめた:衝突=「|相手|
「(相手:種別) == ”敵”」!なら「相手!消える。」実行。
」。


操作ボタン=ボタン!”まがる” 作る。
操作ボタン:動作=「かめた! 30 右回り」。

時計=タイマー!作る 360 時間。
時計!「かめた!10 歩く。」実行。

ドンクリwindows版がダウンロードできません

  • 池田英仁
  • 2023/07/10 (Mon) 22:19:35
どこかに表示されているのかもしれませんが、ダウンロードできません。どうすればよいでしょうか?教えてください。

Re: ドンクリwindows版がダウンロードできません

  • 池田英仁
  • 2023/07/12 (Wed) 05:30:25
確認できました。ありがとうございました。

Re: ドンクリwindows版がダウンロードできません

  • honda
  • 2023/07/11 (Tue) 18:01:46
池田様
お問い合わせありがとうございます。
サポートメンバーの本多と申します。

DLのリンクが切れており、失礼いたしました。
修正いたしましたので、ご確認いただけますでしょうか?
https://dolittle.eplang.jp/dncl

音楽でエラーが表示される。

  • 山路晴秀
  • 2023/06/13 (Tue) 15:54:59
「エラーがあります。
演奏できません。」と表示が出て、音が出ません。どうすれば演奏できますか?

Re: 音楽でエラーが表示される。

  • HANDA
  • 2023/07/06 (Thu) 09:55:34

インストール版再取得の状況につきまして回答いたします。

再取得実施いたしましたが、エラー発生致しました。
※解凍の不具合ではなさそうです。

 再取得、解凍後、①②でdolittle_tabを実行
  ①別のPC(OS:Win8.1)で音楽サンプル動作致しました。
 ②該当のPC上でを実行すると音楽サンプルでエラー発生。

なお、コントロールパネル>プログラム の画面にJavaの選択画面がない為
バージョンなどの情報はありません。


→山路先生へ

以後メールでのやり取りになるとの事なので宜しくお願い致します。

Re: 音楽でエラーが表示される。

  • omura
  • 2023/06/29 (Thu) 17:57:59
開発メンバーの大村です。
ご確認ありがとうございます。

環境の再取得につきましては、お試しいただけましたでしょうか。


ドリトルでは音楽生成と再生にJAVAのMIDI機能を利用しています。
お送りいただきましたエラーを確認するに、本件はこの処理中でエラーが出ております。
しかし、開発メンバーでの確認においては、数種類の環境を作成し可能性のある条件を設けてテストしましたが、不具合の再現をしない状況です。
ご使用されているWidnows8.1の環境とドリトルが利用しているJAVAの実行環境との相性等の問題も考えられます。
(利用されているオーディオドライバ、セキュリティソフトや管理ソフト、OSのアップデート状況などでも、影響を与える可能性がございます)


まずは、同梱しているJAVAの実行環境の破損の疑いを除去するため、ドリトル環境の再取得による確認をお願いします。


また、環境起因の影響かを判断するため、問題が発生しているドリトルの環境をUSBメモリ等にコピーし、別のコンピュータ(別の機種・windows10/windows11の現行機種など )で実行しても同じ不具合が発生するかを確認いただければと存じます。


もし、お使いのPCでのみ問題が発生する場合は、ご使用中のコンピュータとJAVAの実行環境との相性等の可能性が高いと考えられます。



以降につきましては、PCの環境情報などを詳細に確認する必要がございます。
掲示板でのやり取りが難しくなるかと思いますので、以後のご連絡については、以下のフォームからご連絡いただければと存じます。
大村より、直接電子メールにてご連絡させていただきます。

https://forms.gle/hqtt9NZJSX33qqg86

Re: 音楽でエラーが表示される。

  • 山路晴秀
  • 2023/06/29 (Thu) 14:19:31
いつもお世話になります。
ご指示の通り、dolittle_tab で開きましたが同じエラーが出て、音が出ません。どうしたらいいでしょうか?

java.lang.NullPointerException
at o3.OxMelodyCommon.setTrackMelody(OxMelodyCommon.java:120)
at o3.OxMelody.setTrackPlayMelody(OxMelody.java:318)
at o3.Synth.play(Synth.java:182)
at o3.OxMusicBand.play(OxMusicBand.java:102)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ
e Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknow
n Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Un
known Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at o3.OxObject.invoke(OxObject.java:174)
at o3.OxObject.invoke(OxObject.java:162)
at o3.OxObject.localSend(OxObject.java:157)
at o3.OxObject.localSend(OxObject.java:147)
at o3.OxObject.send(OxObject.java:135)
at o3.OxObject.send(OxObject.java:128)
at o3.Executor.outACascadeSend(Executor.java:159)
at o3.analysis.DepthFirstAdapter.caseACascadeSend(DepthFirstAdapter.java
:402)
at o3.node.ACascadeSend.apply(ACascadeSend.java:45)
at o3.analysis.DepthFirstAdapter.caseASingleSendlist(DepthFirstAdapter.j
ava:317)
at o3.node.ASingleSendlist.apply(ASingleSendlist.java:35)
at o3.Executor.caseAPrim1Mesg(Executor.java:116)
at o3.node.APrim1Mesg.apply(APrim1Mesg.java:45)
at o3.analysis.DepthFirstAdapter.caseAMesgExpr(DepthFirstAdapter.java:22
1)
at o3.node.AMesgExpr.apply(AMesgExpr.java:35)
at o3.analysis.DepthFirstAdapter.caseAExprStmt(DepthFirstAdapter.java:20
0)
at o3.node.AExprStmt.apply(AExprStmt.java:35)
at o3.analysis.DepthFirstAdapter.caseAStmtProg(DepthFirstAdapter.java:76
)
at o3.node.AStmtProg.apply(AStmtProg.java:45)
at o3.analysis.DepthFirstAdapter.caseStart(DepthFirstAdapter.java:34)
at o3.node.Start.apply(Start.java:37)
at o3.UI$MainExec.run(UI.java:966)
at java.base/java.lang.Thread.run(Unknown Source)

Re: 音楽でエラーが表示される。

  • omura
  • 2023/06/27 (Tue) 10:24:27
開発メンバーの大村です。
ご連絡ありがとうございます。

JAVAのランタイムとの間で不整合がみられるようです。
2023/06/15の一次回答の通り、まずは、ドリトル環境の再ダウンロードを試していただければと思います。


また、利用しているパソコン上にJAVAの環境をインストールしておられますでしょうか。
上記条件を満たしている場合、ドリトルの起動時に「dolittle.bat」ではなく、「dolittle.jar」を選択して起動していると、パソコンに導入されたJAVAのランタイム環境によっては、今回と同じエラーが発生する可能性がございます。
念のため、実行時の選択が「dolittle.bat」になっているかを確認いただければと思います。
拡張子が表示されない環境の場合は見分けがつきにくいので、「dolittle_tab」のアイコンを選択してドリトルを起動して、音が鳴るかご確認いただければと思います。




Re: 音楽でエラーが表示される。

  • HANDA
  • 2023/06/20 (Tue) 14:24:19
山路先生が、別のスレにて書き込まれていましたので、コピーしました。




java.lang.NullPointerException
at o3.OxMelodyCommon.setTrackMelody(OxMelodyCommon.java:120)
at o3.Synth.play(Synth.java:151)
at o3.OxMelody.play(OxMelody.java:108)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nati
e Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unkno
n Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(U
known Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at o3.OxObject.invoke(OxObject.java:174)
at o3.OxObject.invoke(OxObject.java:162)
at o3.OxObject.localSend(OxObject.java:157)
at o3.OxObject.localSend(OxObject.java:147)
at o3.OxObject.send(OxObject.java:135)
at o3.OxObject.send(OxObject.java:128)
at o3.Executor.outASingleSend(Executor.java:147)
at o3.analysis.DepthFirstAdapter.caseASingleSend(DepthFirstAdapter.java
373)
at o3.node.ASingleSend.apply(ASingleSend.java:40)
at o3.analysis.DepthFirstAdapter.caseASingleSendlist(DepthFirstAdapter.
ava:317)
at o3.node.ASingleSendlist.apply(ASingleSendlist.java:35)
at o3.Executor.caseAPrim1Mesg(Executor.java:116)
at o3.node.APrim1Mesg.apply(APrim1Mesg.java:45)
at o3.analysis.DepthFirstAdapter.caseAMesgExpr(DepthFirstAdapter.java:2
1)
at o3.node.AMesgExpr.apply(AMesgExpr.java:35)
at o3.analysis.DepthFirstAdapter.caseAExprStmt(DepthFirstAdapter.java:2
0)
at o3.node.AExprStmt.apply(AExprStmt.java:35)
at o3.analysis.DepthFirstAdapter.caseAStmtProg(DepthFirstAdapter.java:7
)
at o3.node.AStmtProg.apply(AStmtProg.java:45)
at o3.analysis.DepthFirstAdapter.caseStart(DepthFirstAdapter.java:34)
at o3.node.Start.apply(Start.java:37)
at o3.UI$MainExec.run(UI.java:966)
at java.base/java.lang.Thread.run(Unknown Source)

いつもお世話になります。早速のご連絡、ありがとうございます。②の文字列は、上記の通りです。よろしくご指導ください。

Re: 音楽でエラーが表示される。

  • 山路晴秀
  • 2023/06/20 (Tue) 14:02:55



java.lang.NullPointerException
at o3.OxMelodyCommon.setTrackMelody(OxMelodyCommon.java:120)
at o3.Synth.play(Synth.java:151)
at o3.OxMelody.play(OxMelody.java:108)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nati
e Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unkno
n Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(U
known Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at o3.OxObject.invoke(OxObject.java:174)
at o3.OxObject.invoke(OxObject.java:162)
at o3.OxObject.localSend(OxObject.java:157)
at o3.OxObject.localSend(OxObject.java:147)
at o3.OxObject.send(OxObject.java:135)
at o3.OxObject.send(OxObject.java:128)
at o3.Executor.outASingleSend(Executor.java:147)
at o3.analysis.DepthFirstAdapter.caseASingleSend(DepthFirstAdapter.java
373)
at o3.node.ASingleSend.apply(ASingleSend.java:40)
at o3.analysis.DepthFirstAdapter.caseASingleSendlist(DepthFirstAdapter.
ava:317)
at o3.node.ASingleSendlist.apply(ASingleSendlist.java:35)
at o3.Executor.caseAPrim1Mesg(Executor.java:116)
at o3.node.APrim1Mesg.apply(APrim1Mesg.java:45)
at o3.analysis.DepthFirstAdapter.caseAMesgExpr(DepthFirstAdapter.java:2
1)
at o3.node.AMesgExpr.apply(AMesgExpr.java:35)
at o3.analysis.DepthFirstAdapter.caseAExprStmt(DepthFirstAdapter.java:2
0)
at o3.node.AExprStmt.apply(AExprStmt.java:35)
at o3.analysis.DepthFirstAdapter.caseAStmtProg(DepthFirstAdapter.java:7
)
at o3.node.AStmtProg.apply(AStmtProg.java:45)
at o3.analysis.DepthFirstAdapter.caseStart(DepthFirstAdapter.java:34)
at o3.node.Start.apply(Start.java:37)
at o3.UI$MainExec.run(UI.java:966)
at java.base/java.lang.Thread.run(Unknown Source)

いつもお世話になります。早速のご連絡、ありがとうございます。②の文字列は、上記の通りです。よろしくご指導ください。

計算で困っています

  • 匿名の人
  • 2023/06/15 (Thu) 17:40:05

敵に弾が当たった時に、Xに1を足して、一回も敵に弾が当たらなかったらtesuto4の文字が、一回以上当たったらtesuto
2の文字が出るようにしたいです。
下のプログラムだと、二体の敵に弾が当たってもtesuto4の文字から変わりません。

カメ太=タートル! 作る ペンなし -550 0 位置。
カメ太! "ayumiBlue.png" 変身する。

カメ太:****=「タイマー! 作る「自分! 20 歩く」実行」。
****=ボタン! "****" "ENTER" 作る -50 -380 位置 100 45 大きさ。
****:動作=「カメ太! 作る 55 歩く "rocket.gif" 変身する ****」。

up=ボタン! "up" "UP" 作る -80 -320 位置。
up:動作=「カメ太! 0 20 移動する」。
down=ボタン! "down" "DOWN" 作る -80 -440 位置。
down:動作=「カメ太! 0 -20 移動する」。

right=ボタン! "right" "RIGHT" 作る -200 -380 位置。
right:動作=「カメ太! 20 0 移動する」。
left=ボタン! "left" "LEFT" 作る 50 -380 位置。
left:動作=「カメ太! -20 0 移動する」。


x=1。
x:代入=(x+1)。

敵=タートル! 作る "ayumiAka.gif" 変身する ペンなし 180 右回り 20 40 移動する。
敵たち=配列! 作る。
敵たち!(敵! 作る 100 -100 位置)書く。

敵:衝突=「x! 代入。 自分! 消える。敵たち!(自分)消す」。


コメント欄=ラベル! 作る  (黄色) 塗る -100 400 位置。

「(x) == 1」! なら「
コメント欄! "tesuto4" 書く 100 400 位置。
                      」実行。

「(x) == 2」! なら「
コメント欄! "tesuto2" 書く 100 400 位置。
                      」実行。

どこを修正すればプログラムが動くようになるのか教えてください。


Re: 計算で困っています

  • omura
  • 2023/06/15 (Thu) 20:38:02
開発メンバーの大村です。
野心的なところもあって素敵なプログラムだと思います。
最低限以下の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)ロケットの移動のように、タイマーを使って、一定間隔(できるだけ細かい間隔)で何度もチェックする

いずれもメリット・デメリットがあります。
作るゲームに合わせてどちらを選ぶかを考えてみてください。

SERVERのチェックが受け付けられません

  • 技術科教員
  • 2023/05/07 (Sun) 10:52:04
ベータ版の編集画面上の「server」にチェックをいれてもIPアドレスが発行されないのですが、ここにチェックする以外の操作方法やIPアドレスの確認等が必要なのでしょうか?ご教授頂けると助かります。よろしくお願いいたします。

Re: Re: SERVERのチェックが受け付けられません

  • 本多
  • 2023/05/08 (Mon) 18:24:12
こちらこそ、不具合のご報告ありがとうございました。

今後とも、何かお気づきの点などございましたらお教えいただけますと幸いです。
よろしくお願いいたします。

Re: SERVERのチェックが受け付けられません

  • 技術科教員
  • 2023/05/08 (Mon) 18:19:11
本多様

早速のご対応ありがとうございます。
正常に動作していることを確認しました。

本当にありがとうございました。ご対応に感謝いたします。

Re: SERVERのチェックが受け付けられません

  • honda
  • 2023/05/07 (Sun) 22:19:21
ベータ版のオンライン版ドリトルをご使用いただき、ありがとうございます。
開発担当の本多と申します。

server機能について、内部の不具合により正常に動作しておりませんでした。
修正しましたので、現在は正常に動作しているかと思われます。
もう一度ご確認いただけますと幸いです。