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