|
|
|
@ -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';
|
|
|
|
|
print OUTPUT "Это тихая деревушка в волшебной стране ".$country_names[rand @country_names].".";
|
|
|
|
|
$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 ($dice = 1){
|
|
|
|
|
$setting = 'horror';
|
|
|
|
|
print OUTPUT "Это обычная тихая деревушка на самом отшибе цивилизации. Но в ней начали происходить странные вещи.";
|
|
|
|
|
elsif ($setting eq 'fantasy'){
|
|
|
|
|
@country_names = ('Нарния', 'Варчения', 'Эрафия', 'Неридел');
|
|
|
|
|
print OUTPUT "Это тихая деревушка в волшебной стране ".$country_names[rand @country_names].".";
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|