From 484a203da61395ad972eb4c55664fa671bb82029 Mon Sep 17 00:00:00 2001 From: Alexander Yakovlev Date: Tue, 14 Sep 2010 00:31:14 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B0=D0=BB=D0=B5=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make.pl | 56 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/make.pl b/make.pl index f8b365d..aba08ca 100755 --- a/make.pl +++ b/make.pl @@ -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; +}