お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-06-21 22:59:56

yamadatarou
メンバ
登録日: 2007-05-17

何故かエラーが出ます

十進BASICのソースなんですが、

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

220   mouse poll mx,my,left,right  !マウス位置を取得 でなぜかエラーが出ます。
原因が分かる方よろしくお願いします。

オフライン

 

#2 2007-06-23 11:40:12

gmax
メンバ
From: 兵庫県
登録日: 2006-10-24

Re: 何故かエラーが出ます

返答がどなたからもまだないようで、私も回答ではないのですが、こちらで尋ねられた方が良いと思います。

http://freebbs.around.ne.jp/article/b/basic/index.html

オフライン

 

#3 2007-06-23 12:48:54

アルテマ
新しいメンバ
登録日: 2007-06-23

Re: 何故かエラーが出ます

!**************** メインルーチン ****************
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

「 270   call put(x,y) !putを呼び出し 」に変更してもうまくいかないですか?
クリックされたマスの番地を表示させるためにはまず番地を呼び出さなくてはいけないと思います。

「 270     print x,y  !クリックされたマスの番地を表示 」 構文形式を一応確認してください。

参考サイト:
http://contest2.thinkquest.jp/tqj2003/60573/ocello/ocello05.htm
http://contest2.thinkquest.jp/tqj2003/60573/ocello/example07.bas

これで駄目ならGmaxさんのサイトで質問したほうが正確だと思います。

最後の編集者: アルテマ (2007-06-23 12:51:19)

オフライン

 

Board footer

Powered by FluxBB