(5)\で逆に跳返る

\で逆に跳ね返る

このページの課題は maru05.bas として、マイドキュメントの basic フォルダに保存すること。( .bas は自動的につきます)

/に加えて\でも跳ね返る

"/"の向きから考えて、右に動いていたときは上に、左に動いていたときは下に跳ね返るようにしました。今度は"\"で逆に跳ね返るようにしましょう。

キーボードでは"/"の隣に"\"があります。日本ではこの文字は"¥"に置き換えられているのですが、気にせずに使うことにします。

今度は右向きの時は下向きに、左向きの時は上向きになります。また、下向きの時は右向き、上向きの時は左向きになります。したがって dx dy を取り替えるだけでなく、マイナスをつける必要があります。プログラム例で -dx や -tmp とあるのはそのためです。

maru05.bas

SET WINDOW 0,500,0,500
SET AREA COLOR 2

LET  x=50
LET  y=300
LET  dx=1
LET  dy=0

DO
   CHARACTER INPUT NOWAIT:s$
   IF s$="e" THEN  EXIT DO
   IF s$="/" THEN
      LET  tmp = dy
      LET  dy  = dx
      LET  dx  = tmp
   END IF
   IF s$="\" THEN
      LET  tmp = dy
      LET  dy  = -dx
      LET  dx  = -tmp
   END IF

   LET  ox = x
   LET  oy = y

   LET  x = x + dx
   LET  y = y + dy
   IF x > 500 THEN 
      LET  dx=-1
   END IF
   IF x < 0 THEN 
      LET  dx=1
   END IF
   IF y > 500 THEN 
      LET  dy=-1
   END IF
   IF y < 0 THEN 
      LET  dy=1
   END IF
   
   SET AREA COLOR 0
   DRAW disk WITH SCALE(10)*SHIFT(ox,oy)
   SET AREA COLOR 2
   DRAW disk WITH SCALE(10)*SHIFT(x,y)
   WAIT DELAY 0.01
LOOP
END

聖愛高等学校
http://www.seiai.ed.jp/