Diskuze: Aplikace funguje jen když místo metody GetHiddenWord dám přímo string
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static bool isWon = false;
static bool playAgain = true;
static string hiddenWord = GetNewHiddenWord(); // PROBLÉM
static int totalLives = 10;
static int wordLength = hiddenWord.Length;
static int usedLetterPos = 0;
static int LettersRevealed = 0;
static char[] usedLetters = new char[255];
static char[] revealProgress = new char[wordLength];
static void Main(string[] args)
{
PlayGame();
}
static void PlayGame()
{
Reset();
while (totalLives > 0 && playAgain == true && !isWon)
{
Console.WriteLine("Lives:" + totalLives + "\nEnter a letter:");
Console.WriteLine(revealProgress);
Console.WriteLine(usedLetters);
GetGuess();
}
}
public static void Reset()
{
Console.Clear();
isWon = false;
totalLives = 10;
LettersRevealed = 0;
Array.Clear(usedLetters, 0, usedLetters.Length);
Array.Clear(revealProgress, 0, revealProgress.Length);
for (int filler = 0; filler < wordLength; filler++)
{
revealProgress[filler] = '*';
}
}
public static void GetGuess()
{
char guess = Console.ReadKey().KeyChar;
if (guess == '0')
{
playAgain = false;
Console.Clear();
Console.WriteLine("Goodbye!");
}
if (Char.IsLetter(guess))
{
bool takeLifeOff = true;
guess = Char.ToUpper(guess);
Console.Clear();
if (((IList<char>)usedLetters).Contains(guess))
{
Console.WriteLine("This was already entered!");
}
else
{
usedLetters[usedLetterPos] = guess;
usedLetterPos++;
for (int HWChar = 0; HWChar < wordLength; HWChar++)
{
if (guess == hiddenWord[HWChar])
{
revealProgress[HWChar] = guess;
totalLives++;
takeLifeOff = false;
LettersRevealed++;
}
}
if (LettersRevealed == wordLength)
isWon = true;
if (takeLifeOff)
totalLives--;
}
}
if (LettersRevealed == wordLength)
isWon = true;
}
static string GetNewHiddenWord()
{
string[] Words = new string[] { "after", "monkey", "author", "ground", "black", "horse", "guild", "faces", "nitro" };
Random rnd = new Random();
int random = rnd.Next(0, 20);
hiddenWord = Words[random];
return hiddenWord;
}
}
}
random máš mimo rozsah:
static string GetNewHiddenWord()
{
string[] Words = new string[] { "AFTER", "MONKEY", "AUTHOR", "GROUND", "BLACK", "HORSE", "GUILD", "FACES", "NITRO" };
Random rnd = new Random();
int random = rnd.Next(0, Words.Length - 1);
return Words[random];
}
ps, ta aplikace je napsaná hodně divným stylem
Díky za odpověd, toho jsem si vůbec nevšiml. Ale hlavní problém
zůstává.
Když tam dám přímo string a zapnu to, tak se zobrazí hvězdičky
reprezentující slovo a pokud uživatel uhádne písmenko obsažené v tom
skrytém slově, tak se na tom místě hvězdička změní na to písmenko. Ale
když je tam ta metoda tak to najednou ohluchne.
změnil jsi tu metodu přesně jak jsem ti napsal (včetně těch velkých písmen)?
Jinak vůbec nechápu s čím máš problém. Ten kód jsem zkoušel, v podstatě funguje. Zkoumat ho nechci, je to strašně chaoticky napsané.
Pokud ti to vyhazuje nějakou chybu, tak ji zkopíruj a napiš sem.
Přehlédl jsem to, že to musí být velkými písmeny Díky moc za upozornění!
Zobrazeno 7 zpráv z 7.