プロが教えるわが家の防犯対策術!

!**************** メインルーチン ****************
110 call format  !formatを呼び出し
210 do until right=1
220  mouse poll mx,my,left,right !マウス位置を取得
230  if left=1 then
240   print mx,my !クリックされた座標を表示
289  end if
299 loop
999 end

220  mouse poll mx,my,left,right でsyntax errorがでます原因が分かる方よろしくお願いします。

A 回答 (3件)

当方環境では、リンク先コードはもちろん、補足されたコードでもエラーは全然再現いたしません。

    • good
    • 0
この回答へのお礼

ありがとうございます。こちらのOSはubuntu LINUXのなのですが、それが関係してるのでしょうか?

お礼日時:2007/06/17 17:05

#1です。


あ、念のために聞いておくけど、

全角空白入れたの、質問者様だよね?

この回答への補足

解答ありがとうございます。返事が遅れて申し訳ないです。
10 declare external sub main.format
20 declare external sub main.post

!**************** メインルーチン ****************
110 call format !formatを呼び出し
160 let w=40 !格子の幅
165 let left=0 !初期化
210 do until right=1
215 let left_=left !直前のマウスの左ボタンの状態
220 mouse poll mx,my,left,right !マウス位置を取得
230 if left=1 and left_=0 then
250 let x=int(mx/w)
260 let y=7-int(my/w)
270 print x,y !クリックされたマスの番地を表示
289 end if
299 loop
999 end

!**************** サブルーチン ****************
1000 module main !モジュール定義
1010 public sub format
1020 public sub post
1100 share numeric w,r,pieces(0 to 7,0 to 7)

1200 !定数を定義
1210 let w=40 !格子の幅
1220 let r=13 !駒の半径

!---------------- ▽初期化 ----------------
1500 external sub format

1600 !盤面の配列の初期化
1601 data 0, 0, 0, 0, 0, 0, 0, 0
1602 data 0, 0, 0, 0, 0, 0, 0, 0
1603 data 0, 0, 0, 0, 0, 0, 0, 0
1604 data 0, 0, 0, 1,-1, 0, 0, 0
1605 data 0, 0, 0,-1, 1, 0, 0, 0
1606 data 0, 0, 0, 0, 0, 0, 0, 0
1607 data 0, 0, 0, 0, 0, 0, 0, 0
1608 data 0, 0, 0, 0, 0, 0, 0, 0
1610 mat read pieces(0 to 7,0 to 7)

1700 !画面の初期化
1710 set bitmap size w*8+1,w*8+1
1720 set window 0,w*8,0,w*8

1810 call post !postを呼び出し

1999 end sub
!---------------- △初期化 ----------------

!---------------- ▽盤面を描画 ----------------
2000 external sub post

2100 !背景を描画
2110 set area color 10
2120 plot area: 0,0; 0,w*8; w*8,w*8; w*8,0

2200 !格子の描画
2210 for i=0 to 8
2220 plot lines : 0,w*i;w*8,w*i !横線を描画
2230 plot lines : w*i, 0;w*i,w*8 !縦線を描画
2299 next i

2300 !駒の描画
2310 for j=0 to 7
2311 for i=0 to 7
2320 select case pieces(j,i)
2330 case 1 !白駒の場合
2331 set area color 0 !色を指定:白
2332 draw disk with scale(r)*shift(w*(0.5+i),w*(0.5+(7-j))) !円を描く
2340 case -1 !黒駒の場合
2341 set area color 1 !色を指定:黒
2342 draw disk with scale(r)*shift(w*(0.5+i),w*(0.5+(7-j))) !円を描く
2350 case else
2351 !何もしない
2369 end select
2398 next i
2399 next j

2999 end sub
!---------------- △盤面を描画 ----------------

9999 end module
これが上下なのですが、再現可能でしょうか?

補足日時:2007/06/16 23:53
    • good
    • 0
この回答へのお礼

私はこちらのサイトを参考にしてこのソースを入手しました。
こちらからコピぺしただけですが、なぜか全角空白がありますね。
http://contest2.thinkquest.jp/tqj2003/60573/ocel …

お礼日時:2007/06/16 23:57

そのままコピー貼り付けしてみたが、再現しない。


(FORMATが定義されていないらしいのでコメントアウトした)
『メインルーチン』ってことはこの上下にも色々あるんだよね・・・

俺が考えるとしたら『変数宣言』かなぁとは思うけど。

[オプション]-[文法]で
標準(JIS Full BASIC)を選択している時
「変数宣言を強制する」というチェックボックスがある

まとはずれかもしれないが、自分の環境で再現できない以上
こういうのしか思いつかない

(その場合
『文法の誤り』というダイアログに『RIGHTは宣言されていない』等と表示される)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!