2011年12月01日投稿 / 投稿者 : shiro / タグ : 投稿プログラム ゲーム テーブルゲーム QRコード 初代対応
CPUと対戦するビンゴゲームです。
起動するとデモ画面が表示され、ゲームのルールが説明されます。下画面にタッチすると、ゲームを開始できます。
上画面にCPUのマス目、下画面に自分のマス目が表示されます。(CPUのマス目は、ゲーム対戦中は隠されていて見えません)
自分のマス目の数字を、1手ずつタッチして「×」にして消していきます。
逆にCPUが選んだ数字は、自分のマス目では「○」になります。
「○」が縦・横・斜めのどこか1列で5個揃えば勝ちです。
どこの列を捨てて「×」で消していくかの戦略が難しく、後述のリーチ宣言ルールによる一発大逆転もあり、頭を使いますが楽しいゲームです。
CPUは結構強いです。どうしても勝てない人は、15行目の「DM=FALSE」を「DM=TRUE」に変えてデバッグモードにして、CPUの打ち方を見ながら研究してください。
リストがかなり長くて打つのが大変なので、デモ画面が必要ない人は92~195行を削ってください。
プログラムリスト中では、グラフィック文字を「X」「○」「★」などの全角文字に適宜置き換えています。
実際にプチコンで入力する時は、グラフィック文字で入力してください。
私が通った中学校で当時流行していた紙と鉛筆のゲームを、BASICで再現しました。
今、ネットで「リーチゲーム」などと検索しても、このゲームの情報が出てきません。
私の中学だけのローカルブームだったのでしょうか?
過去に遊んだ経験がある人がいたら、ぜひコメントをください。
プチコンmkII 向けの QR コードです。
- ’**************
- ’* *
- ’* REACH GAME *
- ’* Ver2 *
- ’* 2011.11.27 *
- ’* by shiro *
- ’* *
- ’**************
- ’*** ショキセッテイ ***
- CLEAR
- ’テ゛ハ゛ック゛モート゛
- DM=FALSE
- VISIBLE 1,1,0,0,0,1
- PNLTYPE ”OFF”
- CLS
- GPAGE 0:GCLS 0
- GPAGE 1:GCLS 1
- BGMSTOP
- ’マスメ カンレン
- DIM YOUN(5,5),CPUN(5,5)
- DIM THKN(5,5),THKI(5,5)
- DIM LINEN(5,5)
- ’ナラヘ゛ラレル レツホウコウ
- ’bit0:─ bit1:│
- ’bit2:\ bit3:/
- FOR Y=0 TO 4
- FOR X=0 TO 4
- READ LINEN(X,Y)
- NEXT X
- NEXT Y
- DATA 7, 3, 3, 3,11
- DATA 3, 7, 3,11, 3
- DATA 3, 3,15, 3, 3
- DATA 3,11, 3, 7, 3
- DATA 11, 3, 3, 3, 7
- ’マーク X,○
- MARKER=0
- MARKSEL=-1
- ’ケ゛ーム シンコウ カンリ
- GMDEMO=0
- GMPLAY=1
- GMYOUWIN=2
- GMCPUWIN=3
- GMDRAW=4
- REACHNO=0
- REACHYOU=1
- REACHCPU=2
- TURNCPU=0
- TURNYOU=NOT TURNCPU
- TURN0=TURNCPU
- WINYOU=0:WINCPU=0
- ’ヒョウシ゛ サ゛ヒョウ
- YOUX=4:YOUY=3
- CPUX=4:CPUY=5
- SELWX=38:SELWY=21
- MESX=1:MESY=19
- ’メッセーシ゛
- DIM MES$(4)
- MESDLG=FALSE
- ’カラー
- COLTITLE=15:COLTITBG=2
- COLDEMO=15
- COLTBLTI=0
- COLTBLLN=6:COLTBLBG=15
- COLTBLN=11:COLTBLER=9
- COLTBLSL=13:COLTBLSC=11
- COLMES=0:COLMESFL=0
- COLMESBG=&HEE
- ’サウント゛
- BPYOUSEL=3:BPCPUSEL=2
- BPREACH=5
- BGMGAME=8
- BGMWIN=4:BGMLOSE=6:BGMDRAW=6
- ’*** ルール セツメイ テ゛モ ***
- @DEMO
- GM=GMDEMO
- MESTIME=400
- MESWAIT=0
- GOSUB @PRTTITLE
- GOSUB @PRTDEMO
- GOSUB @YOUINI
- GOSUB @YOUTABLE
- GOSUB @PRTYOUN
- GOSUB @CPUINI
- GOSUB @CPUTABLE
- GOSUB @PRTCPUN
- MESTCH=TRUE
- MESTIT$=”ルール セツメイ”
- MS$=”CPUト タイセンスル ヒ゛ンコ゛ケ゛ーム テ゛ス。”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- MS$=”5x5ノ マスメニ、1-25ノ スウシ゛ヲ ナラヘ゛テ スタート。”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- TURN=TURNYOU
- GOSUB @YOUTURN
- MS$=”シ゛フ゛ンカ゛ イッタ スウシ゛ハ、「X」ニナリ キエル。”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- TURN=TURNCPU
- GOSUB @CPUTURN
- MS$=”アイテカ゛ イッタ スウシ゛ハ、「○」ニナル。”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- MESTCH=FALSE
- MS$=””
- GOSUB @MESSAGE
- GR=REACHNO
- @DEMO1LP
- TURN=NOT TURN
- IF TURN==TURNYOU THEN GOSUB @YOUTURN:GOSUB @CHKCPU
- IF GR==REACHCPU GOTO @DEMO1LPE
- IF TURN==TURNCPU THEN GOSUB @CPUTURN:GOSUB @CHKYOU
- IF GR==REACHYOU GOTO @DEMO1LPE
- GOTO @DEMO1LP
- @DEMO1LPE
- MESTCH=TRUE
- MS$=”アイテカ゛ イッタ スウシ゛テ゛、「○」カ゛4コ ソロッタラ、「リーチ」ト センケ゛ン。アイテニ モウイチト゛ スウシ゛ヲ イワセラレル。”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- MESTCH=FALSE
- MS$=””
- GOSUB @MESSAGE
- TURN=NOT TURN
- GR=REACHNO
- @DEMO2LP
- TURN=NOT TURN
- @DEMO2LP1
- IF TURN==TURNYOU THEN GOSUB @YOUTURN:GOSUB @CHKCPU
- IF GM==GMCPUWIN GOTO @DEMO2LPE
- IF GR==REACHCPU GOTO @DEMO2LP1
- @DEMO2LP2
- IF TURN==TURNCPU THEN GOSUB @CPUTURN:GOSUB @CHKYOU
- IF GM==GMYOUWIN GOTO @DEMO2LPE
- IF GR==REACHYOU GOTO @DEMO2LP2
- GOTO @DEMO2LP
- @DEMO2LPE
- GM=GMDEMO
- MESTCH=TRUE
- MS$=”「○」カ゛、タテ・ヨコ・ナナメノ ト゛コカノレツテ゛ 5コ ソロエハ゛ カチ!”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @DEMOEND
- GM=GMPLAY
- GOSUB @YOUINI
- GOSUB @PRTYOUN
- GOSUB @CPUINI
- GOSUB @PRTCPUN
- MS$=”シ゛ッサイノ ケ゛ームテ゛ハ、CPUノ マスメハ カクサレマス。”
- GOSUB @MESSAGE
- GM=GMDEMO
- GOTO @DEMO
- @DEMOEND
- GOSUB @ERDEMO
- MESTCH=FALSE
- MESDLG=TRUE
- MESTIT$=””
- MS$=”ケ゛ームヲ ヤル?”
- GOSUB @MESSAGE
- IF MESRET==FALSE GOTO @ENDINIT
- ’*** ケ゛ーム リスタート ***
- @RESTART
- MESDLG=FALSE
- MESTCH=FALSE
- CLS
- GPAGE 0:GCLS 0
- GPAGE 1:GCLS 0
- GOSUB @PRTTITLE
- GOSUB @CPUTABLE
- GOSUB @YOUTABLE
- ’*** ケ゛ーム カイシ ***
- BGMPLAY BGMGAME
- GM=GMPLAY
- GOSUB @CPUINI
- GOSUB @PRTCPUN
- GOSUB @YOUINI
- GOSUB @PRTYOUN
- MESWAIT=100
- MS$=”○○○ ケ゛ーム カイシ! ○○○”
- GOSUB @MESSAGE
- TURN=TURN0
- MS$=”CPUカ゛ センテ。”
- IF TURN==TURNYOU THEN MS$=”アナタカ゛ センテ。”
- GOSUB @MESSAGE
- ’*** メイン ルーフ゜ ***
- IF TURN==TURNYOU GOTO @MAINYOU
- @MAINLOOP
- ’CPUノ ハ゛ン
- @MAINCPU
- TURN=TURNCPU
- GR=REACHNO
- GOSUB @CPUTURN
- MESWAIT=100
- MS$=”CPUハ ”+STR$(SELN)+”ヲ ケシマシタ。”
- BEEP BPCPUSEL
- GOSUB @MESSAGE
- GOSUB @CHKYOU
- IF GM>GMPLAY GOTO @GAMEEND
- IF GR!=REACHYOU GOTO @MAINYOU
- MS$=”○○ アナタカ゛ リーチ! ○○”
- BEEP BPREACH
- GOSUB @MESSAGE
- GOTO @MAINCPU
- ’PLAYERノ ハ゛ン
- @MAINYOU
- TURN=TURNYOU
- GR=REACHNO
- GOSUB @YOUTURN
- MESWAIT=100
- MS$=”アナタハ ”+STR$(SELN)+”ヲ ケシマシタ。”
- BEEP BPYOUSEL
- GOSUB @MESSAGE
- GOSUB @CHKCPU
- IF GM>GMPLAY GOTO @GAMEEND
- IF GR!=REACHCPU GOTO @MAINLOOP
- MS$=”○○ CPUカ゛ リーチ! ○○”
- BEEP BPREACH
- GOSUB @MESSAGE
- GOTO @MAINCPU
- ’*** ケ゛ーム シュウリョウ ***
- @GAMEEND
- ’ケッカ ヒョウシ゛
- BGMSTOP
- GOSUB @PRTCPUN
- IF GM==GMYOUWIN THEN GOSUB @ENDWIN
- IF GM==GMCPUWIN THEN GOSUB @ENDLOSE
- IF GM==GMDRAW THEN GOSUB @ENDDRAW
- ’リフ゜レイ?
- MESDLG=TRUE
- MS$=”モウ1カイ ヤル?”
- GOSUB @MESSAGE
- IF MESRET==TRUE GOTO @RESTART
- ’シュウリョウ ショリ
- @ENDINIT
- BGMSTOP
- CLS
- GPAGE 0:GCLS 0
- GPAGE 1:GCLS 0
- END
- ’PLAYERノ カチ
- @ENDWIN
- BGMPLAY BGMWIN
- WINYOU=WINYOU+1
- GOSUB @YOUTABLE
- GOSUB @PRTYOUN
- MS$=”★★★ アナタノ カチ! ★★★”
- MESWAIT=300
- GOSUB @MESSAGE
- TURN0=TURNYOU
- RETURN
- ’CPUノ カチ
- @ENDLOSE
- BGMPLAY BGMLOSE
- WINCPU=WINCPU+1
- GOSUB @CPUTABLE
- GOSUB @PRTCPUN
- MS$=”★★★ CPUノ カチ! ★★★”
- MESWAIT=300
- GOSUB @MESSAGE
- TURN0=TURNCPU
- RETURN
- ’ヒキワケ
- @ENDDRAW
- BGMPLAY BGMDRAW
- MS$=”○○○ ヒキワケ ○○○”
- MESWAIT=300
- GOSUB @MESSAGE
- RETURN
- ’===== サフ゛ルーチン =====
- ’*** タイトル ヒョウシ゛ ***
- @PRTTITLE
- GPAGE 0
- GFILL 0,0,255,20,COLTITBG
- GCOLOR COLTITLE
- T$=”○X REACH GAME X○”
- TY=4
- GOSUB @PRTCHR2X
- RETURN
- ’*** テ゛モ ヒョウシ゛ ***
- @PRTDEMO
- GCOLOR COLDEMO
- T$=”○セツメイ テ゛モ チュウ○”
- TY=160
- GOSUB @PRTCHR2X
- T$=”タッチテ゛ スキッフ゜”
- TY=178
- GOSUB @PRTCHR2X
- RETURN
- ’*** テ゛モ ショウキョ ***
- @ERDEMO
- GPAGE 0
- GFILL 0,160,255,194,0
- RETURN
- ’2ハ゛イモシ゛ ヒョウシ゛ サフ゛
- @PRTCHR2X
- GPAGE 0
- XO=128-LEN(T$)*8
- FOR I=0 TO LEN(T$)-1
- GPUTCHR XO+I*16+1,TY,”BGF0”,ASC(MID$(T$,I,1)),0,2
- NEXT I
- RETURN
- ’*** PLAYERマス ショキセッテイ ***
- @YOUINI
- N=1
- FOR X=0 TO 4
- FOR Y=0 TO 4
- YOUN(X,Y)=N
- N=N+1
- NEXT Y
- NEXT X
- FOR N=1 TO 100
- X=RND(5):Y=RND(5)
- I=RND(5):J=RND(5)
- Z=YOUN(X,Y)
- YOUN(X,Y)=YOUN(I,J)
- YOUN(I,J)=Z
- NEXT N
- RETURN
- ’*** CPUマス ショキセッテイ ***
- @CPUINI
- N=1
- FOR X=0 TO 4
- FOR Y=0 TO 4
- CPUN(X,Y)=N
- N=N+1
- NEXT Y
- NEXT X
- FOR N=1 TO 100
- X=RND(5):Y=RND(5)
- I=RND(5):J=RND(5)
- Z=CPUN(X,Y)
- CPUN(X,Y)=CPUN(I,J)
- CPUN(I,J)=Z
- NEXT N
- RETURN
- ’*** PLAYERノ ハ゛ン ***
- @YOUTURN
- FOR X=0 TO 4
- FOR Y=0 TO 4
- THKN(X,Y)=YOUN(X,Y)
- NEXT Y
- NEXT X
- ON GM==GMDEMO GOSUB @YOUTHK,@AUTOTHK
- YOUN(EX,EY)=MARKER
- GOSUB @PRTYOUN
- FOR Y=0 TO 4
- FOR X=0 TO 4
- IF CPUN(X,Y)==SELN THEN SX=X:SY=Y:X=4:Y=4
- NEXT X
- NEXT Y
- CPUN(SX,SY)=MARKSEL
- IF (GM==GMDEMO OR DM==TRUE) THEN GOSUB @PRTCPUN
- RETURN
- ’*** PLAYER スウシ゛ センタク ***
- @YOUTHK
- MESWAIT=0
- MS$=”★ケシタイ スウシ゛ヲ タッチシテ クタ゛サイ。”
- GOSUB @MESSAGE
- @TCHLOOP
- IF TCHST==FALSE GOTO @TCHLOOP
- EX=FLOOR((TCHX-YOUX*8)/SELWX)
- EY=FLOOR((TCHY-YOUY*8)/SELWY)
- IF (EX<0 OR EX>4) GOTO @TCHLOOP
- IF (EY<0 OR EY>4) GOTO @TCHLOOP
- SELN=THKN(EX,EY)
- IF (SELN==MARKER OR SELN==MARKSEL) GOTO @TCHLOOP
- RETURN
- ’*** CPUノ ハ゛ン ***
- @CPUTURN
- FOR X=0 TO 4
- FOR Y=0 TO 4
- THKN(X,Y)=CPUN(X,Y)
- NEXT Y
- NEXT X
- GOSUB @AUTOTHK
- CPUN(EX,EY)=MARKER
- IF (GM==GMDEMO OR DM==TRUE) THEN GOSUB @PRTCPUN
- FOR Y=0 TO 4
- FOR X=0 TO 4
- IF YOUN(X,Y)==SELN THEN SX=X:SY=Y:X=4:Y=4
- NEXT X
- NEXT Y
- YOUN(SX,SY)=MARKSEL
- GOSUB @PRTYOUN
- RETURN
- ’*** シコウ ルーチン ***
- @AUTOTHK
- ’オモミ リセット
- FOR Y=0 TO 4
- FOR X=0 TO 4
- THKI(X,Y)=0
- NEXT X
- NEXT Y
- ’オモミ ケイサン ヨコ
- FOR Y=0 TO 4
- LINEC=0
- IF Y!=2 THEN LINEC=1
- FOR X=0 TO 4
- IF THKN(X,Y)==MARKSEL THEN LINEC=LINEC+3
- IF THKN(X,Y)==MARKER THEN LINEC=-1:X=4
- NEXT X
- FOR X=0 TO 4
- THKI(X,Y)=THKI(X,Y)+LINEC
- NEXT X
- NEXT Y
- ’オモミ ケイサン タテ
- FOR X=0 TO 4
- LINEC=0
- IF X!=2 THEN LINEC=1
- FOR Y=0 TO 4
- IF THKN(X,Y)==MARKSEL THEN LINEC=LINEC+3
- IF THKN(X,Y)==MARKER THEN LINEC=-1:Y=4
- NEXT Y
- FOR Y=0 TO 4
- THKI(X,Y)=THKI(X,Y)+LINEC
- NEXT Y
- NEXT X
- ’オモミ ケイサン ナナメ1
- LINEC=4
- FOR XY=0 TO 4
- IF THKN(XY,XY)==MARKSEL THEN LINEC=LINEC+3
- IF THKN(XY,XY)==MARKER THEN LINEC=-1:XY=4
- NEXT XY
- FOR XY=0 TO 4
- THKI(XY,XY)=THKI(XY,XY)+LINEC
- NEXT XY
- ’オモミ ケイサン ナナメ2
- LINEC=4
- FOR XY=0 TO 4
- IF THKN(4-XY,XY)==MARKSEL THEN LINEC=LINEC+3
- IF THKN(4-XY,XY)==MARKER THEN LINEC=-1:XY=4
- NEXT XY
- FOR XY=0 TO 4
- THKI(4-XY,XY)=THKI(4-XY,XY)+LINEC
- NEXT XY
- ’オモミ サイショウ マス
- IM=100
- FOR Y=0 TO 4
- FOR X=0 TO 4
- IF (THKI(X,Y)<IM AND THKN(X,Y)>0) THEN IM=THKI(X,Y):EX=X:EY=Y
- NEXT X
- NEXT Y
- ’ケス スウシ゛ ケッテイ
- SELN=THKN(EX,EY)
- RETURN
- ’*** CPUマス ヒョウシ゛ ***
- @CPUTABLE
- COLOR COLTBLTI
- LOCATE CPUX,CPUY-1
- PRINT ”CPU (”;WINCPU;”ショウ)”
- GPAGE 0
- FOR Y=0 TO 4
- FOR X=0 TO 4
- GX=CPUX*8+X*SELWX:GY=CPUY*8+Y*SELWY
- GBOX GX,GY,GX+SELWX,GY+SELWY,COLTBLLN
- GFILL GX+1,GY+1,GX+SELWX-1,GY+SELWY-1,COLTBLBG
- NEXT X
- NEXT Y
- RETURN
- ’*** PLAYERマス ヒョウシ゛ ***
- @YOUTABLE
- COLOR COLTBLTI
- PNLSTR YOUX,YOUY-1,”アナタ (”+STR$(WINYOU)+”ショウ)”
- GPAGE 1
- FOR Y=0 TO 4
- FOR X=0 TO 4
- GX=YOUX*8+X*SELWX:GY=YOUY*8+Y*SELWY
- GBOX GX,GY,GX+SELWX,GY+SELWY,COLTBLLN
- GFILL GX+1,GY+1,GX+SELWX-1,GY+SELWY-1,COLTBLBG
- NEXT X
- NEXT Y
- RETURN
- ’*** CPUスウシ゛ ヒョウシ゛ ***
- @PRTCPUN
- GPAGE 0
- FOR Y=0 TO 4
- FOR X=0 TO 4
- GX=CPUX*8+X*SELWX:GY=CPUY*8+Y*SELWY
- GFILL GX+1,GY+1,GX+SELWX-1,GY+SELWY-1,COLTBLBG
- NUM=CPUN(X,Y)
- IF GM==GMPLAY AND DM==FALSE THEN GOSUB @PRTSEC
- IF (GM!=GMPLAY OR DM==TRUE) AND NUM>0 THEN GOSUB @PRTN
- IF (GM!=GMPLAY OR DM==TRUE) AND NUM==MARKER THEN GOSUB @PRTER
- IF (GM!=GMPLAY OR DM==TRUE) AND NUM==MARKSEL THEN GOSUB @PRTSEL
- NEXT X
- NEXT Y
- RETURN
- ’*** PLAYERスウシ゛ ヒョウシ゛ ***
- @PRTYOUN
- GPAGE 1
- FOR Y=0 TO 4
- FOR X=0 TO 4
- GX=YOUX*8+X*SELWX:GY=YOUY*8+Y*SELWY
- GFILL GX+1,GY+1,GX+SELWX-1,GY+SELWY-1,COLTBLBG
- NUM=YOUN(X,Y)
- IF NUM>0 THEN GOSUB @PRTN
- IF NUM==MARKER THEN GOSUB @PRTER
- IF NUM==MARKSEL THEN GOSUB @PRTSEL
- NEXT X
- NEXT Y
- RETURN
- ’*** スウシ゛ヒョウシ゛ サフ゛ ***
- @PRTN
- NUM$=STR$(NUM)
- ON LEN(NUM$)-1 GOSUB @PRTN1,@PRTN2
- RETURN
- @PRTN1
- N1$=MID$(NUM$,0,1)
- GPUTCHR GX+4+8,GY+4,”BGF0”,ASC(N1$),COLTBLN,2
- RETURN
- @PRTN2
- N1$=MID$(NUM$,0,1)
- N2$=MID$(NUM$,1,1)
- GPUTCHR GX+4,GY+4,”BGF0”,ASC(N1$),COLTBLN,2
- GPUTCHR GX+4+16,GY+4,”BGF0”,ASC(N2$),COLTBLN,2
- RETURN
- @PRTER
- GPUTCHR GX+4+8,GY+3,”BGF0”,ASC(”X”),COLTBLER,2
- RETURN
- @PRTSEL
- GPUTCHR GX+4+8,GY+4,”BGF0”,ASC(”○”),COLTBLSL,2
- RETURN
- @PRTSEC
- GPUTCHR GX+4+8,GY+4,”BGF0”,ASC(”?”),COLTBLSC,2
- RETURN
- ’*** CPUマス ハンテイ ***
- @CHKCPU
- FOR Y=0 TO 4
- FOR X=0 TO 4
- THKN(X,Y)=CPUN(X,Y)
- NEXT X
- NEXT Y
- GOSUB @CHKTABLE
- IF RC==TRUE THEN GR=REACHCPU
- IF (DC==TRUE AND WC==FALSE) THEN GM=GMDRAW
- IF WC==TRUE THEN GM=GMCPUWIN
- RETURN
- ’*** PLAYERマス ハンテイ ***
- @CHKYOU
- FOR Y=0 TO 4
- FOR X=0 TO 4
- THKN(X,Y)=YOUN(X,Y)
- NEXT X
- NEXT Y
- GOSUB @CHKTABLE
- IF RC==TRUE THEN GR=REACHYOU
- IF (DC==TRUE AND WC==FALSE) THEN GM=GMDRAW
- IF WC==TRUE THEN GM=GMYOUWIN
- RETURN
- ’*** マス ハンテイ サフ゛ ***
- @CHKTABLE
- GR=REACHNO
- RC=FALSE:WC=FALSE:DC=FALSE
- LN=LINEN(SX,SY)
- ’ヨコ ハンテイ
- @CHKX
- IF (LN AND 1)==0 GOTO @CHKY
- CC=0
- FOR X=0 TO 4
- IF THKN(X,SY)==MARKSEL THEN CC=CC+1
- IF THKN(X,SY)==MARKER THEN CC=0:X=4
- NEXT X
- IF CC==5 THEN WC=TRUE
- IF CC==4 THEN RC=TRUE
- ’タテ ハンテイ
- @CHKY
- IF (LN AND 2)==0 GOTO @CHKXY
- CC=0
- FOR Y=0 TO 4
- IF THKN(SX,Y)==MARKSEL THEN CC=CC+1
- IF THKN(SX,Y)==MARKER THEN CC=0:Y=4
- NEXT Y
- IF CC==5 THEN WC=TRUE
- IF CC==4 THEN RC=TRUE
- ’ナナメ ハンテイ1
- @CHKXY
- IF (LN AND 4)==0 GOTO @CHKYX
- CC=0
- FOR XY=0 TO 4
- IF THKN(XY,XY)==MARKSEL THEN CC=CC+1
- IF THKN(XY,XY)==MARKER THEN CC=0:XY=4
- NEXT XY
- IF CC==5 THEN WC=TRUE
- IF CC==4 THEN RC=TRUE
- ’ナナメ ハンテイ2
- @CHKYX
- IF (LN AND 8)==0 GOTO @CHKEND
- CC=0
- FOR XY=0 TO 4
- IF THKN(4-XY,XY)==MARKSEL THEN CC=CC+1
- IF THKN(4-XY,XY)==MARKER THEN CC=0:XY=4
- NEXT XY
- IF CC==5 THEN WC=TRUE
- IF CC==4 THEN RC=TRUE
- @CHKEND
- ’ト゛ロー?
- CN=FALSE
- FOR Y=0 TO 4
- FOR X=0 TO 4
- IF THKN(X,Y)>0 THEN CN=TRUE
- NEXT X
- NEXT Y
- IF CN==FALSE THEN DC=TRUE
- RETURN
- ’*** メッセーシ゛ ウイント゛ウ ***
- @MESSAGE
- ’ウイント゛ウ
- GPAGE 1
- GFILL MESX*8-8,MESY*8-8,(MESX+30)*8+8,(MESY+4)*8+8,COLMESBG
- COLOR COLMESFL
- PNLSTR MESX-1,MESY-1,”┌──────────────────────────────┐”
- FOR Y=0 TO 3
- PNLSTR MESX-1,MESY+Y,”│ │”
- NEXT Y
- PNLSTR MESX-1,MESY+4,”└──────────────────────────────┘”
- ’ウイント゛ウ タイトル
- IF MESTIT$==”” GOTO @MESTITEN
- XO=FLOOR(14-LEN(MESTIT$)/2)
- PNLSTR MESX+XO,MESY-1,”[”+MESTIT$+”]”
- @MESTITEN
- ’メッセーシ゛ キ゛ョウフ゛ンカイ
- FOR I=0 TO 3
- MES$(I)=””
- NEXT I
- FOR C=0 TO LEN(MS$)-1
- MN=FLOOR(C/30)
- MES$(MN)=MES$(MN)+MID$(MS$,C,1)
- NEXT C
- ’メッセーシ゛ ヒョウシ゛
- XO=0
- IF MESDLG==TRUE THEN XO=FLOOR(15-LEN(MES$(0))/2)
- COLOR COLMES
- FOR Y=0 TO 3
- PNLSTR MESX+XO,MESY+Y,MES$(Y)
- NEXT Y
- ’タ゛イアロク゛/ワンタッチ/ウェイト
- IF MESDLG==TRUE THEN GOSUB @MESDLG:GOTO @MESEND
- IF MESTCH==TRUE THEN GOSUB @MESTCH:GOTO @MESEND
- VSYNC MESWAIT
- @MESEND
- RETURN
- ’*** メッセーシ゛ タ゛イアロク゛ ***
- @MESDLG
- B1$=”ハイ”:BW1=LEN(B1$)+2
- BX1=MESX+8:BY1=MESY+1
- B2$=”イイエ”:BW2=LEN(B1$)+2
- BX2=MESX+17:BY2=MESY+1
- PNLSTR BX1,BY1,”┌──┐”
- PNLSTR BX1,BY1+1,”│”+B1$+”│”
- PNLSTR BX1,BY1+2,”└──┘”
- PNLSTR BX2,BY2,”┌───┐”
- PNLSTR BX2,BY2+1,”│”+B2$+”│”
- PNLSTR BX2,BY2+2,”└───┘”
- ’ホ゛タン タッチ マチ
- @MESDLGLP
- IF TCHST==FALSE GOTO @MESDLGLP
- TX=FLOOR(TCHX/8):TY=FLOOR(TCHY/8)
- MESBTN=FALSE
- IF BX1<=TX AND TX<=BX1+BW1 THEN MESBTN=TRUE:MESRET=TRUE
- IF BX2<=TX AND TX<=BX2+BW2 THEN MESBTN=TRUE:MESRET=FALSE
- IF MESBTN==FALSE GOTO @MESDLGLP
- BEEP BPYOUSEL
- RETURN
- ’*** メッセーシ゛ ワンタッチ マチ ***
- @MESTCH
- MESRET=FALSE
- TIME0=MAINCNTL
- @MESTCHLP
- TIME1=MAINCNTL-TIME0
- IF (TCHST==FALSE AND TIME1<MESTIME) GOTO @MESTCHLP
- IF TCHST==TRUE THEN MESRET=TRUE
- RETURN
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)