Und hier ist mein erstes einfaches Spiel.
Ich komme aber in Perl immer noch mit dem Rand() durcheinander ... ist das so korrekt wie ich das gemacht habe ?
Und kann mir noch jemand erklären warum einige in ihren Scripten "srand;" schreiben. Habs immer noch nicht begriffen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl
use strict;
use Tk;
require Tk::Dialog;
my $msg = <<"EOT";
Herzlich Willkommen !
Der Computer wird nun eine Zahl zwischen 1 und 10000 wählen.
Danach müssen Sie diese Zahl erraten. Geben Sie dazu die Zahl
in die Textbox und klicken Sie auf Submit.
EOT
my $num;
my $counter;
my $random = int(rand(10000))+1;
my $mw = MainWindow->new(-background => "#000059",-foreground => "#FFFFFF");
$mw->title("Zahlenspiel");
my $text = $mw->Label(
-text => $msg,
-background => "#000059",
-foreground => "#FFFFFF",
-font => "Helvetica",
)->pack();
$mw->Entry(-width => 50, -textvariable => \$num)->pack();
$mw->Button(-text => "Zahl prüfen", -command => \&numhandle)->pack();
MainLoop;
sub numhandle {
if($num =~ /\D/ or $num < 1 or $num > 10000) {
showinfo("Dies ist keine gültige Zahl.");
} elsif($num < $random) {
$counter++;
showinfo("Deine Zahl ist zu niedrig.");
} elsif($num > $random) {
$counter++;
showinfo("Deine Zahl ist zu hoch.");
} elsif($num == $random) {
$counter++;
my $win = $mw->Dialog(
-title => "Gewonnen !",
-text => "Herzlichen Glückwunsch !\nDie gesuchte Zahl war: $random\nVersuche: $counter",
-buttons => ["Neues Spiel","Spiel verlassen"]
)->Show();
if($win eq "Spiel verlassen") {
exit(0);
} else {
undef $num;
undef $counter;
$random = int(rand(10000))+1;
}
}
}
sub showinfo {
my $info = shift;
my $box = $mw->Dialog(
-title => "Fehler!",
-text => $info,
-bitmap => "error"
)->Show();
}
\n\n
<!--EDIT|BrownWolf|1067269698-->
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&
&