Далее.

This commit is contained in:
Alexander Yakovlev 2010-09-14 00:31:14 +07:00
parent 860c2cb53d
commit 484a203da6
1 changed files with 39 additions and 17 deletions

56
make.pl
View File

@ -1,4 +1,5 @@
#!/usr/bin/perl
$roles = 10;
open (OUTPUT,">","Game.tex");
print OUTPUT q{\documentclass[oneside,a4paper,12pt]{memoir}
\usepackage[utf8]{inputenc}
@ -12,34 +13,55 @@ print OUTPUT q{\documentclass[oneside,a4paper,12pt]{memoir}
\title{Универсальная игра}
\author{Александр Яковлев}
\maketitle
\tableofcontents
\bigskip
Эта игра генерируется случайно. Вы задаёте необходимое количество игроков -- и получаете готовый сценарий. Уникальный сценарий.
\chapter{Предыстория}
\chapter*{Предыстория}
};
$dice = int(rand(10));
@settings = ('fantasy','horror','normal');
@town_names = ("Майские Раки","Дурдомово",'Сычургино','Марусяно');
@country_names = ('Нарния', 'Варчения', 'Эрафия', 'Неридел');
print OUTPUT "Игра проходит в деревне ".$town_names[rand @town_names].". ";
if ($dice = 0){
$setting = 'fantasy';
$dice = int(rand(10));
$setting = $settings[rand @settings];
if ($setting eq 'horror'){
print OUTPUT "Это обычная тихая деревушка на самом отшибе цивилизации. Но в ней начали происходить странные вещи. ";
@quests = ('werewolf','lost_kids');
for ($i=0;$i<2;$i++){ #генерируем 3 общих квеста
eval('$'.spoink(@quests)." = true;");
}
if ($werewolf){print OUTPUT 'Ходят слухи, что в округе завёлся оборотень.';}
if ($lost_kids){print OUTPUT 'Недавно начали исчезать дети.';}
}
elsif ($setting eq 'fantasy'){
@country_names = ('Нарния', 'Варчения', 'Эрафия', 'Неридел');
print OUTPUT "Это тихая деревушка в волшебной стране ".$country_names[rand @country_names].".";
}
elsif ($dice = 1){
$setting = 'horror';
print OUTPUT "Это обычная тихая деревушка на самом отшибе цивилизации. Но в ней начали происходить странные вещи.";
}
else{
$setting = 'normal';
elsif ($setting eq 'normal'){
print OUTPUT 'Это обычная деревня, каких много.';
}
$dice = int(rand(10));
if ($setting eq 'horror'){
for ($i=0;$i<3;$i++){ #генерируем 3 общих квеста
if ($dice = 0){
$werewolf = true;
print OUTPUT 'Ходят слухи, что в округе завёлся оборотень.';
@men_names = ('Марк','Антон','Антуан','Луис','Лука');
@women_names = ('Луиза','Люси','Лора','Лариса','Алиса','Марта');
@surnames = ('Колеватов','Катар','Принтеров');
for ($i=0;$i<$roles;$i++){
if (rand() > 0.5) {$sex = 'man';} else {$sex = 'woman'};
if ($sex eq 'man'){
$name = @men_names[rand @men_names];
$surname = @surnames[rand @surnames];
}
else{
$name = @women_names[rand @women_names];
$surname = @surnames[rand @surnames] . "а";
}
print OUTPUT '\chapter{'.$name.' '.$surname."}\n";
}
print OUTPUT '\end{document}';
close OUTPUT;
system "pdflatex Game.tex";
system "pdflatex Game.tex";
sub spoink(@array){
$i = rand @_;
$return = @_[$i];
splice(@_,$i,$i);
return $return;
}