"tofu.vvs":
//---------------------------------------------------------------------------- // // イスカンダルのトーフ屋ゲーム // Version 1.0.1(ViViScript 版) // Copyright (C) 1978 - 1998 by Nobuhide Tsuda // //---------------------------------------------------------------------------- function max(a, b) { return a >= b ? a : b; } function min(a, b) { return a <= b ? a : b; } function calc(comp, hare, kumori, ame) { return min(comp / 40, hare >= 50 ? 500 : ame > 30 ? 100 : 300); } function printShojikin(name, gold) { console.write(" " + name + format(" %6d 円 ", gold)); var g = ""; for(var i=1000;i<=gold;i+=1000) g += "■"; for(;i<=30000;i+=1000) g += "□"; console.writeln(g); } function main() { srand(); console.open(); console.writeln("イスカンダルのトーフ屋ゲーム(ViViScript 版)"); console.writeln("Copyright (c) 1978 - 1998 by Nobuhide Tsuda\n"); console.write("ルール説明しますか?[y/n]"); var res = console.input(); if( res.charAt(0) == 'y' || res.charAt(0) == 'Y' ) { for(;;) { console.writeln(""); console.writeln("ここはイスカンダル星。あなたはここでトーフ屋を経営し、"); console.writeln("地球への帰還費用を作り出さなくてはいけません。"); console.writeln("でもお向かいには、コンピュータが経営するトーフ屋があります。。。\n"); console.writeln("トーフの原価は1個40円、販売価格は50円です。"); console.writeln("1日に売れる個数は天候に左右されます。"); console.writeln("晴れると500個、くもりだと300個、雨のときは100個まで売れます。"); console.writeln("トーフは日持ちしないので、売れ残った分はすべて廃棄します。"); console.writeln("そこで、次の日の天気予報をよく見て、何個作るか決心してください。"); console.writeln("所持金5千円からはじめて早く3万円を超えた方が勝ちです。"); console.writeln(""); console.writeln("いいですか?[y/n]"); res = console.input(); if( res.charAt(0) != 'n' && res.charAt(0) != 'N' ) break; } } for(;;) { var player = 5000; var comp = 5000; for(;;) { console.writeln("\n所持金:"); printShojikin("あなた", player); printShojikin("わたし", comp); if( player >= 30000 || comp >= 30000 ) break; var limit = player / 40; var prob1 = rand(100); var prob2 = rand(100); var hare = 100 - max(prob1, prob2); var ame = min(prob1, prob2); var kumori = 100 - hare - ame; console.writeln("\n明日の天気予報: 晴れ " + hare + "% くもり " + kumori + "% 雨 " + ame + "%"); var g = ""; for(var i=25;i<=hare*10;i+=25) g += "◎"; for(;i<=(hare+kumori)*10;i+=25) g += "・"; for(;i<=1000;i+=25) g += "●"; console.writeln(g); console.write("\nトーフを何個作りますか?(1〜" + limit + ")"); for(;;) { var pn = console.input().toInteger(); if( pn > 0 && pn <= limit ) break; } var cn = calc(comp, hare, kumori, ame); console.writeln("わたしは " + cn + "個 作ります。\n"); sleep(500); console.writeln("***** 次の日 *****"); var r = rand(100); var tenki, sold; if( r <= ame ) { tenki = " 雨 (;_;) "; sold = 100; } else if( r <= ame + kumori ) { tenki = " くもり (~_~) "; sold = 300; } else { tenki = " 晴れ \(^o^)/ "; sold = 500; } console.write("今日の天気は"); for(i=0;i<3;++i) { sleep(250); console.write("."); } sleep(250); console.writeln(tenki + " です。"); player += min(sold, pn) * 50 - pn * 40; comp += min(sold, cn) * 50 - cn * 40; sleep(500); } if( player > comp ) console.writeln("\nあなたの勝ちです。"); else if( player == comp ) console.writeln("\n引き分けです。"); else console.writeln("\nコンピュータの勝ちです。"); console.write("\nplay again ? [y/n]"); res = console.input(); if( res.charAt(0) == 'n' || res.charAt(0) == 'N' ) break; } }