perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 39
Click for quality!




10.02.2012 / 09:46

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragBlindtext erraten
Seitenanfang
Hey @all!
Vielleicht kann mir ja der ein oder andere helfen, ich hoffe! ;-)
Also ich sitze gerade an einem kleinen Perl Prog, dazu muss ich sagen, dass ich absolut geringfügige Kenntnisse in Perl habe.
Nun gut, diese kleine Ding soll einen Text aus einer Datei einlesen, macht es auch, dann soll der Benutzer die einzelnen Wörter dieses Textes erraten, sofern ein Wort erraten wurde, soll das wieder ausgegeben werden und die die restlichen Wörter sollen für die Buchstaben jeweils punktiert dargestellt werden, klappt auch ganz gut. Nur dann soll es aber bei der nächsten Abfrage, dass zuvor richtig erratene Wort speichen und das neue Wort, wenn es richtig ist, mit dem anderen Wort zusammen ausgeben und die restlichen Worte, die noch nicht erraten wurden, wieder punktiert wieder geben. Hier mal der Code, den ich bisher habe: Ach ja, das Script muss auch nur lokal funktieren!
Code:

open (SPIEL, "SPIEL.txt") || die "shit: $!";
$index=0; # Anzahl der Zeilen in der einzulesenden Datei
while (<SPIEL>) { #Solange Zeilen aus der Datei gelesen werden
chomp; #Zeilenumbruch entfernen pro Zeile
@txtzeile[$index] = $_; # Zeilen Array belegen mit ausgelesener Zeile
#print "$txtzeile[$index]\n";
@codiert[$index] = @txtzeile[$index];
$codiert[$index] =~tr/[a-zA-Z]*/./;
#print "$codiert[$index]\n";
$index++; #Zeilenindex erhoehen
}
close(SPIEL); #Schließe die Datei
$index--; #Zeilenindex um 1 zurück stellen, weil Index mit 0 anfaengt
$index2=0; #Anzahl der Abfragen (Worteingabe)
do { #gehe Schleife durch bis fast alle Woerter gefunden worden sind
print "Bitte gib hier dein Wort ein:\n";
$wort = <STDIN>; #Lese eingegebenes Wort ein
chomp($wort); #Zeilenumbruch Wort entfernen
$index2++; #Abfrage hochzaehlen
for ($z=0; $z<=$index; $z++){ #Fuer jede Zeile des ausgelesenen Textes
@zeile = split ( / /,$txtzeile[$z] ); #zerlege die Zeile in Woerter
for ($w=0; $w<=$#zeile; $w++){ #Fuer jedes Wort einer Zeile
if($zeile[$w] =~/[^$wort][^sne]/){ #Wenn es nicht das gesuchte Wort ist (auch + s/n/e)
$zeile[$w] =~tr/[a-zA-Z]*/./; #dann ersetze Wort mit Punkten
}
print "$zeile[$w] "; #gebe das Wort der Zeile aus
}
print "\n"; #Gebe ein Returnzeichen aus
}

}while($index2<=2); #ueberpruefe, ob fast alle Woerter gefunden wurden

# Die while ist erstmal bis 2 Versuche begrenzt, soll sich natürlich aendern....

Ich hoffe, es noch leserlich wegen der Kommentare...ich schau gleich mal.
Ich hoffe, mir kann da jemand helfe, schon mal ein Dank an alle, die es versuchen und tun werden....bin nämlich schon am verzweifeln, hatte natürlich schon einige andere Sachen ausprobiert, aber leider nischt...

Viele Grüße!
Nashey

Datum: 28.01.2008-22:53

-






-
-