ブロックリーゲームズは、Googleが提供している、プログラミングの勉強ができる無償のサイトです。この記事は、そのなかの『動画』、『音楽』、『ポンド・チューター』、『ポンド(池)』の課題の解答例です。『迷路』、『鳥』、『タートル』の解答例は、『Blockly Games ブロックリー ゲームズ 解答例1』をご覧ください。ブロックリーゲームズ紹介の記事が長くなってしまいましたので、解答例を抜き出して2つの記事にまとめました。
2018/5/30更新:ブロックリーゲームズに『音楽』が追加されましたので、解答例を追記しました。
2022/11/29更新:動画の問題が大幅に変更されていましたので修正しました。
ブロックリーゲームズについては、以下の記事をご覧ください。
ポンドですが、こんなんはどうでしょうか?僕が試した限りでは無敵でしたw
(中2ですw)
var a;
a = 180;
while (true) {
if (150 >= scan(a)) {
swim(a);
cannon(a, scan(a));
cannon(a, scan(a));
cannon(a, scan(a));
}
if (150 < scan(a)) {
a += 4;
}
}
回答例、ありがとうございます。短いコードで徹底的に攻撃ですね。まだ、試していませんが、敵に攻撃された時に逃げるコードと、敵がずっと見つからない時(360°Scanしてもいない)のコードを追加したらどうなるかみたいですね。
僕もポンドの回答例を考えてみました。
ほぼ無敵ですw
(僕も中2)
コードが汚いのは許して…
var angle = 0;
var delta = 0;
var adjustedDelta;
var Health;
while(true){
Health = health();
main(true);
if (Health > health()){
damaged();
}
}
function move(scale, condition){
adjustedDelta = delta * scale + angle;
if(scan(adjustedDelta) != Infinity){
angle = adjustedDelta;
delta = 0;
if(condition){
if(scan(adjustedDelta) >= 40){
drive(adjustedDelta, 100);
}else{
stop();
}
}
if(scan(adjustedDelta) <= 70){
cannon(adjustedDelta, scan(adjustedDelta));
}
}else{
if(condition)
stop();
}
}
function damaged(){
var Random = Math.random();
if(Random 15){
drive(180, 100);
main(false);
}
stop();
}else if(Random < 0.5){
while(getX() < 85){
drive(0, 100);
main(false);
}
stop();
}else if(Random 15){
drive(270, 100);
main(false);
}
stop();
}else{
while(getY() < 85){
drive(90, 100);
main(false);
}
stop();
}
}
function main(condition){
if(delta <= 15){
delta = delta + 2;
}else{
delta = delta + 3;
}
move(1, condition);
move(-1, condition);
if (delta == 180)
delta = 0;
}
回答例、ありがとうございます。実行するとfunction damaged()でエラーします。コードを再確認していただけますか。よろしくお願いいたします。
自分でやったらいいと思うな