LINUX.ORG.RU

История изменений

Исправление gh0stwizard, (текущая версия) :

Один из вариантов без использования функции:

#!/usr/bin/perl

use strict;
use warnings;

use utf8;
use open qw(:std :utf8);

my $intro = "Вы прибыли к Перевалу Смерти. У вас есть выбор - прямо сейчас пойти в Элеонор и спасти больше жителей (что даст увеличенное повышение авторитета в Люране, но при этом будут потеряны дружеские отношения с Охотником), либо дождаться Охотника, не успев спасти некоторое количество жизней (из-за этого повышение авторитета будет несколько меньшим, но зато Охотник останется с вами).\nВыбирайте.\n1 - пойти в Элеонор.\n2 - дождаться прибытия Охотника.\n";

print $intro;

while (my $sm = <STDIN>) {
  if ($sm == 1) {
	print "Отправляемся в Элеонор, покараем банду разбойников!\n";
	sleep 1;
	&battle;
  } elsif ($sm == 2) {
	print "Ждём Охотника...\n";
	sleep 2;
	&hunter;
  } else {
	print $intro;
  }
}

sub hunter {
  print "Вы встретили охотника\n";
  exit 0;
}

sub battle {
  print "Начало битвы\n";
  exit 0;
}

Вариант через do, если смущает вызов print вначале:

#!/usr/bin/perl

use strict;
use warnings;

use utf8;
use open qw(:std :utf8);

my $intro = "Вы прибыли к Перевалу Смерти. У вас есть выбор - прямо сейчас пойти в Элеонор и спасти больше жителей (что даст увеличенное повышение авторитета в Люране, но при этом будут потеряны дружеские отношения с Охотником), либо дождаться Охотника, не успев спасти некоторое количество жизней (из-за этого повышение авторитета будет несколько меньшим, но зато Охотник останется с вами).\nВыбирайте.\n1 - пойти в Элеонор.\n2 - дождаться прибытия Охотника.\n";
my $sm = 0;

do {
  if ($sm == 1) {
	print "Отправляемся в Элеонор, покараем банду разбойников!\n";
	sleep 1;
	&battle;
  } elsif ($sm == 2) {
	print "Ждём Охотника...\n";
	sleep 2;
	&hunter;
  } else {
	print $intro;
  }
} while ($sm = <STDIN>);

sub hunter {
  print "Вы встретили охотника\n";
  exit 0;
}

sub battle {
  print "Начало битвы\n";
  exit 0;
}

Исправление gh0stwizard, :

Один из вариант без использования функции:

#!/usr/bin/perl

use strict;
use warnings;

use utf8;
use open qw(:std :utf8);

my $intro = "Вы прибыли к Перевалу Смерти. У вас есть выбор - прямо сейчас пойти в Элеонор и спасти больше жителей (что даст увеличенное повышение авторитета в Люране, но при этом будут потеряны дружеские отношения с Охотником), либо дождаться Охотника, не успев спасти некоторое количество жизней (из-за этого повышение авторитета будет несколько меньшим, но зато Охотник останется с вами).\nВыбирайте.\n1 - пойти в Элеонор.\n2 - дождаться прибытия Охотника.\n";

print $intro;

while (my $sm = <STDIN>) {
  if ($sm == 1) {
	print "Отправляемся в Элеонор, покараем банду разбойников!\n";
	sleep 1;
	&battle;
  } elsif ($sm == 2) {
	print "Ждём Охотника...\n";
	sleep 2;
	&hunter;
  } else {
	print $intro;
  }
}

sub hunter {
  print "Вы встретили охотника\n";
  exit 0;
}

sub battle {
  print "Начало битвы\n";
  exit 0;
}

Исходная версия gh0stwizard, :

Один из вариант без использования функции:

#!/usr/bin/perl

use strict;
use warnings;

use utf8;
use open qw(:std :utf8);

my $intro = "Вы прибыли к Перевалу Смерти. У вас есть выбор - прямо сейчас пойти в Элеонор и спасти больше жителей (что даст увеличенное повышение авторитета в Люране, но при этом будут потеряны дружеские отношения с Охотником), либо дождаться Охотника, не успев спасти некоторое количество жизней (из-за этого повышение авторитета будет несколько меньшим, но зато Охотник останется с вами).\nВыбирайте.\n1 - пойти в Элеонор.\n2 - дождаться прибытия Охотника.\n";

print $intro;

while ($sm = <STDIN>) {
  if ($sm == 1) {
	print "Отправляемся в Элеонор, покараем банду разбойников!\n";
	sleep 1;
	&battle;
  } elsif ($sm == 2) {
	print "Ждём Охотника...\n";
	sleep 2;
	&hunter;
  } else {
	print $intro;
  }
}

sub hunter {
  print "Вы встретили охотника\n";
  exit 0;
}

sub battle {
  print "Начало битвы\n";
  exit 0;
}