SmileBASIC

プログラムリスト

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 ""

ページトップへ