大学2年で選択したCASLの最終課題。内容は自由。
私は仮想ペットとちょっとした遊びができるかんじのものをつくりました〜。
体力とお金の変数があるので、行動内容がちょっとかわります。

このおじちゃんの先生が大好きでかなり頑張りました〜
おうちでいちにちずぅーーーっとカタカタやってた(笑)
・・・スクリプトだけですv
でもソフト入れればちゃんとうごきます。
(下のは全角スペース入っちゃってるけど。あと公開できない部分はかえてありますー)

 

;***************************************** (C) 栄 桜満
;用途 → 仮想ペットと遊ぶ
;原作 → 名前
; ※体力(この場合3〜5に限定)がなくなると寝る。
; ※お金が無いと買い物は出来ない。
;             ( 最終改定 02/01/23 )
;*****************************************************
;-- メインルーチン
PET START
LAD GR0,0
OUT OUT01,LEN
OUT OUT02,LEN
OUT LF,LEN
IDT OUT ONM,LEN     ;飼い主名前
IN NM,WORK
OUT OPK,LEN       ;ペット種類
IN PK,WORK
OUT OPN,LEN       ;ペット名前
IN PN,WORK
IDT2 OUT OPP,LEN     ;ペット体力
IN PP,WORK
LD GR0,N03        ;3以上に制限
CPA GR0,PP
JPL DTERR
LD GR0,N05
CPA GR0,PP        ;5以下に制限
JMI DTERR
LAD GR1,7
ST GR1,WORK
JUMP DTOK
DTERR OUT LF,LEN     ;体力入力エラー
OUT ERROR,LEN
OUT LF,LEN
JUMP IDT2
DTOK OUT LF,LEN     ;データ確認
OUT ODT,LEN
OUT ODT2,LEN
IN SLCT,WORK
LD GR1,SLCT       ;選択値は?
CPL GR1,N01
JZE INPP
CPL GR1,N02
JZE IDT
OUT LF,LEN
OUT ERROR,LEN
OUT LF,LEN
JUMP DTOK
;--    デジペットと遊ぶ
INPP LD GR3,PP      ;GR3→体力メータ
AND GR3,OFF       ;体力数値化
MENU LAD GR0,1
CPA GR3,GR0
JMI TIRED        ;体力1未満は終了
OUT LF,LEN
OUT OSLCT,LEN
OUT LF,LEN
OUT OUT04,LEN
OUT OUT00,LEN
IN SLCT,WORK
LD GR0,SLCT       ;選択値は?
CPL GR0,N01
JZE WALK
CPL GR0,N02
JZE LAND
CPL GR0,N03
JZE TREAT
CPL GR0,N00
JZE EXT
OUT ERROR,LEN
OUT LF,LEN
JUMP MENU
;--    体力0のとき
TIRED OUT LF,LEN
OUT OTIRED,LEN     ;疲れた表示
JUMP EXT        ;終わる
;--    お散歩
WALK OUT LF,LEN
OUT IMONEY,LEN
IN MONEYB,MNLEN
OUT LF,LEN
OUT ODT,LEN
OUT ODT2,LEN
IN SLCT,WORK
LD GR0,SLCT       ;選択値は?
CPL GR0,N01
JZE MON
CPL GR0,N02
JZE WALK
OUT ERROR,LEN
OUT LF,LEN
JUMP WALK
MON LAD GR1,0
LAD GR0,0
ALITH LD GR2,MONEYB,GR1 ;予算最上桁をGR2に
AND GR2,OFF       ;数値化
ADDL GR0,GR2
LAD GR1,1,GR1      ;GR1+1
CPA GR1,MNLEN      ;桁数と比較
JZE WALKOK
SLL GR0,1        ;2倍
ST GR0,WORK
SLL GR0,2        ;8倍
ADDL GR0,WORK      ;足して10倍
JUMP ALITH
WALKOK ST GR0,MONEYB
CALL PWALK
JUMP MENU
;--    庭で遊ぶ
LAND LAD GR3,-2,GR3   ;体力-2
OUT OHAPPY,LEN
OUT LF,LEN
JUMP MENU
;--    なでる
TREAT LAD GR3,1,GR3   ;体力+1
OUT OGREAT,LEN
OUT LF,LEN
JUMP MENU
;--    また明日
EXT OUT LF,LEN
OUT OBYE1,LEN
OUT OBYE2,LEN
OUT LF,LEN
OUT OSLEEP,LEN
OUT PN,LEN
RET
;*****************************************************
;--    タイトル
OUT01 DC '★★★★★ デジ犬を飼おう! ★★★★★'
OUT02 DC '          Presented by name '
;--    説明文
ONM DC ' 貴方のお名前を教えて下さい。(7字以内)'
OPK DC ' 飼いたい犬の種類は何ですか?(7字以内)'
OPN DC ' デジ犬の名前を決めて下さい。(7字以内)'
OPP DC ' デジ犬の体力を決めて下さい。( 3〜5 )'
ERROR DC '!!! 表示されている数を入力して下さい !!!'
ODT DC ' これで良いですか?          '
ODT2 DC '      1: 良い   2: 記入直し  '
;--    選択メニュー
OSLCT DC '********* 何する? *********'
OUT04 DC ' 1: 散歩に行く 2: 庭で遊ぶ 3: なでる '
OUT05 DC ' 1: とりあえず進む 2: 服を買ってあげる'
OUT06 DC ' 3: ティータイム  4: 銀行に行く   '
OUT07 DC ' 0: おうちに戻る            '
OUT00 DC ' 0: また明日              '
;--    ペット
OGOOD DC ' 『美味しい〜♪』           '
OHAPPY DC ' 『とっても楽しい!!』        '
OGREAT DC ' 『わーいv お腹も撫でて!』 '
OTHANK DC ' 『どうもありがとう♪ うれしい〜〜』 '
OTIRED DC ' 『ちょっと疲れちゃった。』      '
OBYE1 DC ' 『今日は遊んでくれてありがとう。   '
OBYE2 DC '          また明日遊んでね!』'
OSLEEP DC '            zzz..........'
;--    お金
MONEYB DS 5
MNLEN DC 5
IMONEY DC ' いくら持って行きますか?       '
;
LEN DC 40      ;文字数
LF DC '                    '
LFLEN DC 1
WORK DS 1
;--    データ保存設定
NM DS 14
PK DS 14
PN DS 14
PP DS 1
SLCT DS 1
;--    定数設定
OFF DC #000F
N00 DC #0030
N01 DC #0031
N02 DC #0032
N03 DC #0033
N04 DC #0034
N05 DC #0035
END
;*****************************************************
;-- お散歩サブルーチン
;*****************************************************
PWALK START
WASL LAD GR0,1
CPA GR3,GR0
JMI TIRED
OUT LF,LEN
OUT OSLCT,LEN     ;選択メニュー
OUT LF,LEN
OUT OUT05,LEN
OUT OUT06,LEN
OUT OUT07,LEN
IN SLCT,WORK
LD GR0,SLCT      ;選択値は?
CPL GR0,N01
JZE GO
CPL GR0,N02
JZE BUY
CPL GR0,N03
JZE TEA
CPL GR0,N04
JZE BNK
CPL GR0,N00
JZE MENU
OUT ERROR,LEN
JUMP WASL
BNK CALL WTDR     ;銀行ルーチンへ
JUMP WASL
;--    進む
GO LAD GR3,-2,GR3   ;体力-2
OUT LF,LEN
OUT OHAPPY,LEN
JUMP WASL
;--    服を買う
BUY OUT LF,LEN
OUT OBUY,LEN
OUT ODT2,LEN
IN SLCT,WORK
LD GR0,SLCT      ;選択値は?
CPL GR0,N01
JZE BUYOK
CPL GR0,N02
JZE WASL
OUT ERROR,LEN
OUT LF,LEN
JUMP BUY
BUYOK LD GR0,MONEYB
LAD GR1,10000
CPA GR0,GR1
JMI BUYNO
SUBL GR0,GR1
ST GR0,MONEYB
LAD GR3,-1,GR3    ;体力-1
OUT LF,LEN
OUT OTHANK,LEN
JUMP WASL
BUYNO OUT LF,LEN
OUT NOMONY,LEN    ;お金がない
OUT LF,LEN
JUMP WASL
;--    ティータイム
TEA OUT LF,LEN
OUT OTEA,LEN
OUT ODT2,LEN
IN SLCT,WORK
LD GR0,SLCT
CPL GR0,N01
JZE TEAOK
CPL GR0,N02
JZE WASL
OUT ERROR,LEN
OUT LF,LEN
JUMP TEA
TEAOK LD GR0,MONEYB
LAD GR1,700
CPA GR0,GR1
JMI TEANO
SUBL GR0,GR1
ST GR0,MONEYB
LAD GR3,1,GR3     ;体力+1
OUT LF,LEN
OUT OGOOD,LEN
JUMP WASL
TEANO OUT LF,LEN
OUT NOMONY,LEN    ;お金がない
OUT LF,LEN
JUMP WASL
RET
;
OBUY DC ' 服は10000円です。買いますか?     '
OTEA DC ' ケーキセットは700円です。食べますか? '
NOMONY DC ' 予算オーバーです!ツケはできませんヨ〜'
END
;*****************************************************
;-- 銀行サブルーチン
;*****************************************************
WTDR START
PUSH 0,GR1
OUT LF,LEN
OUT MSG,LEN
OUT MSG2,LEN
OUT LF,LEN
IN BANK,MNT
LAD GR0,0
LAD GR1,0
WTPL LD GR2,BANK,GR1 ;GR2に最上桁を
AND GR2,OFF     ;数値化
ADDL GR0,GR2
LAD GR1,1,GR1    ;GR1+1
CPL GR1,MNT     ;GR1と桁を比較
JZE WTEND
SLL GR0,1      ;2倍
ST GR0,WORKS
SLL GR0,2      ;8倍
ADDL GR0,WORKS    ;足して10倍
JUMP WTPL
WTEND LD GR1,MONEYB ;予算に足す
ADDL GR0,GR1
ST GR0,MONEYB
POP GR1
RET
MSG DC ' 銀行 : いらっしゃいませ。     '
MSG2 DC '      下ろす金額を入力して下さい。'
MNT DS 2
WORKS DS 5
BANK DS 5
END

 

< 一覧へもどる