マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

リバーシを作ってみる。その3

今回はタッチパネルがタッチされた場所を認識するプログラムにした。タッチされた場所に強制的に白の石を置くプログラムとなっている。タッチされたかどうかはシステム変数TCHSTに入っていて、これがTRUEのときに石を置く場所を求めて石を置いている。タッチされたX座標はシステム変数TCHX、Y座標はシステム変数TCHYに入っている。今回追加したのは@LOOPの部分のみ。タッチされたら@TOUCHに飛ぶ

CLEAR
PNLTYPE"OFF"
GPAGE 1

@START
GCLS15

DIM BD(10,10)

MX=50
MY=15
C=20
W=8*C

GBOX MX,MY,W+MX,W+MY
GPAINT MX+1,MY+1,10

FOR I=0 TO 8
 L=C*I
 GLINE MX,L+MY,W+MX,L+MY,14
 GLINE L+MX,MY,L+MX,W+MY,14
NEXT

BD(4,4)=1
BD(4,5)=2
BD(5,4)=2
BD(5,5)=1
GOSUB @DRAW

@LOOP
 IF TCHST THEN GOTO @TOUCH
 GOTO @LOOP

@TOUCH
 X=FLOOR((TCHX-MX)/C)+1
 Y=FLOOR((TCHY-MY)/C)+1
 BD(X,Y)=1
 GOSUB DRAW
 GOTO @LOOP

@DRAW
 FOR Y=0 TO 8
  FOR X=0 TO 8
   ST=BD(X,Y)
   IF ST>0 THEN GOSUB @STONE
  NEXT
 NEXT
RETURN

@STONE
 DX=X*C+MX-10
 DY=Y*C+MY-10
 GCIRCLE DX,DY,8,14+ST
 GPAINT DX,DY,8,14+ST
RETURN