壁を作る

まずLOCATE文とPRINT文、FOR〜NEXT文をうまく使って、"#"を並べた壁を作る。FOR〜NEXT文は、決まった回数処理を繰り返すときに便利。回数を数えるためにひとつの変数が使われているはず。その変数をうまく"#"を表示する個数、表示する座標の処理に使おう。

#ref(): File not found: "wall.png" at page "ボールが壁に当たると跳ね返るようにする"

100	CLS
110	'--- 壁を描く
120	LOCATE 19,1
130	PRINT "#########################################"
140	LOCATE 19,23
150	PRINT "#########################################"
160	FOR I=2 to 22
170		LOCATE 19,I
180		PRINT "#                                       #"
190	NEXT I

ボールが壁で跳ね返るようにする

"ボールを表示して画面上を移動させる"で分かったように、例えばボールを右下に移動させるには、ボールの表示座標をX,Y座標共に次々と"1"ずつ増加させることであった。

100	CLS
110	'--- 壁を描く
120	LOCATE 19,1
130	PRINT "#########################################"
140	LOCATE 19,23
150	PRINT "#########################################"
160	FOR I=2 to 22
170		LOCATE 19,I
180		PRINT "#                                       #"
190	NEXT I
200	'--- ボール座標 X,Y 移動方向 XM,YM 持ち玉数 BALL
210	X=40:Y=10:XM=1:YM=1:BALL=3
220	'--- メインループ 持ち球がある間はゲームが続く
230	WHILE BALL>0
240		'--- ボールを表示
250		LOCATE X,Y:PRINT "o"
260		'--- ボールの速度の調整(空ループ)
270		FOR I=0 TO 500:NEXT I
280		'--- 上下左右の壁に当たったら移動方向を反転
290		IF Y= 2 OR Y=22 THEN YM=-YM
300		IF X=20 OR X=58 THEN XM=-XM
310		'--- ボールを消して、次のボール座標を計算
320		LOCATE X,Y:PRINT " "
330		X=X+XM:Y=Y+YM
340	WEND

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS