[Perl] Bestimmte Buchstaben in einer Variable ersetzen


Radmor

Grünschnabel
Hallo,

ich bin dabei das Spiel "Hangman" in Perl zu entwickeln.
Bis jetzt sieht mein Code so aus:
Code:
#!/usr/bin/perl -w

@moeglichewoerter = ("Kekse", "Schokolade", "Erdbeere", "Blaubeere");
$anzahl = @moeglichewoerter;

$zufallszahl = rand() * 100 % $anzahl;

$ergebnis = '';
$wort = '';
$eingabe = '';
$wort = $moeglichewoerter[$zufallszahl];
$wortlaenge = length($wort);

#in $ergebnis wird gespeichert, was der Benutzer sieht.
#in $wort das zu erratene Wort.

#Striche erzeugen
for ($i = 0; $i < $wortlaenge;$i++)
{
	$ergebnis .= "-";
}

#Raten
do {
	#system("cls");
	
	print "Das Wort hat $wortlaenge Buchstaben.\n";
	print "\n".$ergebnis."\n";

	print "\nGib einen Buchstaben ein: ";
	chomp($eingabe = <STDIN>);
	
	#Prüft ob der eingegebene Buchstabe im Wort vorkommt
	if ($wort =~ /$eingabe/gi) 
	{
		print "Der Buchstabe kommt vor\n";
	}
} while ($wort ne $ergebnis);
Mir gelingt zwar die Prüfung, ob der eingegebene Buchstabe in dem zu erratenen Wort vorkommt. Allerdings weiss ich nicht wie ich es schaffe, dass die schon erratenen Buchstaben in die Variable $ergebnis an die richtige Position geschrieben werden.

Wie stelle ich das an?

Gruß
Radmor
 

renee

Erfahrenes Mitglied
Dieses Beispielskript sollte Dir helfen. Das macht genau das was Du willst. Du musst es nur noch in Dein Skript einbauen. Fragen? Fragen!

Code:
#!/usr/bin/perl

use strict;
use warnings;

my $string     = 'Hilfe';#'Ententanz';
my $quizstring = '-' x length $string;
my $char       = 't';

while( $string =~ /($char)/g ) {
    my $pos = pos $string;
    substr( $quizstring, $pos-1, 1, $char );
}

print $quizstring,"\n";
 

Neue Beiträge