summaryrefslogtreecommitdiffstats
path: root/Aufgabe4/raetzelloesen.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Aufgabe4/raetzelloesen.pl')
-rw-r--r--Aufgabe4/raetzelloesen.pl159
1 files changed, 159 insertions, 0 deletions
diff --git a/Aufgabe4/raetzelloesen.pl b/Aufgabe4/raetzelloesen.pl
new file mode 100644
index 0000000..8a4ec85
--- /dev/null
+++ b/Aufgabe4/raetzelloesen.pl
@@ -0,0 +1,159 @@
+#!/usr/bin/env perl
+#===============================================================================
+# 4.2
+#
+# FILE: buchstabenraetzel.pl
+#
+# USAGE: ./buchstabenraetzel.pl
+#
+# DESCRIPTION: Erstellt ein Buchstabenrätzel zu einenem lösungswort
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Martin Talarczyk (MT), martin@talarczyk.de
+# ORGANIZATION: Fachhochschule Südwestfalen, Iserlohn
+# VERSION: 1.0
+# CREATED: 05.11.2015 10:10:27
+# REVISION: ---
+#===============================================================================
+
+use strict;
+use warnings;
+use utf8;
+
+
+binmode (STDIN, ":encoding(UTF-8)");
+binmode (STDOUT, ":encoding(UTF-8)");
+binmode (STDERR, ":encoding(UTF-8)");
+use open ":encoding(UTF-8)";
+
+
+#===============================================================================
+# Variabelen Deklarasion
+#===============================================================================
+#Anzahl der vertauschungen
+my $schwirichkeit = 10;
+
+#Arry aller Worte aus GERMAN9.LST
+my @word;
+
+#Verwürfeltes Rätzel wort
+my @wordver;
+
+#lösungswort im klar text
+my $loesung;
+
+#Den Verwürfelten String als Arry
+my @erb;
+
+my $eingabe;
+
+my $wordfp_file_name = 'GERMAN9.LST'; # input file name
+
+
+print "Programm begint...\n";
+#-------------------------------------------------------------------------------
+# Datei GERMAN9.LST öffnen.
+#-------------------------------------------------------------------------------
+open my $wordfp, '<', $wordfp_file_name
+ or die "$0 : failed to open input file '$wordfp_file_name' : $!\n";
+
+print "lesse german9.lst ein...\n";
+
+@word = <$wordfp>;
+
+chomp(@word);
+
+close $wordfp
+ or warn "$0 : failed to close input file '$wordfp_file_name' : $!\n";
+#-------------------------------------------------------------------------------
+# Datei GERMAN9.LST schliesen
+#-------------------------------------------------------------------------------
+
+
+print "Spiele beginnt...\n";
+
+$loesung = @word[ int rand @word];
+
+ @erb = verwuerfeln($loesung,$schwirichkeit);
+
+print_raetsel(@erb);
+
+$eingabe = <> ;
+
+
+while ( $eingabe ne $erb )
+{
+ print "Sehr gut!\nwillst du noch mal Spielen\nyes or no"
+ $eingabe = <>
+}
+
+
+sub print_raetsel {
+ my ( @arry ) = @_;
+
+ my $count = 0;
+
+foreach my $char ( @arry ) {
+
+ if ( ( $count % 3 ) eq 0 )
+ {
+ print "\n";
+ }
+ print $char . " ";
+
+ $count++;
+}
+
+} ## --- end sub print_raetsel
+
+#=== FUNCTION ================================================================
+# NAME: verwuerfeln
+# PURPOSE:
+# PARAMETERS:
+# $word
+# String der vertauscht wird.
+# $vertasuchen
+# anzahl der vertauschungen
+# RETURNS:
+# @ergebnis
+# Vertasuchter String in einem Feld.
+# DESCRIPTION:
+# übernimmt eine String desswen buchsteben beliebig oft miteinader
+# vertauscht werden.
+# THROWS: no exceptions
+# COMMENTS: none
+# SEE ALSO: n/a
+#===============================================================================
+
+sub verwuerfeln {
+
+ my ( $word , $vertauschen ) = @_;
+
+ my @ergebnis = split //, uc $word;
+
+ my $laenge = int @ergebnis;
+
+ my $index1 = 0;
+
+ my $index2 = 0;
+
+ defined $word or die "Es wurde keien String übergeben.\n";
+
+ defined $vertauschen or die "Es wurde keine Anzahl der vertauschung übergeben.\n";
+
+ for ( my $count = 0 ; $count < $vertauschen ;$count++ ) {
+
+ do {
+ $index1 = int rand $laenge;
+ $index2 = int rand $laenge;
+ } while ( $index1 eq $index2 ); # ----- end do-while -----
+
+ @ergebnis[$index1,$index2] = @ergebnis[$index2,$index1];
+ }
+ return @ergebnis;
+} ## --- end sub verwuerfeln
+
+