プログラムリスト
SYS/GAME6TALK
トップメニュー「SmileBASICでプログラムを作る」から、LOAD"SYS/GAME6TALK"↵
でプログラムが読み込まれます。キーボードの「EDIT」キーを押すと、このプログラムが自由に編集できます。
'
' GAME6TALK
' カイワゲーム
'
GOSUB @INIT
'
LOGOSP=0:SPSET LOGOSP,4095
SPOFS LOGOSP,340,24,-32
'
A$="カイワゲーム"
GOSUB @GPUTSTR
BEEP 37
GOSUB @HITANY
BEEP 3
WAIT 30
HOUR=VAL(LEFT$(TIME$,2))
IF HOUR<10 THEN A$="オハヨウゴザイマス"
IF HOUR>=10 AND HOUR<19 THEN A$="コンニチワ"
IF HOUR>=19 THEN A$="コンバンワ"
GOSUB @HANASU
A$="エックスボタンデ イツデモ シュウリョウ デキマス"
GOSUB @HANASU
'--- メインループ
WHILE 1
IF RND(10)==0 THEN
GOSUB @COMENT
CONTINUE
ENDIF
IF RND(10)==0 THEN
GOSUB @URANAI
CONTINUE
ENDIF
'---シツモンモード
TMODE=RND(4)
ON TMODE GOSUB @BUNPO1,@BUNPO2,@BUNPO3,@BUNPO4
@RETRY
WHILE 1
GOSUB @HANASU
GOSUB @YESNO
IF BT AND 64 THEN GOSUB @SYURYO:CONTINUE
BREAK
WEND
IF ANS$=="YES" THEN P$=OK$
IF ANS$=="NO" THEN P$=NG$
GOSUB @LOGING
WEND
'---コメントモード
@COMENT
RESTORE @CMTDAT
FOR CMTMAX=0 TO 999
READ A$
IF A$=="" THEN BREAK
NEXT
RESTORE @CMTDAT
NUM=RND(CMTMAX-1)
FOR I=0 TO NUM
READ A$
NEXT
GOSUB @HANASU
GOSUB @HITANY
IF BT AND 64 THEN GOSUB @SYURYO
RETURN
@CMTDAT
DATA "コノプログラム ハ ワタシガ ランダムニ シャベッテイマス"
DATA "プログラムヲ トメルト カイワノ キロク ハ キエテシマイマス"
DATA "コノプログラム ハ イツデモ シュウリョウデキマス"
DATA "コマッタコトニ コノプログラム ハ オワリガ アリマセン"
DATA "コノプログラム ハ トークメイレイヲ ツカッテ シャベッテイマス"
DATA "ワタシ ハ アタラシイ タンゴヲ オボエルコト ハ デキマセン"
DATA "タマニ ヘンナコトヲ シャベリマスガ オオメニミテクダサイ"
DATA "カタカナデ ヨミニククテ スミマセン"
DATA "コノプログラム ハ ジョークソフト デス"
DATA ""
@URANAI
GOSUB @MESIGET
A$="アナタノ ラッキーアイテム ハ "+R$+" デス"
GOSUB @HANASU
WAIT 60
A$="ナンチャッテ"
GOSUB @HANASU
GOSUB @HITANY
IF BT AND 64 THEN GOSUB @SYURYO
RETURN
'--- ショキカ
@INIT
GRW=400
GRH=240
XSCREEN 0
GPRIO 1023
CLS
AAX=23:AAY=7:AAZ=-100
AAMAX=2
ABX=AAX+2:ABY=11:ABZ=-100
ABMAX=3
DIM ANIA$[AAMAX]
DIM ANIB$[ABMAX]
AACOL=9
ANIA$[0]=" "
ANIA$[1]=" "
ABCOL=11
ANIB$[0]=""
ANIB$[1]=""
ANIB$[2]=""
'---
IDSYGO=0 'シュゴ
IDMESI=1 'メイシ
IDDOSI=2 'ドウシ
IDKEI =3 'ケイヨウシ
IDKEDO=4 'ケイヨウドウシ
LOGPTR=1
'---テキスト ガメン
GPAGE 0,1
GCLS
GPAGE 0,0
GCLS
J=191-80
FOR I=0 TO GRW-1
C=(FLOOR(I/8) MOD 2)*16+64
GLINE I,0,I,J,RGB(0,0,C)
GLINE I,J,I,151,RGB(128-C,128-C,0)
GLINE I,160,I,GRH,RGB(0,C,0)
NEXT
COLOR 4
TX=1
TY=21
TW=48
TH=7
FOR I=0 TO 7 STEP 2
GBOX 0+I,158+I,399-I,239-I,RGB(255,255,0)
NEXT
MODE=0 'コピーモード
FOR Z=0 TO 3
COLOR 4
RESTORE @WOOD
LX=14-Z*4:LY=3:LZ=700-Z*300:GOSUB @PRTDAT
LX=34+Z*4:LY=3:LZ=700-Z*300:GOSUB @PRTDAT
NEXT
MODE=1 'コピーモード
COLOR 15
RESTORE @HITO
LX=AAX-4:LY=1:LZ=-100:GOSUB @PRTDAT
'--- インデックス サクセイ
DIM IDMAX[5]
DIM ID[5]
DIM BUFF[256*64]
RESTORE @KOTOBA
IDX=0
FOR J=0 TO 4
ID[J]=IDX
FOR I=0 TO 999
READ R$
IDX=IDX+1
IF R$=="" THEN BREAK
NEXT
IDMAX[J]=I
NEXT
RETURN
'---ログ ニ キロク
@LOGING
GPAGE 0,1
FOR I=0 TO LEN(P$)
C=0
IF I<LEN(P$) THEN C=ASC(MID$(P$,I,1))
BUFF[LOGPTR]=C
LOGPTR=(LOGPTR+1) MOD (256*64)
NEXT
GPAGE 0,0
RETURN
'---ログ カラ トリダシ
@LOGGET
GPAGE 0,1
R$=""
I=0
WHILE 1
WHILE 1
LOGPTR2=RND(256*64)
C=BUFF[LOGPTR2]
LOGPTR2=(LOGPTR2+1) MOD (256*64)
IF C==0 THEN BREAK
WEND
WHILE 1
C=BUFF[LOGPTR2]
LOGPTR2=(LOGPTR2+1) MOD (256*64)
IF C==0 THEN BREAK
R$=R$+CHR$(C)
WEND
IF R$!="" THEN BREAK
I=I+1
IF I>=1200 THEN BREAK
WEND
GPAGE 0,0
RETURN
'--- メイシ トリダシ
@MESIGET
IF RND(7)==0 THEN @MESIGET2
GOSUB @LOGGET
IF LEN(R$)>22 THEN @MESIGET2 'ナガスギ
IF R$!="" THEN RETURN
'ミツカラナイ
@MESIGET2
IDN=IDMESI:GOSUB @RDDAT 'メイシ
RETURN
'---
@BUNPO1
GOSUB @MESIGET
A1$=R$
IDN=IDKEI:GOSUB @RDDAT 'ケイヨウシ
A2$=R$
A$=A1$+" ハ "+A2$+" デスカ"
OK$=A2$+" "+A1$
NG$=LEFT$(A2$,LEN(A2$)-1)+"クナイ "+A1$
RETURN
'---
@BUNPO2
GOSUB @MESIGET
A1$=R$
IDN=IDDOSI:GOSUB @RDDAT 'ドウシ
A2$=R$
A$=A1$+" ヲ "+A2$+"コト ハ アリマスカ"
OK$=A2$+" "+A1$
NG$=A2$+"コトガナイ "+A1$
RETURN
'---
@BUNPO3
GOSUB @MESIGET
A1$=R$
IDN=IDKEDO:GOSUB @RDDAT '
A2$=R$
A$=A1$+" ハ "+A2$+" デスカ"
OK$=A2$+"ナ "+A1$
NG$=A2$+"デナイ "+A1$
RETURN
'---
@BUNPO4
GOSUB @MESIGET
A1$=R$
A$=A1$+" ハ スキ デスカ"
OK$="アナタノ スキナ "+A1$
NG$="アナタノ キライナ "+A1$
RETURN
'---ランダム ヨミコミ
@RDDAT
NUM=ID[IDN]+RND(IDMAX[IDN])
@RDDAT2
RESTORE @KOTOBA
FOR I=0 TO NUM
READ R$
NEXT
RETURN
'---
@HANASU
T$=A$
WHILE 1
P=INSTR(T$," ハ ")
IF P==-1 THEN BREAK
T$=SUBST$(T$,P,3," ワ ")
WEND
WHILE 1
I=INSTR(T$," ")
IF I==-1 THEN BREAK
T$=LEFT$(T$,I)+MID$(T$,I+1,999)
WEND
GOSUB @GPUTSTR
TALK T$
GOSUB @ANIME
WAIT 30
RETURN
'--- カオ アニメ
@ANIME
FOR I=1 TO LEN(A$)
COLOR AACOL
LOCATE AAX,AAY,AAZ
PRINT ANIA$[RND(AAMAX)]
COLOR ABCOL
LOCATE ABX,ABY,ABZ
PRINT ANIB$[RND(ABMAX)]
WAIT 8
NEXT
RETURN
@ANIME2
IF RND(30) THEN RETURN
COLOR AACOL
LOCATE AAX,AAY,AAZ
PRINT ANIA$[RND(AAMAX)]
RETURN
'--- シュウリョウ
@SYURYO
ABAK$=A$ 'BACKUP
A$="シュウリョウ シマスカ"
GOSUB @HANASU
GOSUB @YESNO
IF ANS$=="YES" THEN
A$="オツキアイ イタダキ マコトニ アリガトウ ゴザイマシタ"
GOSUB @HANASU
A$="サヨウナラ"
GOSUB @HANASU
END
ENDIF
A$="ツヅケマス"
GOSUB @HANASU
A$=ABAK$ 'BACKUP
RETURN
'---YES/NOニュウリョク
@YESNO
GOSUB @KEYOFF
COLOR 7
ANS$=""
B$="[A]BUTTON=YES / [B]BUTTON=NO"
GOSUB @PRTB
WHILE 1
VSYNC 2
BT=BUTTON()
IF BT AND 1024 THEN RETURN
IF BT AND 32 THEN ANS$="NO"
IF BT AND 16 THEN ANS$="YES"
GOSUB @ANIME2
IF BT THEN BREAK
WEND
B$=" "*48
GOSUB @PRTB
IF ANS$=="YES" THEN BEEP 7:COLOR 11
IF ANS$=="NO" THEN BEEP 13:COLOR 13
B$=ANS$
GOSUB @PRTB
WAIT 30
B$=" "*48
GOSUB @PRTB
RETURN
'--- キーニュウリョクマチ
@HITANY
GOSUB @KEYOFF
COLOR 11
BY=28
B$="PUSH ANY BUTTON"
GOSUB @PRTB
WHILE 1
VSYNC 2
BT=BUTTON()
GOSUB @ANIME2
IF BT AND (16+32+64) THEN BREAK
WEND
BEEP 9
B$=" "
GOSUB @PRTB
RETURN
'--- モジヒョウジ
@PRTB
LOCATE 25-LEN(B$)/2,BY,-100
PRINT B$;
RETURN
'--- ボタン ハナス
@KEYOFF
WHILE 1
VSYNC 1
IF BUTTON()==0 THEN BREAK
WEND
RETURN
'--- カクダイ モジ ヒョウジ
@GPUTSTR
X=TX
Y=TY+TH-1
FOR PTR=0 TO LEN(A$)-1
CH$=MID$(A$,PTR,1)
LOCATE X,Y
PRINT CH$
' GPUTCHR X+1,Y+1,"BGF0",NUM,14,SZ
' GPUTCHR X ,Y ,"BGF0",NUM, 0,SZ
' X=X+SZW
' IF X>255 THEN GOSUB @KAIGYO
X=X+1
IF X>=(TX+TW-1) THEN GOSUB @KAIGYO:X=TX
NEXT
GOSUB @KAIGYO
GOSUB @KAIGYO
RETURN
'--- カイギョウ
@KAIGYO
COLOR 15
FOR IY=0 TO TH-1
FOR IX=0 TO TW-1
LOCATE TX+IX,TY+IY,0
C$=CHR$(CHKCHR(TX+IX,TY+IY+1))
IF IY==(TH-1) THEN C$=" "
PRINT C$
NEXT
NEXT
VSYNC 8
RETURN
'--- ハイケイ テキスト
@PRTDAT
FOR I=0 TO 999
READ A$
IF A$=="" THEN BREAK
FOR J=0 TO LEN(A$)-1
B$=MID$(A$,J,1)
LOCATE LX+J,LY+I,LZ
IF B$!=" " OR MODE THEN PRINT B$;
NEXT
NEXT
RETURN
'--- ヒョウジデータ
@WOOD
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA ""
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA ""
@HITO
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA " "
DATA ""
'--- カイワデータ
@KOTOBA
'---ニンショウダイメイシ
DATA "ワタシ"
DATA "アナタ"
DATA ""
'---メイシ
DATA "ゲーム","プチコン","オンガク","ドウロ"
DATA "マチ","エキ","イス","ツクエ","ドア"
DATA "マンガ","エイガ","ショウセツ"
DATA "チキュウ","ウミ","ソウゲン","サバク"
DATA "インターネット","ケーブル","トランジスタ"
DATA "ジンコウチノウ","タッキュウ","サッカー","ヤキュウ"
DATA "クルマ","バイク","ジテンシャ"
DATA "オチャ","コーヒー","ジュース"
DATA "ジドウシャ","トラック","バーコード","シャシン"
DATA "ケイタイデンワ","スプーン","ネッタイギョ"
DATA "トシ","ウタ","ワリバシ","テガミ"
DATA "ガラス","デンシャ","メガネ","ホン"
DATA "デンカセイヒン","テレビ","エアコン","ソウジキ"
DATA "センタクキ","パソコン","プリンタ","ケイコウトウ"
DATA "デンキ","ホンダナ","ライト","カメラ"
DATA "コンビニ","イエ","ビル","オタマ","オカネ"
DATA "デンキ","ニク","ヌカ","ネンド","イヌ","ネコ"
DATA "ゼイキン","ナットウ","ニンジン","ネンガジョウ"
DATA "ブンボウグ","ヤンバルクイナ","タンチョウヅル"
DATA "エンピツ","ボールペン","ハサミ","ケシゴム"
DATA "カミ","ナイフ","ノート","ソーメン","ケーキ"
DATA "タベモノ","ゴハン","タコヤキ","タイヤキ","パン"
DATA "オカシ","チョコレート","ラーメン","スキヤキ"
DATA "ヤサイ","モヤシ","ピーマン","センメンキ"
DATA "ダイコン","ニンジン","チクワ","コンブ"
DATA "ミカン","スイカ","リンゴ","カキ"
DATA "エレベータ","エスカレータ","カイダン"
DATA "ガラス","コンクリート","キン","テツ"
DATA "ギョウザ","クジラ","シメサバ","オニギリ"
DATA "ウチュウ","ハクサイ","マネキン","マンドリル"
DATA "コーヒー","ミズ","コップ","ロウソク"
DATA "サトウ","シオ","コショウ","ショウユ"
DATA "ゾウ","キリン","オオカミ","イルカ","サル"
DATA "エイガ","メモヨウシ","シシャモ","サンマ"
DATA ""
'---ドウシ
DATA "アソブ","ソソグ"
DATA "タタク","ノバス"
DATA "オボエル","タズネル"
DATA "ワル","キル"
DATA "トル","ネムル"
DATA "ツカウ","ムスブ"
DATA "カウ","ウル"
DATA "ウチコム","トリカエル"
DATA "ウツ","アテル"
DATA "ウゴカス"
DATA "ツナグ","キソウ"
DATA "デル","マモル"
DATA "トメル","アルク"
DATA "ハシル","オクル"
DATA "ハル","メザス"
DATA "ヒロウ","オトス"
DATA "ミル","キク","ハナス"
DATA "ナオス","シメス"
DATA "ツケタス","トリハズス"
DATA ""
'---ケイヨウシ
DATA "カタイ","ヤワラカイ"
DATA "タカイ","ヒクイ"
DATA "アツイ","サムイ"
DATA "アタタカイ","ツメタイ"
DATA "オモイ","カルイ"
DATA "トオイ","チカイ"
DATA "シカクイ","ココチヨイ"
DATA "マルイ","モロイ"
DATA "キタナイ","ハカナイ"
DATA "オモシロイ","キョウミブカイ"
DATA "ツマラナイ","タノシイ"
DATA "アカルイ","クライ"
DATA "ハヤイ","オソイ"
DATA "コマカイ","メズラシイ"
DATA "アタラシイ","フルイ"
DATA "アリガタイ","ウルサイ"
DATA "タノモシイ"
DATA ""
'---ケイヨウドウシ
DATA "キレイ","シンセツ","ハナヤカ"
DATA "スキ","キライ","ビンボウ"
DATA "イッショ","オダヤカ","フシギ"
DATA "ケンコウ","カンタン","シゼン"
DATA "シズカ","ゲンキ","フシゼン"
DATA "セイカク","サイコウ"
DATA "カラフル","トウメイ"
DATA ""