From ef4e29f7c2a1d883b88880b426c966cc6cf665f3 Mon Sep 17 00:00:00 2001 From: Aethor Date: Mon, 18 Jun 2018 17:49:15 +0200 Subject: [PATCH] Documentation and minor enhancements of scenario generation script --- Scripts/generate.pl | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Scripts/generate.pl b/Scripts/generate.pl index 57c825e..4738112 100755 --- a/Scripts/generate.pl +++ b/Scripts/generate.pl @@ -1,15 +1,28 @@ #!/bin/perl +# --- Documentation --- +# Syntax : ./generate.pl agents_number [floor_number] +# agents_number : can specify a number ranging from 2 to 500 ( upgradable by upgrading database ). number of visitors and residents are evenly splitted. +# floor_number : number of floor in building ( not counting floor 0 ), ranging from 1 to whatever number is too big for perl. By default, number of floor is 25. +# the scripts will generate two files : visitors.txt and residents.txt +# visitors.txt syntax : each line is : visitor_name;resident_name\n +# residents.txt syntax : each line is : resident_name;resident_floor;destination_floor\n +# resident_floor is ranging from 1 to floor_number ( implying residents cant live at floor 0 ), while destination_floor is ranging from 0 to floor_number + +# written by Arthur Amalvy +# last modification : 18/06/18 + use strict; use warnings; use List::Util qw/shuffle/; -die "Usage : generate.pl agents_number [floor_number]\nagents number range from 2 to 500\n" if @ARGV == 0; +die "Usage : generate.pl agents_number [floor_number]\nagents number range from 2 to 500\nfloor number range from 1 to +inf\n" if @ARGV == 0; my $total_nb = $ARGV[0]; die "Error : stupid amount of agents ($total_nb)\n" if $total_nb < 2; my $visitors_nb = int($total_nb / 2); my $residents_nb = $total_nb - $visitors_nb; -my $floor_number = @ARGV > 2 ? $ARGV[1] : 25; +my $floor_number = @ARGV > 1 ? $ARGV[1] : 25; +die "Error : stupid floor number ($floor_number)\n" if $floor_number < 1; my $visitors_output_file_name = "visitors.txt"; my $residents_output_file_name = "residents.txt"; @@ -49,8 +62,8 @@ for(my $i = 0; $i < $visitors_nb; $i += 1){ for(my $i = 0; $i < $residents_nb; $i += 1){ print $residents_output_file $residents[$i] . ";" . - (int(rand(25)) + 1) . ";" . - (int(rand(25 + 1))) . "\n"; + (int(rand($floor_number)) + 1) . ";" . + (int(rand($floor_number + 1))) . "\n"; } close $visitors_db_file;