Thread Perl TK - Programm (34 answers)
Opened by betterworld at 2003-10-26 00:14

BrownWolf
 2003-10-27 03:05
#44684 #44684
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
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.

Code: (dl )
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-->
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;

View full thread Perl TK - Programm