c#hangman-如何向每一行显示在正确位置尝试过的字母
下图描述了到目前为止我得到的输出。。 它漏掉了被试过的旧字母。 因此,如果一个字母猜对了,那么所有字母(包括旧的猜字母)都需要显示在点上……c#hangman-如何向每一行显示在正确位置尝试过的字母,c#,list,C#,List,下图描述了到目前为止我得到的输出。。 它漏掉了被试过的旧字母。 因此,如果一个字母猜对了,那么所有字母(包括旧的猜字母)都需要显示在点上…… 现在它只显示给定的字母,而不显示旧字母 // //这是我到目前为止得到的代码 class Program { static void Main(string[] args) { Program myProgam = new Program(); myProgam.St
现在它只显示给定的字母,而不显示旧字母 // //这是我到目前为止得到的代码
class Program
{
static void Main(string[] args)
{
Program myProgam = new Program();
myProgam.Start();
Console.ReadKey();
}
void Start()
{
GalgjeSpel galgje = new GalgjeSpel();
galgje.Init("eetlepel");
List<string> woordenlijst = WoordenLijst();
string nieuwwoord= SelecteerWoord(woordenlijst);
galgje.Init(nieuwwoord);
ToonWoord(nieuwwoord);Speelgalgje(galgje);
//Console.WriteLine("Het geheime woord is: " + galgje.geheimWoord);
//Console.WriteLine("Het geraden woord is: " + galgje.geradenWoord);
}
List <string> WoordenLijst()
{
List<string> Woordenlijst = new List<string>();
Woordenlijst.Add("slapen");
Woordenlijst.Add("poepen");
Woordenlijst.Add("eten");
Woordenlijst.Add("vakantie");
Woordenlijst.Add("reizen");
return Woordenlijst;
}
string SelecteerWoord(List<string> woorden)
{
GalgjeSpel gaglje = new GalgjeSpel();
Random rnd = new Random();
int randomwoord = rnd.Next(1, 5);
string nieuwwoord = woorden[randomwoord];
gaglje.geheimWoord = nieuwwoord;
return nieuwwoord;
}
void ToonWoord(string woord)
{
GalgjeSpel galgje = new GalgjeSpel();
Console.Write($"het geheime woord is: ");
char[] letter = woord.ToArray();
for (int i = 0; i< woord.Length; i++)
{
galgje.geheimWoord += letter[i];
Console.Write($"{letter[i]} ");
}
Console.WriteLine();
Console.Write("het geraden woord is: ");
for (int i = 0; i < woord.Length; i++)
{
galgje.geradenWoord += (". ");
Console.Write(". ");
}
Console.WriteLine();
}
void ToonLetter(List<char> letters)
{
int i = 0;
Console.Write("Ingevoerde letters zijn: ");
foreach (var element in letters)
{
Console.Write($"{letters[i]} ");
i += 1;
}
Console.WriteLine();
}
char LeesLetter(List<char> geheimeletters)
{
char letter;
List<char> ingevoerdeletter = new List<char>();
string tletter ="";
do
{ Console.WriteLine();
Console.Write("voer een letter in: ");
letter = char.Parse(Console.ReadLine());
tletter =tletter + " "+ letter ;
return letter;
} while (geheimeletters.Contains(letter));
{
}
}
bool Speelgalgje(GalgjeSpel galgje)
{
//char lijst van ingevoerde letters
List<char> ingevoerdeLetters = new List<char>();
// char lijst van geheime letters
List<char> geheimeletters = new List<char>();
// zet elke geheime letter in een char array
char[]geheimewoord = galgje.geheimWoord.ToArray();
// voeg elke char letter toe aan lijst van geheime letters
for (int i=0; i<geheimewoord.Length; i++)
{
geheimeletters.Add(geheimewoord[i]);
if (galgje.geradenWoord == galgje.geheimWoord)
{
return true;
}
else
{ char letter = LeesLetter(geheimeletters);
ingevoerdeLetters.Add(letter);
ToonLetter(ingevoerdeLetters);
galgje.Raadletter(letter);
}
}return false;
}
}
////
namespace galgje2
{
class GalgjeSpel
{
public string geheimWoord;
public string geradenWoord;
public void Init(string geheimwoord)
{
this.geheimWoord = geheimwoord;
this.geradenWoord="";
char[] letter = new char [geheimwoord.Length];
for (int i =0; i< letter.Length; i++)
{
this.geradenWoord += ".";
}
}
public bool Raadletter(char letter)
{
char[] secretword = geradenWoord.ToArray();
if (geheimWoord.Contains(letter))
{
for(int i=0; i<geheimWoord.Length; i++)
{
if (geheimWoord[i]==letter)
{
secretword[i] = letter;
Console.Write($"{letter} ");
}
else
{
Console.Write($". ");
}
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("------------------------------");
Console.ResetColor();
Console.WriteLine();
}
else
{
Console.WriteLine("letter does not match secretword");
}
return false;
}
}
}
类程序
{
静态void Main(字符串[]参数)
{
程序myProgam=新程序();
myprogram.Start();
Console.ReadKey();
}
void Start()
{
GalgjeSpel galgje=新的GalgjeSpel();
galgje.Init(“eetlepel”);
List woordenlijst=woordenlijst();
字符串nieuwwoord=SelecteerWoord(woordenlijst);
高尔杰·尼特(nieuwwoord);
图恩沃德(尼乌沃德);斯佩尔加尔吉(加尔吉);
//Console.WriteLine(“Het geheime woord是:“+galgje.geheimWoord”);
//Console.WriteLine(“Het geraden woord是:“+galgje.geradenWoord”);
}
列表WoordenLijst()
{
List Woordenlijst=新列表();
Woordenlijst.添加(“slapen”);
Woordenlijst.添加(“poepen”);
Woordenlijst.添加(“eten”);
添加(“vakantie”);
Woordenlijst.添加(“reizen”);
返回Woordenlijst;
}
字符串选择器Woord(列表woorden)
{
GalgjeSpel gaglje=新的GalgjeSpel();
随机rnd=新随机();
int randomwoord=rnd.Next(1,5);
字符串nieuwwoord=woorden[randomwoord];
gaglje.geheimWoord=nieuwwoord;
返回nieuwwoord;
}
void ToonWoord(字符串woord)
{
GalgjeSpel galgje=新的GalgjeSpel();
控制台。写($“het geheime woord是:”);
char[]字母=woord.ToArray();
对于(int i=0;i 对于(int i=0;i而言,问题在于Raadletter函数中只显示控制台中的当前字母
if (geheimWoord[i]==letter)
{
secretword[i] = letter; // you store the letter in the char array
//you should print the array
Console.Write($"{letter} ");
}
else
{
Console.Write($". ");
}
如果您想打印所有猜测字母,您的代码应该具有类似的内容:
public bool Raadletter(char letter)
{
char[] secretword = geradenWoord.ToArray();
if (geheimWoord.Contains(letter))
{
geradenWoord = ""; //clear the sring only if contain letter
for (int i = 0; i < geheimWoord.Length; i++)
{
if (geheimWoord[i] == letter)
{
secretword[i] = letter; //store good letter to array
}
}
foreach (var c in secretword)
{
geradenWoord += c;// save the word
// print guesses letters
Console.Write($"{c} ");
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("------------------------------");
Console.ResetColor();
Console.WriteLine();
}
else
{
Console.WriteLine("letter does not match secretword");
}
return false;
}
public bool Raadletter(字符字母)
{
char[]secretword=geradenWoord.ToArray();
if(Geheimwood.包含(字母))
{
geradenWoord=“;//仅当包含字母时才清除sring
for(int i=0;i
问题在于Raadletter函数中,您在控制台中仅显示当前字母
if (geheimWoord[i]==letter)
{
secretword[i] = letter; // you store the letter in the char array
//you should print the array
Console.Write($"{letter} ");
}
else
{
Console.Write($". ");
}
如果您想打印所有猜测字母,您的代码应该具有类似的内容:
public bool Raadletter(char letter)
{
char[] secretword = geradenWoord.ToArray();
if (geheimWoord.Contains(letter))
{
geradenWoord = ""; //clear the sring only if contain letter
for (int i = 0; i < geheimWoord.Length; i++)
{
if (geheimWoord[i] == letter)
{
secretword[i] = letter; //store good letter to array
}
}
foreach (var c in secretword)
{
geradenWoord += c;// save the word
// print guesses letters
Console.Write($"{c} ");
}
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("------------------------------");
Console.ResetColor();
Console.WriteLine();
}
else
{
Console.WriteLine("letter does not match secretword");
}
return false;
}
public bool Raadletter(字符字母)
{
char[]secretword=geradenWoord.ToArray();
if(Geheimwood.包含(字母))
{
geradenWoord=“;//仅当包含字母时才清除sring
for(int i=0;i