Perl :: Aufgabe #24 :: Lösung #2

2 Lösungen Lösungen öffentlich
#24

Zahlen erraten lassen.

Anfänger - Perl von zayc_ - 28.12.2012 um 14:08 Uhr
Programmiere ein Programm, welches eine vom User erdachte Zahl (Integer) in einem vom User angegebenen Bereich Erraten soll.

Konsolenausgabe:


Bitte Untergränze angeben: 0
Bitte Obergränze angeben: 100

Bitte geben sie nach jedem versuch R,G oder K an. je nachdem ob
R die Zahl richtig ist
G die gesuchte Zahl grösser ist
K die gesuchte Zahl kleiner ist



1. Versuch: 50.
k
2. Versuch: 25
g
3. Versuch: 37
g
4. versuch: 42
g
5. Versuch: 46
k
6. Versuch: 44
k
7. Versuch: 43
r
Die gesuchte Zahl war also die 43!



#2
vote_ok
von TooBieee (610 Punkte) - 04.10.2017 um 08:08 Uhr
Quellcode ausblenden Perl-Code
use strict;
use warnings;
use feature qw(say);

my ($min,$max,$zahl,$userInput);
my $count = 1;
my $treffer = 0;


say "Bitte Untergrenze angeben:";
chomp($min = <STDIN>);
if ($min !~ /\d+/) {
	say "Bitte nur Zahlen. Untergrenze erneut eingeben:";
	chomp($min = <STDIN>);
}

say "Bitte Obergrenze angeben:";
chomp($max = <STDIN>);
if ($max !~ /\d+/) {
	say "Bitte nur Zahlen. \nObergrenze erneut eingeben:";
	chomp($max = <STDIN>);
} elsif ($max <= $min) {
	say "Obergrenze muss höher sein als Untergrenze. \nObergrenze erneut eingeben:";
	chomp($max = <STDIN>);
}

say "Bitte geben sie nach jedem versuch R,G oder K an. je nachdem ob\n
		R die Zahl richtig ist\n
		G die gesuchte Zahl grösser ist\n
		K die gesuchte Zahl kleiner ist";

while($treffer == 0) {
	$zahl = int rand($max-$min) + $min;
	say "$count. Versuch: $zahl";
	chomp ($userInput = <STDIN>);
	
	if ($userInput !~ /[rgk]/i) {
		say "Bitte nur R , G  oder K eingeben:";
		chomp ($userInput = <STDIN>);
	} elsif ($userInput =~ /g/i) {
		$min = $zahl;
	} elsif ($userInput =~ /k/i) {
		$max = $zahl;
	} elsif ($userInput =~ /[r]/i){
		say "Die gesuchte Zahl war also die $zahl";
		$treffer = 1;
	}
	$count++;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1960422

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.