summaryrefslogtreecommitdiffstats
path: root/Aufgabe4
diff options
context:
space:
mode:
Diffstat (limited to 'Aufgabe4')
-rw-r--r--Aufgabe4/wordGame.pm75
1 files changed, 75 insertions, 0 deletions
diff --git a/Aufgabe4/wordGame.pm b/Aufgabe4/wordGame.pm
new file mode 100644
index 0000000..c0b9508
--- /dev/null
+++ b/Aufgabe4/wordGame.pm
@@ -0,0 +1,75 @@
+#
+#===============================================================================
+#
+# FILE: verwuerfeln.pm
+#
+# DESCRIPTION:
+#
+# FILES: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Stefan Suhren (su), suhren.stefan@fh-swf.de
+# ORGANIZATION: FH Südwestfalen, Iserlohn
+# VERSION: 1.0
+# CREATED: 19.11.2015 15:41:56
+# REVISION: ---
+#===============================================================================
+package wordGame;
+
+use strict;
+use warnings;
+use utf8;
+
+# use common import function
+use Exporter;
+
+# enforce utf-8 mode
+binmode (STDIN, ":encoding(UTF-8)");
+binmode (STDOUT, ":encoding(UTF-8)");
+binmode (STDERR, ":encoding(UTF-8)");
+use open ":encoding(UTF-8)";
+
+# add exporter as a parent for this package.
+our @ISA= qw( Exporter );
+
+# these CAN be exported.
+our @EXPORT_OK = qw( verwuerfeln );
+
+# these are exported by default.
+our @EXPORT = qw( verwuerfeln );
+
+#=== FUNCTION ================================================================
+# NAME: verwuerfeln
+# PURPOSE:
+# PARAMETERS: zeichenkette: The string to shuffle.
+# vertauschung: The amount of shuffles to do.
+# RETURNS: The shuffled string as array.
+# DESCRIPTION: Shuffles a string.
+# THROWS: no exceptions
+# COMMENTS: none
+# SEE ALSO: n/a
+#===============================================================================
+sub verwuerfeln {
+ my ($zeichenkette, $vertauschung) = @_; #Parameter übernehmen
+
+ defined $zeichenkette or die "No string for shuffling defined.";
+ defined $vertauschung or die "No shuffling amount defined.";
+
+ my @ergebnis = split //, uc $zeichenkette;
+ my $laenge = int @ergebnis; # Anzahl der Buchstaben
+
+ for (my $i = 0; $i < $vertauschung; $i++)
+ {
+ my $index1 = int rand $laenge; # 1. Index
+ my $index2 = int rand $laenge; # 2. Index
+
+ while ($index1 == $index2)
+ {
+ $index2 = int rand $laenge;
+ }
+
+ @ergebnis[$index1, $index2] = @ergebnis[$index2, $index1];
+ }
+
+ return @ergebnis;
+} ## --- end sub verwuerfeln