a21_edu04
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 初心者向けプログラミング体験ワークショップ#4
-(by [[K]], 2021.12.03)
** (0)
-今回紹介するのは、「ジャンプ・ゲーム」です。29行で書けま...
-このページは[[「初心者向けプログラミング体験ワークショッ...
** (1) ストーリー & ルール
-今日ぼくはおじさんのうちにあそびにいきます。おじさんはい...
-おじさんはとてもふるいアパートに住んでいます。あまりにも...
-それにおじさんのアパートはクモのすがあったり、ネズミがで...
-あ!そうだ、今日はだいすきなアニメの日だった!・・・うわ...
----
|http://k.osask.jp/files/pic20211203d.png|
|こんなゲームです|
-黄色の顔が「ぼく」です。スタートは1階で、おじさんのへや...
-1階の右はしに行けば2階の左はしに行けます。2階の右はしに...
-白丸はいい匂いのするお花や、100円玉などの、元気をくれる...
-元気が0になってしまったらゲームオーバーです。テレビの時...
-操作はスペースキーしか使いません。スペースキーを押せばジ...
-床があちこちで抜けています。そこはタイミングよく飛び越す...
-ゲームオーバーもしくはゲームクリア―の画面では、Enterを押...
-ゲームをやめたくなったら、いつでも ESCキー を押せば終了...
-なお、HLXでは現在開いているゲームウィンドウよりも大きな...
** (2-1) HLX-BASICでのプログラム(29行)
-プログラム中に日本語で説明を書き込んでいますが、その部分...
CANVAS 32,24,"JUMP"; ← ...
HI=1000; ← ...
FOR; ← ...
CLS@ 0; ← ...
FOR I=0,5; CHARBOX@ 32,1,0,I*5+2,1,3,0; NEXT; ← ...
LOOP 10; CHARBOX@ 2,1,RND(5)*5+6,RND(3)*5+7,0,0,0; NEX...
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,3,4,0; NEXT; ← ...
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,2,7,0; NEXT; ← ...
GE=1000; X=0; Y=21; J=0; ← ...
FOR; ← ...
PRINT@ 0,0,7,0,"GENKI:%5d HIGH:%5d",GE,HI; ← ...
CHAR@ X,Y,6,6,0; ← ...
IF GE<=0 THEN CHAR@ X,Y,6,5,0; BREAK; FI; ← ...
IF Y<=6 AND X==31 THEN PRINT@ 23,0,0,2," << CLEAR !!...
I=INKEY@WRC(200); ← 2...
CHAR@ X,Y,0,0,0; ← ...
IF I!=32 OR Y%5==3 THEN J=0; FI; ← ...
IF I==32 AND GETCH@(X,Y+1)==1 THEN J=1; FI; ← ...
X++; ← ...
IF X==32 THEN X=0; Y-=5; FI; ← ...
Y-=J; ← J...
IF J==0 AND GETCH@(X,Y+1)!=1 THEN Y++; FI; ← ...
GE--; ← ...
IF GETCH@(X,Y)==3 THEN GE=MAX(GE-400,0); FI; ← ...
IF GETCH@(X,Y)==2 THEN GE+=200; FI; ← ...
NEXT; ← ...
HI=MAX(HI,GE); ← H...
WAITKEY@ 10; ← E...
NEXT; ← ...
-ほそく説明:
--PRINT@の中の%以降には、数字のゼロや小文字のdがあります...
--色番号の表
|0:黒|1:青|2:みどり|3:水色|4:赤|5:むらさき|6:黄色|7:白|
--色を2つの数字で表すときは、1つ目の数がキャラクターの色...
--キャラクターの表示位置は、2つの数字で表します。1つ目が...
---このゲームでは32x24マスを用意しているので、0,0~31,23...
--キャラクター番号の表
|0:空白|1:四角|2:丸|3:バツ|4:よこぼう|5:たてぼう|6:顔マー...
--RND(5)について: RNDは乱数(らんすう)の命令で、RND(5)...
** (2-2) HLX-BASICのプログラムを実行するための方法(大人...
-もしWindowsでHLX-BASICを使うなら、話は簡単です!
-[[a21_hlx003]]のページへ行って、 hlx003c.zip をダウンロ...
-このhlx_x86_win.exeを適当なフィルだ内において、同じフォ...
--入力の際にはまずテキストエディタを開き(メモ帳でもいい...
--キーを見つけられないときは、ほらここにあるよと教えてあ...
--そうすると、「これは全部自分がやった。」という満足感が...
--(何回もやって慣れてきたら、自分でプログラムを読んで入...
-入力が終わったら、先ほどのhlx_x86_win.exeを起動して、そ...
hlx>run jump.txt
-と入力してください。入力ミスがなければゲームが始まるはず...
-ミスがあった場合は、エラーメッセージを見ながら間違いを探...
-なおゲーム中のキー操作は、ゲーム画面が入力アクティブにな...
-Windows以外のOSの方は、[[a21_hlx003]]のページを見て、ソ...
** (2-3) 改造のポイント
-このゲームは自分で入力したのですから、自分で改造すること...
-もし簡単すぎると思ったら、床の穴の数や、赤いバツの数、白...
-また丸をとった時やバツをとった時の元気の増減の量を調整し...
-難しすぎる場合も結局改造するところは同じですね。数字を増...
-色やキャラクターを変更するのも楽しいかもしれません。背景...
** (3-1) C言語でのプログラム(aclライブラリ利用)(33行)
-内容的に、(2-1)とほぼ一対一で対応しているので、細かい説...
#include <acl.c>
void aMain()
{
int i, j, ge, hi = 1000, x, y;
AWindow *w = aOpenWinEx(32, 24, "JUMP", 0);
for (;;) {
aCls(w, 0);
for (i = 0; i < 5; i++) aEchBox(w, 32, 1, 0, i * 5 +...
for (i = 0; i < 10; i++) aEchBox(w, 2, 1, aRnd(5) * ...
for (i = 0; i < 16; i++) aEch(w, aRnd(26) + 4, aRnd(...
for (i = 0; i < 16; i++) aEch(w, aRnd(26) + 4, aRnd(...
ge = 1000; x = 0; y = 21; j = 0;
for (;;) {
aGrPrintf(w, 0, 0, 7, 0, "GENKI:%5d HIGH:%5d", ...
aEch(w, x, y, 6, 6, 0);
if (ge <= 0) { aEch(w, x, y, 6, 5, 0); break; }
if (y <= 6 && x == 31) { aGrPrintf(w, 23, 0, 0, 2,...
i = aInkey_waitRC(w, 200);
aEch(w, x, y, 0, 0, 0);
if (i != 32 || y % 5 == 3) j = 0;
if (i == 32 && aGetEch(w, x, y + 1) == 1) j = 1;
x++; if (x == 32) { x = 0; y -= 5; }
y -= j;
if (j == 0 && aGetEch(w, x, y + 1) != 1) y++;
ge--;
if (aGetEch(w, x, y) == 3) ge = aSaturateInt(ge - ...
if (aGetEch(w, x, y) == 2) ge += 200;
}
hi = aMaxInt(hi, ge);
aWaitKey(w, AKEY_ENTER);
}
}
** (3-2) C言語のプログラムを実行するための方法(大人の方...
-このプログラムは、C言語でありながらHLXのサポート範囲内の...
-使い方もほとんど同じで、jump.cを作って、
hlx>run jump.c
-とするだけでOKです。
-もし、HLXを使わずに普通のCコンパイラとaclライブラリの組...
-そのほかの操作方法や改造方法などは、(2-2)、(2-3)と同等な...
* こめんと欄
#comment
終了行:
* 初心者向けプログラミング体験ワークショップ#4
-(by [[K]], 2021.12.03)
** (0)
-今回紹介するのは、「ジャンプ・ゲーム」です。29行で書けま...
-このページは[[「初心者向けプログラミング体験ワークショッ...
** (1) ストーリー & ルール
-今日ぼくはおじさんのうちにあそびにいきます。おじさんはい...
-おじさんはとてもふるいアパートに住んでいます。あまりにも...
-それにおじさんのアパートはクモのすがあったり、ネズミがで...
-あ!そうだ、今日はだいすきなアニメの日だった!・・・うわ...
----
|http://k.osask.jp/files/pic20211203d.png|
|こんなゲームです|
-黄色の顔が「ぼく」です。スタートは1階で、おじさんのへや...
-1階の右はしに行けば2階の左はしに行けます。2階の右はしに...
-白丸はいい匂いのするお花や、100円玉などの、元気をくれる...
-元気が0になってしまったらゲームオーバーです。テレビの時...
-操作はスペースキーしか使いません。スペースキーを押せばジ...
-床があちこちで抜けています。そこはタイミングよく飛び越す...
-ゲームオーバーもしくはゲームクリア―の画面では、Enterを押...
-ゲームをやめたくなったら、いつでも ESCキー を押せば終了...
-なお、HLXでは現在開いているゲームウィンドウよりも大きな...
** (2-1) HLX-BASICでのプログラム(29行)
-プログラム中に日本語で説明を書き込んでいますが、その部分...
CANVAS 32,24,"JUMP"; ← ...
HI=1000; ← ...
FOR; ← ...
CLS@ 0; ← ...
FOR I=0,5; CHARBOX@ 32,1,0,I*5+2,1,3,0; NEXT; ← ...
LOOP 10; CHARBOX@ 2,1,RND(5)*5+6,RND(3)*5+7,0,0,0; NEX...
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,3,4,0; NEXT; ← ...
LOOP 16; CHAR@ RND(26)+4,RND(19)+3,2,7,0; NEXT; ← ...
GE=1000; X=0; Y=21; J=0; ← ...
FOR; ← ...
PRINT@ 0,0,7,0,"GENKI:%5d HIGH:%5d",GE,HI; ← ...
CHAR@ X,Y,6,6,0; ← ...
IF GE<=0 THEN CHAR@ X,Y,6,5,0; BREAK; FI; ← ...
IF Y<=6 AND X==31 THEN PRINT@ 23,0,0,2," << CLEAR !!...
I=INKEY@WRC(200); ← 2...
CHAR@ X,Y,0,0,0; ← ...
IF I!=32 OR Y%5==3 THEN J=0; FI; ← ...
IF I==32 AND GETCH@(X,Y+1)==1 THEN J=1; FI; ← ...
X++; ← ...
IF X==32 THEN X=0; Y-=5; FI; ← ...
Y-=J; ← J...
IF J==0 AND GETCH@(X,Y+1)!=1 THEN Y++; FI; ← ...
GE--; ← ...
IF GETCH@(X,Y)==3 THEN GE=MAX(GE-400,0); FI; ← ...
IF GETCH@(X,Y)==2 THEN GE+=200; FI; ← ...
NEXT; ← ...
HI=MAX(HI,GE); ← H...
WAITKEY@ 10; ← E...
NEXT; ← ...
-ほそく説明:
--PRINT@の中の%以降には、数字のゼロや小文字のdがあります...
--色番号の表
|0:黒|1:青|2:みどり|3:水色|4:赤|5:むらさき|6:黄色|7:白|
--色を2つの数字で表すときは、1つ目の数がキャラクターの色...
--キャラクターの表示位置は、2つの数字で表します。1つ目が...
---このゲームでは32x24マスを用意しているので、0,0~31,23...
--キャラクター番号の表
|0:空白|1:四角|2:丸|3:バツ|4:よこぼう|5:たてぼう|6:顔マー...
--RND(5)について: RNDは乱数(らんすう)の命令で、RND(5)...
** (2-2) HLX-BASICのプログラムを実行するための方法(大人...
-もしWindowsでHLX-BASICを使うなら、話は簡単です!
-[[a21_hlx003]]のページへ行って、 hlx003c.zip をダウンロ...
-このhlx_x86_win.exeを適当なフィルだ内において、同じフォ...
--入力の際にはまずテキストエディタを開き(メモ帳でもいい...
--キーを見つけられないときは、ほらここにあるよと教えてあ...
--そうすると、「これは全部自分がやった。」という満足感が...
--(何回もやって慣れてきたら、自分でプログラムを読んで入...
-入力が終わったら、先ほどのhlx_x86_win.exeを起動して、そ...
hlx>run jump.txt
-と入力してください。入力ミスがなければゲームが始まるはず...
-ミスがあった場合は、エラーメッセージを見ながら間違いを探...
-なおゲーム中のキー操作は、ゲーム画面が入力アクティブにな...
-Windows以外のOSの方は、[[a21_hlx003]]のページを見て、ソ...
** (2-3) 改造のポイント
-このゲームは自分で入力したのですから、自分で改造すること...
-もし簡単すぎると思ったら、床の穴の数や、赤いバツの数、白...
-また丸をとった時やバツをとった時の元気の増減の量を調整し...
-難しすぎる場合も結局改造するところは同じですね。数字を増...
-色やキャラクターを変更するのも楽しいかもしれません。背景...
** (3-1) C言語でのプログラム(aclライブラリ利用)(33行)
-内容的に、(2-1)とほぼ一対一で対応しているので、細かい説...
#include <acl.c>
void aMain()
{
int i, j, ge, hi = 1000, x, y;
AWindow *w = aOpenWinEx(32, 24, "JUMP", 0);
for (;;) {
aCls(w, 0);
for (i = 0; i < 5; i++) aEchBox(w, 32, 1, 0, i * 5 +...
for (i = 0; i < 10; i++) aEchBox(w, 2, 1, aRnd(5) * ...
for (i = 0; i < 16; i++) aEch(w, aRnd(26) + 4, aRnd(...
for (i = 0; i < 16; i++) aEch(w, aRnd(26) + 4, aRnd(...
ge = 1000; x = 0; y = 21; j = 0;
for (;;) {
aGrPrintf(w, 0, 0, 7, 0, "GENKI:%5d HIGH:%5d", ...
aEch(w, x, y, 6, 6, 0);
if (ge <= 0) { aEch(w, x, y, 6, 5, 0); break; }
if (y <= 6 && x == 31) { aGrPrintf(w, 23, 0, 0, 2,...
i = aInkey_waitRC(w, 200);
aEch(w, x, y, 0, 0, 0);
if (i != 32 || y % 5 == 3) j = 0;
if (i == 32 && aGetEch(w, x, y + 1) == 1) j = 1;
x++; if (x == 32) { x = 0; y -= 5; }
y -= j;
if (j == 0 && aGetEch(w, x, y + 1) != 1) y++;
ge--;
if (aGetEch(w, x, y) == 3) ge = aSaturateInt(ge - ...
if (aGetEch(w, x, y) == 2) ge += 200;
}
hi = aMaxInt(hi, ge);
aWaitKey(w, AKEY_ENTER);
}
}
** (3-2) C言語のプログラムを実行するための方法(大人の方...
-このプログラムは、C言語でありながらHLXのサポート範囲内の...
-使い方もほとんど同じで、jump.cを作って、
hlx>run jump.c
-とするだけでOKです。
-もし、HLXを使わずに普通のCコンパイラとaclライブラリの組...
-そのほかの操作方法や改造方法などは、(2-2)、(2-3)と同等な...
* こめんと欄
#comment
ページ名: