Sprawdzenie/porównanie w pętli zawartości tablicy.

Sprawdzenie/porównanie w pętli zawartości tablicy.
Xoxepin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 80
0

Hej, nie znalazłem odpowiedzi na moje pytanie więc piszę. W programie użytkownik wpisał w konsoli wartości do tablicy 4-elementowej (typ string) poprzez pętle FOR.

Załóżmy, że wygląda to tak:

Kopiuj
 
tab[0] = k;
tab[1] = o;
tab[2] = t;
tab[3] = y;
Kopiuj
 
string[] haslo = new string[4];
            string odpowiedz;
            Welcome();

            for (int i = 0; i < haslo.Length; i++)
            {
                int letter = i;
                letter++;
                Console.WriteLine("Type next letter: " + letter);
                haslo[i] = Console.ReadLine();
            }

Chciałbym, żeby user ( najlepiej ?? poprzez petle for/while) odgadywał po kolei wartości komórek tabeli (kombinowałem z GetVallue - ale nie uzysuje pożądanych efektów) , i najwazniejsze - żeby po odgadnięciu tych 4 wartości program zakończył się (break...or sth)

Jakieś małe podpowiedzi?:)

DrPeter
  • Rejestracja: dni
  • Ostatnio: dni
0

Użyj do...while w tym for i wartość podaną przez użytkownika przyrównuj do odpowiedniego elementu tablicy.

Luki91
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bytom
  • Postów: 81
0

Najzwyklejsze porównywanie stringów. Nie potrzebujesz GetValue(). Pętla while i użycie jakiejś zmiennej pomocniczej. Sprecyzuj, czego nie potrafisz w tym zrobić.

Xoxepin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 80
0

Generalnie napisałem coś takiego.

Kopiuj
string[] haslo = new string[4];
            string odpowiedz;
            int ilosc_liter = 0;
            Welcome();

            for (int i = 0; i < haslo.Length; i++)
            {
                int letter = i;
                letter++;
                Console.WriteLine("Type letter " + letter);
                haslo[i] = Console.ReadLine();
            }
            Console.Clear();

            Check();
 

Użytkownik wpisuje wielkość tablicy (ile komórek na string), następnie wypełnia te komórki wybranymi przez siebie stringami, dopoki nie wypełni ostatniej komórki.

Teraz chce żeby w kolejnej pętli krok po kroku algorytm sprawdzał odpowiedzi użytkownika czy sa prawidłowe czy nie - i po skończeniu wypisze na ekran np - brawo zgadłeś.

Domyślam się ,że najlepiej było by tutaj użyć pętli DO WHILE.

Ja napisałem coś takiego - ale to nie jest to czego oczekuje i nie działą tak jak powinno.

Kopiuj
 
for (int i = 0; i < haslo.Length; i++)
            {
                Console.WriteLine("Guess letter: ");
                odpowiedz = Console.ReadLine();
                ilosc_liter++;
                if (odpowiedz == haslo[i])
                {
                    Console.WriteLine("Great, try next\n");
                }
                else
                {
                    Console.WriteLine("Sorry, false, try again\n");
                }
            }

Mniemam ,że muszę jakoś sensownie zaimplementować pętle w pętli / jakąs doatkową zmienną// dodatkowo mam problem z Convert/Parse... żeby porównać string do int

Na koniec dodam, że jestem początkującym programistą - i to wszystko dopiero układa mi się w głowie - cała ta mechanika :)

DibbyDum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polska, Kraków
0

Możesz użyć pętli do/while, poglądowy programik na szybko:

Kopiuj
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("How many letters...");
        var numberOfLetters = Convert.ToInt32(Console.ReadLine());

        var password = new string[numberOfLetters];

        for (var i = 0; i < password.Length; i++)
        {
            Console.WriteLine("Type letter " + (i + 1));
            password[i] = Console.ReadLine();
        }
            
        Console.Clear();
        Console.WriteLine("Guess letter...");

        var x = 0;
        do
        {
            var answer = Console.ReadLine();
            if (answer.Equals(password[x]))
            {
                Console.WriteLine("Great, try next\n");
                x++;
            }
            else
            {
                Console.WriteLine("Sorry, false, try again\n");
            }
        }
        while (x != password.Length);
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.