Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
#!/usr/bin/env ruby
# coding: utf-8
# @th[0][X] シーンXにおいて移動しない登場物
# @th[1][X] シーンXにおいて移動する登場物
# @h[0] 持ち物
# @h[1] 体の大きさ(0…小さい,1…大きい)
# @co 各シーン・ブロックに受け渡す動詞,名詞の通し番号(動詞
# ナンバー×100+名詞ナンバー)
# @vrS[X] 動詞単語群
# @naS[0 か 1][X] 名詞単語群(0…移動しないもの,1…移動するもの)
# @fmS[X] メッセージ文章群
# @maS[X] シーンナンバーXにおいて,そこにあるものと同じ名前の
# ものがすでに使われているとき,それを無視するようにす
# るための変数。無視する変数は2桁ずつ順に入っている。
class Alice
def __debug(level, *str)
# level > 0 and puts(*str)
end
def val(str)
str.to_i
end
def len(str)
str.size
end
def leftS(str, len)
str[0, len]
end
def midS(str, pos, len)
str[pos - 1, len]
end
def chrS(chr)
chr == 4 and return("\x08") # カーソルを左に戻す
chr == 6 and return("\ec") # 画面をクリア
chr == 29 and return("\x08\x08") # カーソルを左に戻す
return(chr.chr)
end
def asc(str)
str.ord
end
def usr(adr)
adr == '$0F14' and print("\x07") # ビープ音を鳴らす
end
def color(c = nil)
print(c ? ["\033[30m", "\033[34m", "\033[31m", "\033[35m", "\033[32m", "\033[36m", "\033[33m", "\033[37m"][c] : "\033[39m")
end
def restore
@__dp = 0; @__data = nil
end
def read(data0)
@__data or (@__data = []; data0.chomp.gsub(/\n?\s*data\s+/, ',').split(',').each {|d| @__data << d })
return(@__data[@__dp += 1])
end
# 999 REM'** DEMO
def gosub_10550d(__data0, f120 = 0.120, sound = nil, n_color = nil)
__data = []; __data0.scan(/"([^"]+)"/) {|__d| __data << __d[0] }
@bS = '■' + chrS(4)
# @bS = "\033[33m♥\033[39m" + chrS(4)
loop {
@aS = __data.shift; @aS == '*' and break
(1..len(@aS)).each {|i|
sound and usr('$0F14')
midS(@aS, i, 1) == '/' and (puts(' '); sleep(f120 * 8); break)
n_color and color((n_color += 1) % 7 + 1)
print(s = midS(@aS, i, 1))
s.ord & 0xFFF8 == 0x2660 and print ' '
print(@bS)
sleep(f120)
}
}
n_color and color
end
def gosub_999
gosub_10550d(<<-999, 0.012, nil, -1)
data "♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦/"
data "♣♠♥♦♣♠♥♦♥ 不思議 の 国 の アリス ♦♣♠♥♦♣♠♥♦♣♠♥/"
data "♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦♣♠♥♦/","/","/","/","*"
999
gosub_10550d(<<-999, 0, nil)
data "=======================================/","*"
999
gosub_10550d(<<-999, 0.120, true)
data " Author -----------Lewes Carroll/"
data " Iidashippe ---------H.Hasimoto/"
data " Programmer ---------Akimasa Tako/"
data " Debbuger -----------Hirofumi Kume/"
data " Produced by --------arrosoft/"
data " Distribeted by -----Micro Cabin/"
data " Translated by ------Furutanian/","*"
999
gosub_10550d(<<-999, 0, true)
data "=======================================/","*"
999
gosub_10550d(<<-999, 0.120, true)
data "/","/","/","今日はとてもいいお天気です。/"
data "アリスはおねえさまと一緒に大きな木の下に座っていました。/"
data "おねえさまは難しい本を読んでいます。/"
data "アリスは雲を見たり風の音を聴いたりしていろいろなことを考えていました。/"
data "時々おねえさまの読んでいる本をのぞいてみました。/"
data "が、ちっとも面白くありません。/"
data "その時、向こうの丘の上を一匹のウサギが走っていくのが見えました。/"
data "最初、アリスはそれを見て何とも思わなかったのですが、そのウサギ"
data "がチョッキのポケットから時計を取り出してみて「大変だ、遅れ"
data "てしまう!」と叫んだので、アリスはちょっと変だと思いました。/"
data "何しろ、今までにアリスはチョッキのポケットから時計を出すウサギ"
data "を見たことがなかったのですから。/"
data "アリスは、そのウサギとお話がしたくなって、後を追って走り出しました。/"
data "ウサギは丘を越えてどんどん走ってゆき、ふいに見えなくなてしまいました。/"
data "アリスがウサギの消えたあたりへ走ってゆくと、そこには大きな穴が空いていました。/"
data "ウサギはこの穴に飛び込んだに違いないと思って、アリスは穴に飛び込みました。/"
data "穴はとても深くて、途中にはジャムの瓶や、ランプや、戸棚などが見えました。/"
data "あんまり長い間、落ち続けているので、アリスはとても眠くなってきました。/"
data "うとうととしているとドサッと地面に落ちました。/"
data "そこにはワラが敷いてあったのでケガは全然していませんでした。/"
data "あたりを見回すと、さっきのウサギが角を曲がってゆくのが"
data "見えたので、アリスはまた後を追って走り出しました。/"
data "角を曲がると、そこはとても広いホールでした....。/"
data " /","*"
999
gosub_10550d(<<-999, 0, true)
data "PUSH [F1] KEY!/"
data "Ready/","*"
999
$stdin.gets.chomp
gosub_10550d(<<-999, 0)
data "RUN","ALICE/","*"
999
end
# 1000 REM'** START
def goto_1000
@co = 0; @a = 0
gosub_8620
gosub_1970
goto_1220
end
# 1050 REM'** 10進-2進
def gosub_1060
@a = @h[0]
gosub_1070; return
end
def gosub_1070
@aS = ''
(0..26).each {|__b| b = 26 - __b
@a >= @ta[b] and (@a = @a - @ta[b]; @aS = @aS + '1'; next)
@aS = @aS + '0'
}
return
end
# 1130 REM'** LETTER
def gosub_1140
@bS = @aS
@aS = ''
(1..len(@bS)).each {|i|
@a = asc(midS(@bS, i, 1))
96 < @a && @a < 123 and @a = @a - 32
@aS = @aS + chrS(@a)
}
return
end
# 1220 REM'*** MAIN
def goto_1220
loop {
__debug(1, 'scene = %d' % @no)
puts
puts('[ ENTER COMMAND ]')
# gosub_10300
print('> '); @aS = $stdin.gets.chomp
puts
@aS == '' and next
gosub_1140
# 1290 REM'** 動詞,名詞
@a = 1
unless(@luS == 'J')
# 1320
loop {
midS(@aS, @a, 1) == ' ' and (@a = @a - 1; @i2S = midS(@aS, @a + 2, len(@aS) - @a - 1); break)
@a != len(@aS) and (@a = @a + 1; next)
@i2S = '' and break
}
@i1S = leftS(@aS, @a)
else
# 1380
end
__debug(1, '%s / %s' % [@i1S, @i2S])
# 1480
@c1 = 1
loop {
__debug(0, ' vr:%2d: %s' % [@c1, @vrS[@c1]])
@i1S == @vrS[@c1] and break
@c1 = @c1 + 1
@c1 < 27 and next
break
}
@c1 == 27 and (puts('それはできません。'); next)
__debug(1, 'vr:%2d: %s' % [@c1, @vrS[@c1]])
# 1530
(0..3).each {|i|
@ch[i] = val(midS(@maS[@no], 2 * i + 1, 2))
@ch[i] == 0 and @ch[i] == 99
}
# 1570
__goto1810 = false
begin
@a = 0
@fl = 0
@bt = 0
# 1600
loop {
__debug(0, ' na:%d:%2d: %s' % [@fl, @bt, @naS[0][@bt]])
if(@bt == @ch[@a])
@a = @a + 1
else
@i2S == @naS[0][@bt] and raise('1720') # 有効な名詞(移動しないもの)
end
@bt = @bt + 1
@bt < 27 and next
break
}
@fl = 1
@bt = 0
# 1660
loop {
__debug(0, ' na:%d:%2d: %s' % [@fl, @bt, @naS[1][@bt]])
@i2S == @naS[1][@bt] and raise('1720') # 有効な名詞(移動するもの)
@bt = @bt + 1
@bt < 15 and next
break
}
@i2S != '' and (puts(@i2S + ' ??'); next) # 知らない名詞
@co = @c1
# 1720
rescue
__debug(1, 'na:%d:%2d: %s' % [@fl, @bt, @naS[@fl][@bt]])
@co = @c1 * 100 + @bt + @fl * 27 # 動詞No. x 100 + 名詞No. + フラグ * 27
__debug(1, 'common co = %d' % @co)
@fl == 1 && @bt > 8 and (@fl = 3; __goto1810 = true) # 移動するもの
end
# 1740
unless(__goto1810)
@c1 > 5 and __goto1810 = true # 動詞No. > 5
end
unless(__goto1810)
# 1750
@h[15] == 0 && @c1 == 1 and (puts('何にも見えない。'); next)
# 1790
case(@c1)
when 1; gosub_1970 # look
when 2; gosub_2370 # take
when 3; gosub_2510 # throw
when 4; gosub_2620 # eat
when 5; gosub_2980 # inventory
else; raise('on gosub error.')
end
(@no != 5 || @co != 334) && (@no != 17 || @co != 230) and next
end
# 1810
@c1 == 19 and (gosub_9750; next)
@c1 == 20 and (gosub_9970; next)
@ol = @no
case(@no)
when 1; gosub_3100
when 2; gosub_3600
when 3; gosub_3860
when 4; gosub_4440
when 5; gosub_4740
when 6; gosub_4930
when 7; gosub_5120
when 8; gosub_5350
when 9; gosub_5460
when 10; gosub_5860
when 11; gosub_6050
when 12; gosub_6260
when 13; gosub_6480
when 14; gosub_6720
when 15; gosub_6820
when 16; gosub_7070
when 17; gosub_7180
when 18; gosub_7500
when 19; gosub_7740
when 20; gosub_8040
else; raise('on gosub error.')
end
@ol != @no and (gosub_10550(<<-1890); @co = 1; gosub_1970)
data "/","場所が変わりました。/","*"
1890
}
end
def gosub_1910
puts('OK.'); return
end
def gosub_1920
usr('$0F14'); puts('ダメです。'); return
end
def gosub_1930
usr('$0F14'); puts('既に開いています。'); return
end
def gosub_1940
usr('$0F14'); puts('鍵は開いています。'); return
end
def gosub_1950
usr('$0F14'); puts('鍵がかかっています。'); return
end
def gosub_1960
usr('$0F14'); puts('鍵がありません。'); return
end
# 1970 REM'** LOOK
def gosub_1970
@co > 1 and (gosub_2140; return)
puts; print(' ここは ' + @noS[@no] + ' で')
@e = 0
(0..1).each {|d|
@a = @th[d][@no]
gosub_1070
(1..27).each {|i|
midS(@aS, i, 1) == '0' and next
@e = @e + 1
@e > 1 and print(' と')
print(' ' + @naS[d][27 - i])
}
}
@e > 0 and (puts(' が見えます。'); return)
puts('す。')
return
end
# 2140 REM'* LOOK
def gosub_2140
unless(@fl == 0)
gosub_1060
midS(@aS, 27 - @bt, 1) == '1' and (gosub_2220; return)
end
@a = @th[@fl][@no]
gosub_1070
midS(@aS, 27 - @bt, 1) == '1' and (gosub_2230; return)
gosub_1920; return
end
def gosub_2220
puts('*** CARRYING ***')
gosub_2230; return
end
def gosub_2230
@b = val(leftS(@trS[@fl][@bt], 2))
puts(@fmS[@b] + ' ' + @naS[@fl][@bt] + ' です。')
@a = 0
loop {
@aS = midS(@trS[@fl][@bt], 3, 1)
@aS == '*' and break
@a = 1
@f = val(@aS)
@b = val(midS(@trS[@fl][@bt], 4, 2))
print(' ' + @naS[@f][@b] + ' と')
@th[@f][@no] = @th[@f][@no] + @ta[@b]
@trS[@fl][@bt] = leftS(@trS[@fl][@bt], 2) + midS(@trS[@fl][@bt], 6, len(@trS[@fl][@bt]) - 5)
}
@a == 1 and puts(chrS(29) + 'がありました。')
return
end
# 2370 REM'** TAKE
def gosub_2370
@no == 1 && @co == 232 && @h[1] == 0 && @h[20] == 0 and (gosub_1920; return)
@no == 3 && @co == 234 && @h[1] == 0 && @h[21] == 0 and (gosub_1920; return)
@fl == 0 and (usr('$0F14'); puts('それは持てません!'); return)
@a = @th[1][@no]
gosub_1070
midS(@aS, 27 - @bt, 1) == '0' and (gosub_1920; return)
gosub_1910
@th[1][@no] = @th[1][@no] - @ta[@bt]
@h[0] = @h[0] + @ta[@bt]
@no == 1 && @co == 232 and @h[20] = 1
@no == 3 && @co == 234 and @h[21] = 1
@co == 233 && @h[19] == 5 and @h[19] = 4
return
end
# 2510 REM'** THROW
def gosub_2510
@fl == 0 and (gosub_2600; return)
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (gosub_2600; return)
gosub_1910
@h[0] = @h[0] - @ta[@bt]
@th[1][@no] = @th[1][@no] + @ta[@bt]
@co == 329 and h[13] = 0
return
end
def gosub_2600
puts('持っていません。')
return
end
# 2620 REM'** EAT
def gosub_2620
@fl == 0 and (gosub_2680; return)
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (gosub_2680; return)
@bt == 6 and (gosub_2720; return)
gosub_2820; return
end
def gosub_2680
@a = @th[@fl][@no]
gosub_1070
midS(@aS, 27 - @bt, 1) == '0' and (gosub_1920; return)
gosub_2820; return
end
def gosub_2720
@h[19] == 5 and (gosub_2600; return)
@h[19] == 0 and (puts('もう全部食べてしまいました。'); return)
@h[19] = @h[19] - 1
@h[19] == 0 and @h[0] = @h[0] - 64
@h[10] == 0 and (puts('これはうまいよ。'); return)
print('呪文は '); @aS = $stdin.gets.chomp
@aS == 'ピピルマ' and (gosub_2840; return)
@aS == 'パパレホ' and (gosub_2880; return)
puts('おいしい。')
return
end
def gosub_2820
puts('まずい...')
return
end
# 2840 REM'*
def gosub_2840
@h[1] == 0 and (gosub_1910; @h[1] = 1; return)
puts('もう大きくなっています。')
return
end
# 2880 REM'*
def gosub_2880
@h[1] == 1 and (gosub_1910; @h[1] = 0; return)
gosub_10550(<<-2910)
data "「おーい! タコくん。アリスちゃんが突然いなくなってしまったぞ?」/"
data "「ちがうんだCPUくん。アリスちゃんは小さくなりすぎて"
data "キミの目に見えなくなっただけなんだ!」/"
data "「まるでミクロ決死隊だなー... /"
data "しかし見えなきゃゲームは続けられないなぁ....」/"
data "というわけで サヨーナラーァァァァッ..../","*"
2910
goto_10660
end
# 2980 REM'** INVENTORY
def gosub_2980
@h[0] == 0 and (puts('何も持っていません。'); return)
gosub_1060
print('あなたは')
@e = 0
(16..27).each {|i|
midS(@aS, i, 1) == '0' and next
@e = @e + 1; @e > 1 and print(' と')
print(' ' + @naS[1][27 - i])
}
puts(' を持っています。')
return
end
# 3100 REM'*** SCENE 1
def gosub_3100
@co == 7 and (puts('後には引き返せません。'); return)
@co == 938 and (gosub_3210; return)
@co == 1013 and (gosub_3310; return)
@co == 1304 || @co == 1404 and (gosub_3340; return)
@co == 1406 and (gosub_1960; return)
@co == 1413 and (gosub_3410; return)
@co == 1706 and (gosub_3450; return)
@co == 1713 and (gosub_3500; return)
gosub_1920; return
end
# 3200 REM'*
def gosub_3210
gosub_1060
midS(@aS, 27, 1) == '0' and (gosub_1920; return)
gosub_1910
gosub_10550(<<-3250)
data "キャーーーーー..../"
data "あなたはマイクロディスクぐらいの大きさになってしまい、"
data "ジュースの入った瓶もどこかに飛んでいってしまいました。/","*"
3250
@h[1] = 0
@h[0] = @h[0] - 1
return
end
# 3310 REM'*
def gosub_3310
@h[2] == 3 && @h[1] == 0 and (@no = 2; return)
gosub_1920; return
end
# 3340 REM'*
def gosub_3340
@h[2] != 0 and (gosub_1930; return)
gosub_1910
@h[2] = 1
puts('カーテンの陰に ' + @naS[0][22] + ' がありました。')
@th[0][1] = @th[0][1] + 8192
return
end
# 3410 REM'*
def gosub_3410
case(@h[2] + 1)
when 1; gosub_1920; return
when 2; gosub_1950; return
when 3; gosub_3430; return
when 4; gosub_1930; return
else; raise('on gosub error.')
end
end
def gosub_3430
@h[2] = 3
gosub_1910; return
end
# 3450 REM'*
def gosub_3450
gosub_1060
midS(@aS, 22, 1) == '0' and (gosub_1960; return)
puts('鍵が違うようです。')
return
end
# 3500 REM'*
def gosub_3500
case(@h[2] + 1)
when 1; gosub_1920; return
when 2; gosub_3520; return
when 3; gosub_1940; return
when 4; gosub_1930; return
else; raise('on gosub error.')
end
end
def gosub_3520
@h[2] == 2 and (gosub_1940; return)
gosub_1060
midS(@aS, 22, 1) == '0' and (gosub_1960; return)
gosub_1910
@h[2] = 2
puts('開いた途端に鍵が消えてしまいました。')
@h[0] = @h[0] - 32
return
end
# 3600 REM'*** SCENE 2
def gosub_3600
@co == 6 and (@no = 5; return)
@th[0][2] == 0 and (gosub_4710; return)
@co == 7 and (puts('通ってきたはずのドアが消えてしまって戻れません。'); return)
@co == 1008 && @h[3] == 1 && @h[1] == 0 and (@no = 3; return)
@co == 1416 and (gosub_3680; return)
@co == 1612 and (gosub_3720; return)
gosub_1920; return
end
# 3680 REM'*
def gosub_3680
@h[3] == 1 and (gosub_1930; return)
@h[3] = 1
gosub_1910; return
end
# 3720 REM'*
def gosub_3720
usr('$0F14')
gosub_10550(<<-3750)
data "「はーい こんにちわ! ウサギさん!」/"
data "するとウサギさん.../","*"
3750
@h[9] == 1 and (gosub_3830; return)
@h[9] = 1
gosub_10550(<<-3800)
data "「やあ いいところに来てくれた。実は煙突に何かが詰まって困っているんだ。"
data "何とかしてそれを取り除いてください。」と言って家の方を指差しています。/","*"
3800
return
end
def gosub_3830
gosub_10550(<<-3840)
data "「何度も話しかけないでくれ。私は忙しいのだ。」/","*"
3840
return
end
# 3860 REM'*** SCENE 3
def gosub_3860
@h[3] = 2
@co == 640 and (gosub_4270; return)
@co == 938 and (gosub_3940; return)
@co == 1139 and (gosub_4100; return)
@co == 1829 and (gosub_4210; return)
@co == 2103 and (gosub_4310; return)
gosub_1920; return
end
# 3940 REM'*
def gosub_3940
gosub_1060
midS(@aS, 27, 1) == '0' and (gosub_1920; return)
@h[1] == 1 and (gosub_4030; return)
gosub_10550(<<-3990)
data "「ややっ あの少女がいなくなってしまったぞ。/さてはあのジュースを飲んだな...」/"
data "というわけで あのジュースは小さくなる薬でした。/"
data "そしてあなたは小さくなりすぎて、消えてなくなってしまったのでした。/めでたし めでたし。","*"
3990
goto_10660
end
def gosub_4030
gosub_1910
@h[1] = 0
gosub_10550(<<-4060)
data "あなたは元の体の大きさに戻ることができました。/"
data "そのジュースの入った瓶は音もなく消えてしまいました。/","*"
4060
@h[0] = @h[0] - 1
return
end
# 4100 REM'*
def gosub_4100
gosub_1060
midS(@aS, 26, 1) == '0' and (gosub_1920; return)
@h[13] == 0 and (puts('涼しい...'); return)
gosub_1910
gosub_10550(<<-4160)
data "みるみるうちに体が大きくなって、部屋いっぱいになって、"
data "手袋もうちわもどこかへ消えてしまいました。/","*"
4160
@h[1] = 1
@h[0] = @h[0] - 6
return
end
# 4210 REM'*
def gosub_4210
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (gosub_1920; return)
@h[13] == 1 and (puts('もう入っています。'); return)
@h[13] = 1
gosub_1910; return
end
# 4270 REM'*
def gosub_4270
@h[1] == 1 and (gosub_1920; return)
puts('なぜか外へ出られません。')
return
end
# 4310 REM'*
def gosub_4310
@h[1] == 1 and (gosub_1920; return)
gosub_1060
midS(@aS, 20, 1) == '0' and (gosub_4380; return)
puts('いつの間にか家が空に浮かんでいます。')
@no = 4
return
end
def gosub_4380
@a = @th[1][3]
gosub_1070
@bS = '何か'
midS(@aS, 20, 1) == '1' and @bS = @naS[1][7]
puts('中に ' + @bS + ' が詰まっていて登れません。')
return
end
# 4440 REM'*** SCENE 4
def gosub_4440
@co == 2235 || @co == 1435 && @luS == 'E' and (gosub_4490; return)
@co == 1003 and (@no = 3; return)
@co == 23 and (gosub_4550; return)
gosub_1920; return
end
# 4490 REM'*
def gosub_4490
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (gosub_1920; return)
@h[14] == 1 and (gosub_1930; return)
@h[14] = 1
gosub_1910; return
end
# 4550 REM'*
def gosub_4550
gosub_1060
@h[14] == 1 && midS(@aS, 19, 1) == '1' and (gosub_4610; return)
gosub_4580
end
def gosub_4580
gosub_10550(<<-4590)
data "地面に落ちてケガをして動けなくなってしまいました。/","*"
4590
goto_10660
end
def gosub_4610
@no = 2
@noS[2] = 'ウサギの家のあったところ'
gosub_10550(<<-4640)
data "うまく降りることができました。/","/"
data "ウサギの家は飛んでいってしまいました。/"
data "ウサギも家を追いかけて、どこかへ行ってしまいました。/","/"
data "傘は閉じておきましょう。/","*"
4640
@h[14] = 0
@th[0][2] = 0
return
end
# 4710 REM'*
def gosub_4710
@co == 7 and (puts('戻れません。'); return)
@co == 6 and (@no = 5; gosub_1910; return)
end
# 4740 REM'*** SCENE 5
def gosub_4740
@co == 6 and (gosub_4800; return)
@co == 7 and (@no = 2; return)
@co == 334 and (gosub_4840; return)
@co == 2125 and (@no = 6; return) # BUG? goto 1860
gosub_1920; return
end
# 4800 REM'*
def gosub_4800
@h[4] == 1 and (@no = 7; return)
puts('大きな犬が尻尾を振って行く手に立っているので怖くて通れない。')
return
end
# 4840 REM'*
def gosub_4840
@a = @th[1][5]
gosub_1070
midS(@aS, 20, 1) == '0' || @h[4] == 1 and return
puts('大きな犬は棒切れをくわえてどこかへ行っちゃいました。')
@th[0][5] = @th[0][5] - 32
@th[1][5] = @th[1][5] - 128
@h[4] = 1
return
end
# 4930 REM'*** SCENE 6
def gosub_4930
@co == 25 and (puts('うまく降りられない。'); return)
@co == 2235 || @co == 1435 && @luS == 'E' and (gosub_5060; return)
@co == 23 and (gosub_4980; return)
gosub_1920; return
end
#TODO
# 4980 REM'*
def gosub_4980
gosub_1060
@h[14] == 0 && midS(@aS, 19, 1) == '0' and (gosub_4580; return)
puts('着地成功。')
@no = 5
puts('傘は閉じておきます。')
@h[14] = 0
return
end
# 5060 REM'*
def gosub_5060
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (gosub_1920; return)
@h[14] == 1 and (gosub_1930; return)
@h[14] = 1
gosub_1910; return
end
# 5120 REM'*** SCENE 7
def gosub_5120
@co == 6 and (@no = 8; return)
@co == 7 and (@no = 2; return)
@co == 1602 and (gosub_5170; return)
gosub_1920; return
end
# 5170 REM'*
def gosub_5170
usr('$0F14')
gosub_10550(<<-5200)
data "「ハロー! アオムシさん!」/","*"
5200
@h[10] == 1 and (@h[10] = 2; gosub_5300; return)
@h[10] == 2 and (gosub_1920; return)
gosub_10550(<<-5240)
data "するとマユを作りながら/"
data "「いいことを教えてあげよう」とアオムシさん。/"
data "「このキノコを食べて'ビビルマ'と唱えれば大きくなり"
data "'パパレホ'と唱えれば小さくなれる。」と教えてくれました。/","*"
5240
@h[10] = 1
return
end
# 5300 REM'*
def gosub_5300
gosub_10550(<<-5320)
data "アオムシさんはモスラになって飛んでいってしまいました。/","*"
5320
@th[0][7] = 0
return
end
# 5350 REM'*** SCENE 8
def gosub_5350
@co == 6 and (@no = 9; @h[15] = 1; return)
@co == 7 and (@no = 7; return)
@co == 1019 && @h[5] == 1 && @h[1] == 0 and (@no = 11; return)
@co == 1406 and (gosub_5420; return)
@co == 1600 and (puts('ひとりでブツブツ言っています。'); return)
gosub_1920; return
end
# 5420 REM'*
def gosub_5420
@h[5] == 1 and (gosub_1930; return)
@h[5] = 1
gosub_1910; return
end
# 5460 REM'*** SCENE 9
def gosub_5460
@co == 6 and (gosub_5530; return)
@co == 7 and (gosub_5820; return)
@co == 2123 and (gosub_5670; return)
@co == 2441 and (gosub_5720; return)
@co == 1441 and (gosub_5770; return)
gosub_1920; return
end
# 5530 REM'*
def gosub_5530
@h[15] == 2 and (@no = 12; return)
@h[15] == 1 and (puts('壁に遮られて進めません。'); return)
gosub_10550(<<-5570)
data "「あれっ? 通り抜けちゃったー。」/"
data "どうやらあれは暗示によって作り出された架空の壁だったようです。/"
data "「さすがワンダーランドだわ!"
data "この話を聞いたらSFファンのおねえさんがよろこぶでしょうねー、きっと。/","/"
data "などと考えているうちに、その壁はなくなってしまいました。/"
data "どうやら暗示が解けたようです。/","*"
5570
@th[0][9] = @th[0][9] - @ta[24]
@h[15] = 2
@no = 12
return
end
# 5670 REM'*
def gosub_5670
@h[15] == 0 and (puts('「目をつぶってなんて登れませんよ!」'); return)
puts('なんとか3番目の枝まで登ることができました。')
@no = 10
return
end
# 5720 REM'*
def gosub_5720
@h[15] == 2 and (gosub_1920; return)
@h[15] == 0 and (puts('既に閉じています。'); return)
@h[15] = 0
gosub_1910; return
end
# 5770 REM'*
def gosub_5770
@h[15] == 2 and (gosub_1920; return)
@h[15] == 1 and (gosub_1930; return)
@h[15] = 1
gosub_1910; return
end
# 5820 REM'*
def gosub_5820
@h[15] == 1 and (@no = 8; gosub_1910; return)
puts('周りの様子がよく見えないので動けません。')
return
end
# 5860 REM'*** SCENE 10
def gosub_5860
@h[1] == 1 and (gosub_1920; return)
@co == 23 and (gosub_5920; return)
@co == 2235 || @co == 1435 && @luS == 'E' and (gosub_6010; return)
@co == 25 and (puts('下を見たら怖くなって降りれない。'); return)
gosub_1920; return
end
# 5920 REM'*
def gosub_5920
gosub_1060
@h[14] == 0 || midS(@aS, 19, 1) == '0' and (gosub_4580; return)
gosub_10550(<<-5790)
data "またさっきのところに降りてきました。/"
data "傘を閉じておきます。/","*"
5790
@no = 9
@h[14] = 0
return
end
# 6010 REM'*
def gosub_6010
@h[14] == 1 and (gosub_1930; return)
@h[14] = 1
gosub_1910; return
end
# 6050 REM'*** SCENE 11
def gosub_6050
@co == 640 && @h[1] == 0 and (@no = 8; return)
@co == 1610 and (gosub_6090; return)
gosub_1920; return
end
# 6090 REM'*
def gosub_6090
usr('$0F14')
gosub_10550(<<-6120)
data "「あのー...」と控えめなアリスくんですが.../","*"
6120
@h[11] == 1 and (gosub_6230; return)
gosub_10550(<<-6150)
data "「あーうるさいうるさい。アンタこれ持ってトットとお行き!」"
data "と言って公爵夫人は赤ん坊をアリスに向かって放り投げました。/"
data "しばらくそこでうろうろしていたら、なんと赤ん坊がみるみる子豚へと、"
data "そしてついには斧に変わってしまいました。/"
data "不思議なことってあるもんですねぇ.../","*"
6150
@h[0] = @h[0] + 16
@h[11] = 1
return
end
def gosub_6230
gosub_10550(<<-6240)
data "ピーピーキャーキャーで何を言っているのかサッパリわかりません。/","*"
6240
return
end
# 6260 REM'*** SCENE 12
def gosub_6260
@co == 6 and (@no = 13; return)
@co == 7 and (@no = 9; return)
@co == 1537 || @co == 1601 and (gosub_6330; return)
@co == 1231 and (gosub_6350; return)
gosub_1920; return
end
# 6320 REM'*
def gosub_6330
puts('「ニャハハハハハハ!」ひょーきんな猫です。')
return
end
# 6350 REM'*
def gosub_6350
gosub_1060
midS(@aS, 27 - @bt, 1) == '0' and (puts('持っていません。'); return)
gosub_1910
usr('$0F14')
gosub_10550(<<-6410)
data "「これ、あげますぅ。」とアリスちゃん。/"
data "「どーもありがと。お礼にいいこと教えてやるよ。」と猫さん。/"
data "「三月ウサギのところに行くと面白いよ。この先の森を"
data "北,東,北,東,南の順に進むとそいつの家の前に出る。"
data "くれぐれも森の中で迷うなよ、二度と抜けられなくなるぞ。/","*"
6410
@h[0] = @h[0] - 16
return
end
# 6480 REM'*** SCENE 13
def gosub_6480
gosub_10550(<<-6500)
data "道が迷路のように入り組んでいるので、太陽を頼りに"
data "N(北),S(南),W(西),E(東)で進みます。/","*"
6500
@dS = 'NENES'; @cS = ''
# 6530
loop {
print('どっちの方向'); @aS = $stdin.gets.chomp
gosub_1140
unless(@aS == 'N' || @aS == 'S' || @aS == 'W' || @aS == 'E')
puts('???')
next
end
# 6580
@cS = @cS + @aS
@cS == @dS and break
len(@cS) < 59 and next
gosub_10550(<<-6620)
data "突然ですが、アリスが過労のため倒れてしまいました。/"
data "したがって、このゲームもジエンドになるのでした。/","*"
6620
goto_10660
}
# 6650
sleep(0.6001)
gosub_10550(<<-6670)
data "突然、体が光に包まれ、"
data "落ち葉が舞い上がり、周りの景色が流れていきます。/","*"
6670
sleep(0.6001)
@no = 14
return
end
# 6720 REM'*** SCENE 14
def gosub_6720
@co == 6 and (@no = 16; return)
@co == 7 and (puts('もう戻れません。'); return)
@co == 1020 && @h[6] == 1 && @h[1] == 0 and (@no = 15; return)
@co == 1417 and (gosub_6780; return)
gosub_1920; return
end
# 6780 REM'*
def gosub_6780
@h[6] == 1 and (gosub_1930; return)
@h[6] = 1
gosub_1910; return
end
# 6820 REM'*** SCENE 15
def gosub_6820
@co == 640 && @h[1] == 0 and (@no = 14; return)
@co == 836 and (gosub_6870; return)
@co == 1537 || @co == 1621 and (gosub_6950; return)
gosub_1920; return
end
# 6870 REM'*
def gosub_6870
@h[16] == 0 and (gosub_1920; return)
@h[17] == 0 and (gosub_6920; return)
gosub_6900; return
end
def gosub_6900
puts('誰かと熱心にしゃべっていて、話を聞いてくれません。')
return
end
def gosub_6920
puts("「それは '月がとっても青いから' なのだ。」")
@h[17] = 1
return
end
# 6950 REM'*
def gosub_6950
usr('$0F14')
gosub_10550(<<-6980)
data "「こんにちは! 文化しませんか?」/","*"
6980
@h[16] == 1 and (gosub_6900; return)
gosub_10550(<<-7010)
data "「あはははは! ひとつ私が面白いクイズを出そう。」とウサギさん。/"
data "「なぜ机は昼間にクシャミをするか? どうです、わからないでしょう。あはは!」/"
data "うーん! わけのわからない人... 違った、ウサギさんだこと。"
data "アリス、頭が痛くなっちゃう。/","*"
7010
@h[16] = 1
return
end
# 7070 REM'*** SCENE 16
def gosub_7070
@co == 6 and (puts('ここが行き止まりです '); return)
@co == 7 and (@no = 14; return)
@co == 1014 && @h[7] == 1 and (@no = 17; return)
@co == 1418 and (gosub_7130; return)
gosub_1920; return
end
# 7130 REM'*
def gosub_7130
@h[7] == 1 and (gosub_1930; return)
@h[1] == 0 and (puts('ドアが大きすぎて、開けることができません。'); return)
@h[7] = 1
gosub_1910; return
end
# 7180 REM'*** SCENE 17
def gosub_7180
@co == 230 and (gosub_7300; return)
@co == 640 and (@no = 16; return)
@co == 1022 && @h[8] == 3 && @h[1] == 0 and (@no = 18; return)
@co == 1330 and (gosub_7260; return)
@co == 1422 and (gosub_7400; return)
@co == 1722 and (gosub_7440; return)
gosub_1920; return
end
# 7260 REM'*
def gosub_7260
@a = @th[1][17]; gosub_1070
midS(@aS, 27 - @bt, 1) == '0' and (puts('そんなものは、ニャーだぎゃー。'); return)
gosub_1910
gosub_7300; return
end
def gosub_7300
@h[8] == 1 and return
gosub_10550(<<-7320)
data "あっ! こんなところに ","*"
7320
print(@naS[0][22])
gosub_10550(<<-7350)
data " があるぅー!!/"
data " しかし、何でこんなところにドアがあるんでしょーねー! アリス、頭が痛ぁーいの!/","*"
7350
@h[8] = 1
@th[0][17] = @th[0][17] + 4194304
return
end
# 7400 REM'*
def gosub_7400
case(@h[8] + 1)
when 1; gosub_1920; return
when 2; gosub_1950; return
when 3; gosub_7420; return
when 4; gosub_1930; return
else; raise('on gosub error.')
end
end
def gosub_7420
@h[8] = 3
gosub_1910; return
end
# 7440 REM'*
def gosub_7440
case(@h[8] + 1)
when 1; gosub_1920; return
when 2; gosub_7460; return
when 3; gosub_1940; return
when 4; gosub_1930; return
else; raise('on gosub error.')
end
end
def gosub_7460
gosub_1060
midS(@aS, 22, 1) == '0' and (gosub_1960; return)
@h[8] = 2
gosub_1910; return
end
# 7500 REM'*** SCENE 18
def gosub_7500
@co == 1626 and (gosub_7560; return)
@co == 2626 || @h[18] == 1 and (gosub_7650; return)
@co == 6 and (puts('どこへ行くのかわからない。'); return)
@co == 7 and (puts('どこからきたのか忘れてしまいました。'); return)
gosub_1920; return
end
# 7560 REM'*
def gosub_7560
@h[18] == 1 and (puts('スミを吐きかけられました。'); return)
gosub_10550(<<-7590)
data "タ コ:「もうかりまっか?」/"
data "アリス:「ま、まぁ、ぼちぼちですぅ。あんさんとこは、どないですか?」/"
data "タ コ:「ソフトの売上がイマイチで... 宝ビルアドベンチャーもよろしく。/"
data " などといいながら、タコは歩き出しました。/","*"
7590
@h[18] = 1
return
end
# 7650 REM'*
def gosub_7650
gosub_10550(<<-7670)
data " タコは、どんどん歩いてゆきます。/"
data "遅れないように急ぎ足で付いて行きます。/"
data "気がつくと、いつの間にか森の外に出ていました。/"
data "辺り一面のお花畑で、タコはどこかに行ってしまいました。/","*"
7670
puts
@no = 19
return
end
# 7740 REM'*** SCENE 19
def gosub_7740
@co == 6 and (gosub_1910; puts('あれっ! さっきと同じ場所だ!!'); return)
@co == 1537 || @co == 1609 || @co == 1611 and (gosub_7780; return)
gosub_1920; return
end
# 7780 REM'*
def gosub_7780
@h[1] == 0 and (gosub_8020; return)
gosub_10550(<<-7810)
data "「こ、こんにちは...あははっ」アリスちゃん、なぜか上がっています。/","*"
7810
@h[12] == 1 and (gosub_10550(<<-7830); return)
data "もう、相手にしてくれませんです。悲しい..../","*"
7830
@h[12] = 1
gosub_10550(<<-7860)
data "「うーん! 見かけない顔だなー」と王様。「キミは何ていう名前だ?」/"
data "なんて聞かれています。ここは答えておいたほうがよさそうですよ?/","*"
7860
print('名前は '); @aS = $stdin.gets.chomp
gosub_1140
sleep(0.2000)
unless(@luS == 'J' && @aS == 'アリス' || @aS == 'ALICE')
gosub_10550(<<-7930)
data "「あっ、そういえばそうだったな。近頃、記憶力が落ちてなー! あっはっは!!」/"
data "な、なんと! 誰かと間違えられてしまいました。/","*"
7930
return
else
gosub_10550(<<-7970)
data "「うーん! そんなまともな名前の者は知らないなー。ちょっと一緒に来たまえ。」"
data "といって、引っ張られていきました。この王様、ロリコンでないでしょーねー..../","*"
7970
@no = 20
return
end
end
def gosub_8020
puts('体が小さいので、ぜーんぜん気がつかないようです。')
end
# 8040 REM'*** SCENE 20
def gosub_8040
@co != 1609 and (gosub_1920; return)
gosub_10550(<<-8070)
data "「....ほほう、そうすると、おまえはこの国の住民ではないのだな。」/"
data "「ええ、そうなの。ウサギさんを追いかけてきたら、いつの間にかここへ来てしまったんです。どうやったら"
data " お家へ帰れるのか教えてくれないかしら。"
data "お茶の時間に遅れるとおかあさまに叱られちゃう。」/"
data "「うーん、ワシにはよくわからんが、ワシのところには"
data " ものをよく知っている者がいるから、そいつに聞いてみよう。"
data "おい OTOMIHSAH を呼んでこい。」/"
data "「お呼びでしょうか。」/"
data "「この娘が家に帰るには、どうしたらよいのか教えてやってくれ。」/"
data "「それでは 'なぜ、机は昼間にクシャミをするか'。"
data "このなぞなぞに答えられたら、おまえの住んでいた世界へ帰る道を教えてやろう。」/","*"
8070
print('答えは '); @aS = $stdin.gets.chomp
@bS = ''
(1..len(@aS)).each {|i|
midS(@aS, i, 1) != ' ' and @bS = @bS + midS(@aS, i, 1)
}
unless(@bS == '月がとっても青いから')
gosub_10550(<<-8250)
data "「残念でした。もう知らない。」/"
data "と、いうわけで、アリスちゃんは家へ帰れなくなってしまい、それを見た王様は"
data "かわいそうに思って、アリスをお城のパン焼きにしてくれました。/"
data " もともとアリスはパンを焼くのが好きだったので、パンを焼きながら幸せに暮らしました。/"
data "木の葉の話し声が聞こえるような寂しい夜に、アリスはおかあさまやおねえさまの"
data "ことを思い出して、そっと涙を流すのでした。/","*"
8250
goto_10660
else
gosub_10550(<<-8330)
data "「大当たり! それではキミの家の前まで送って行ってあげよう。こちらへ来なさい。」/"
data "アリスはその OTOMIHSAH に付いてゆきました。すると突然白い布のような"
data "ものが被さってきました。OTOMIHSAH はどんどん先へと行ってしまうので"
data "「待ってーー!」呼んだのですが、聞こえないようです。"
data "だんだん周りの景色が薄れてゆくように感じました。/","*"
8330
puts
goto_final
end
end
# 8390 REM'*** FINAL
def goto_final
sleep(0.8201)
gosub_10550(<<-8420)
data " アリスは土手の上でおねえさんのひざに頭を乗せて寝ていた自分に"
data "気が付きました。おねえさんはアリスの髪の毛を優しくなでていました。/"
data "「起きなさい、アリス!」おねえさんが、耳元で囁きます。「本当によく眠ったわねぇ!」/"
data "「あ、おねえさん。私、とってもおかしな夢を見たの! "
data "ウサギさんがいて、王様や、女王様がいて....","/"
data " アリスはそう言って、おねえさんに思い出せるだけ、精一杯、今までに"
data " 体験した彼女の不思議な冒険の話をして聞かせたのです。","/"
data " アリスが話し終わるとおねえさんは彼女にキスして言いました。/"
data "「本当に不思議な夢だったわね、でも、もう急いでお茶に行きなさい。"
data "もう、遅く....」/"
data " そこで、おねえさんは言葉を失いました。"
data " アリスは、そのおねえさんの引きつった顔を見て、思わず後ろを振り返りました。/"
data "なんとそこには、大きな白クジラがこちらを向いて手を振っているでは"
data "ありませんか!! そしてゆっくりと口を開いてこう言いました。/","/"
data "「一緒に散歩に出かけませんか?」/","*"
8420
puts
sleep(0.6001)
gosub_10550(<<-8600)
data "今度はあなたが ADVENTURE を作る番ですよ!!","*"
8600
exit
end
# 8620 REM'*** INIT
def gosub_8620
print(chrS(6))
@naS = [[], []]; @vrS = []; @maS = []; @ch = []; @ta = []; @h = []
@trS = [[], []]; @fmS = []; @th = [[], []]; @noS = []; @aS = []
puts; puts('(1)日本語(カタカナ) (2)英語')
puts; puts(' 1 または 2 の数字を押してください。')
puts; print(' ')
@aS = $stdin.gets.chomp
@luS = 'E'; puts('英語 ***この移植版は英語のみ対応です***'); sleep(1)
restore; (1..26).each {|i|
@vrS[i] = read(<<-8780)
data LOOK,TAKE,THROW,EAT,INVENTORY,GO,BACK,ASK,DRINK
data ENTER,FAN,GIVE,MOVE,OPEN,SAY,TALK,UNLOCK,WEAR
data SAVE,LOAD,CLIMB,OPEN,JUMP,CLOSE,DOWN,FOLLOW
8780
}
restore; (0..26).each {|i|
@naS[0][i] = read(<<-8840)
data BUTLER,CAT,CATAPILLAR,CHIMNEY,CURTAIN,DOG,DOOR,DRESSER,HOUSE
data KING,MARCHIONESS,QUEEN,RABBIT,SMALL DOOR,STORE,TABLE
data DOOR,DOOR,DOOR,HOUSE,HOUSE,RABBIT,SMALL DOOR,TREE,WALL
data TREE,TAKO
8840
}
restore; (0..14).each {|i|
@naS[1][i] = read(<<-8920)
data BOTTLE,FAN,GLOVE,HAT,HATCHET,KEY,MUSHROOM,STICK,PARASOL
data ANSWER,HELLO,JUICE,MYSELF,OUT,EYE
8920
}
restore; (0..35).each {|i|
@fmS[i] = read(<<-9160)
data 半分魚の格好をした,木に登って座っているニヤけ顔の
data まるで橋本さんのような,赤いレンガ造りの,小さなスカイブルーの
data 真っ白な丸っこい,木でできた頑丈そうな,少し大きいくらいの
data 洒落た小さな,たくさんの家来を引き連れた
data ヒステリックでデビルクイーンのような,背が高くて美しい
data トンボメガネをかけ懐中時計を持った,5インチディスケットぐらいの
data どうやら帽子屋のような,美しく透き通ったガラスの,洒落た造りの
data 古風な,半円形をした,立派な造りをした
data ウサギの耳のような煙突の立っている,三月ウサギと呼ばれている
data 見たことのあるような,高いもみの,どこまでも続く銀色の,太い枝の,タコの
data ラベルに「Drink_me\!」と書いてあるジュースの入った
data HUDSONうちわ(知る人ぞ知る)に似た,片方だけのキッドの
data ウサギ用に穴の空いた,元は赤ん坊の姿をしていた不思議な,金色の
data 松茸にそっくりな,ミンキーステッキにそっくりな,白い
9160
}
restore; (0..26).each {|i|
@trS[0][i] = read(<<-9330)
data 00*,01*,02*,03107*,04*,05*,06*,07100102*,08*,09*,10*,11*
data 12*,13*,14*,15100105*,16*,17*,18105*,19*,20*,21*,22*
data 23*,24*,25*,26*
9330
}
restore; (0..9).each {|i|
@trS[1][i] = read(<<-9390)
data 27*,28*,29*,30*,31*,32*,33*,34*,35*,36*
9390
}
restore; (1..20).each {|i|
data9430 = <<-9430
data 32848,0,69888,0,136,2,8,0,33554464,0,0,256,4,64
data 524353,0,25165824,0,0,0,1024,0,2,0,0,0,1179648,0
data 2097152,0,278528,0,0,8,67108864,0,2560,0,2560,0
9430
@th[0][i] = read(data9430).to_i
@th[1][i] = read(data9430).to_i
}
restore; (1..20).each {|i|
@noS[i] = read(<<-9490)
data 広いホール,ウサギの家の前,ウサギの家の中,ウサギの家の屋根の上
data 森の中,木の上,森の少し開けたところ
data 森を出たところにある公爵夫人の家の前,湖のほとり
data 湖のほとりにある木の上,鍋やフライパンの飛び交う家の中
data シャーウッドの森の入り口,うっそうとした森の中
data 三月ウサギの家の前,お茶会の最中の三月ウサギの家の中
data 大きな切り株の形をした帽子屋の前,帽子屋の店内
data タコツボの中,きれいなお花がたくさん咲いているお花畑
data 立派な宮殿の中
9490
}
restore; (1..20).each {|i|
@maS[i] = read(<<-9610)
data 0,06,0,0,23,0,0,08,0,0,0,0,0,06081619,12,061617,13,0,0,0
9610
}
restore; (0..26).each {|i|
@ta[i] = read(<<-9650).to_i
data 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384
data 32768,65536,131072,262144,524288,1048576,2097152,4194304
data 8388608,16777216,33554432,67108864
9650
}
@no = 1
@ch[4] = 99
@h = Array.new(22, 0)
@h[1] = 1
@h[15] = 1
@h[19] = 5
print(chrS(6))
return
end
# 9750 REM'*** SAVE
def gosub_9750
puts; puts('今からゲームの途中経過を SAVE します。')
# REM'
puts; puts('何かキーを押すと SAVE が始まります。')
@aS = $stdin.gets.chomp
open('ALICE_DATA_%s' % @aS, 'w') {|fh|
puts; puts('ただいま SAVE 中です。')
(1..20).each {|i| fh.puts(@th[0][i]) }
(1..20).each {|i| fh.puts(@th[1][i]) }
(0..26).each {|i| fh.puts(@trS[0][i]) }
(0..21).each {|i| fh.puts(@h[i]) }
fh.puts(@no)
}
# REM'
puts; puts('終了しました。'); puts
@co = 1; gosub_1970
return
end
# 997 REM'*** LOAD
def gosub_9970
puts; puts('今からゲームのデータを LOAD します。')
# REM'
puts; puts('何かキーを押すと LOAD が始まります。')
@aS = $stdin.gets.chomp
open('ALICE_DATA_%s' % @aS) {|fh|
puts; puts('ただいま LOAD 中です。')
(1..20).each {|i| @th[0][i] = fh.gets.chomp.to_i }
(1..20).each {|i| @th[1][i] = fh.gets.chomp.to_i }
(0..26).each {|i| @trS[0][i] = fh.gets.chomp }
(0..21).each {|i| @h[i] = fh.gets.chomp.to_i }
@no = fh.gets.chomp.to_i
}
# REM'
puts; puts('終了しました。'); puts
@co = 1; gosub_1970
return
end
# 10300 REM *** INPUT
# 10550 REM'** CRT
def gosub_10550(__data0, f120 = 0.120)
__data = []; __data0.scan(/"([^"]+)"/) {|__d| __data << __d[0] }
@bS = '♥' + chrS(4)
loop {
@aS = __data.shift; @aS == '*' and return
(1..len(@aS)).each {|i|
if(midS(@aS, i, 1) == '/')
puts(' ')
else
print(midS(@aS, i, 1))
print(@bS)
end
sleep(f120)
}
}
end
# 10660 REM'** END
def goto_10660
puts
puts
usr('$0F14')
gosub_10550(<<-10710)
data "ゲームオーバーです。もう一度するときは RUN してください。/","*"
10710
exit
end
end
adventure = Alice.new
ARGV[0] =~ /demo/i and adventure.gosub_999
adventure.goto_1000
__END__