diff options
| author | Martin Talarczyk <martin@talarczyk.de> | 2015-11-13 12:17:15 +0100 |
|---|---|---|
| committer | Martin Talarczyk <martin@talarczyk.de> | 2015-11-13 12:17:15 +0100 |
| commit | f08f2d0e3798ff90b7e68c46751e15b7b991a2a0 (patch) | |
| tree | 46d12d0da15882ec53d2a016e3252b05638d6b98 /Aufgabe4/raetzelloesen.pl | |
| download | Skriptsprachen-f08f2d0e3798ff90b7e68c46751e15b7b991a2a0.tar.gz Skriptsprachen-f08f2d0e3798ff90b7e68c46751e15b7b991a2a0.zip | |
Commitel Aufgabe 1 bis 4
Diffstat (limited to 'Aufgabe4/raetzelloesen.pl')
| -rw-r--r-- | Aufgabe4/raetzelloesen.pl | 159 |
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 + + |
