» »

C# tri v vrsto se ne zaključi

C# tri v vrsto se ne zaključi

f1ghter4 ::

LP. Imam problem. Imam program tri v vrsto, kateri deluje odlično, napaka je le na koncu.Ko eden izmed 2h igralcev zmaga, se izpiše opomba, da je igralec zmagal, igra pa se ne zaključi ampak lahko še vseeno igramo naprej. Tu pa bi prosil za malo pomoči :) .

Metoda, s katero iščemo zmagovalca po vrsticah:
 //Metoda, s katero določimo zmagovalca
        public void IsciZmagovalca()
        {
            int glejvrstice;
            int glejstolpce;


            //Zmagovalca iščemo po vrsticah
            for (glejvrstice = 0; glejvrstice < 3; glejvrstice++)
            {
                if ((grid[glejvrstice, 0] == player1) && (grid[glejvrstice, 1] == player1) && (grid[glejvrstice, 2] == player1))
                {
                    Console.Clear();
                    Console.WriteLine("***IGRALEC 1 ZMAGALI STE!***\n");
                    DisplayMoveOnGrid();
                    
                }
                else
                {
                    if ((grid[glejvrstice, 0] == player2) && (grid[glejvrstice, 1] == player2) && (grid[glejvrstice, 2] == player2))
                    {
                        Console.Clear();
                        Console.WriteLine("***IGRALEC 2 ZMAGALI STE***\n");
                        DisplayMoveOnGrid();
                        
                    }
                }
            }

Ter Main program:
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("\n  Dobrodošli v igri Tic Tac Toe!\n");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine("\t  |  |  ");
                if (i != 2)
                    Console.WriteLine("\t---|---|---");
            }
            Console.Write("\n  Pritisni Enter za začetek. \n");
            Console.ReadLine();
            Console.Clear();
            Game tictactoe = new Game();
            bool konecIgre= false;

            do
            {
                tictactoe.Player1_Move();
                tictactoe.IsciZmagovalca();
                tictactoe.Player2_Move();
                tictactoe.IsciZmagovalca();

            } while (konecIgre != true);
            Console.WriteLine("Game over.");
        }
    }
}



Za napaka sumim, da je v do while zanki, saj se le ta ne zaključi. Ima mogoče kdo kakšno idejo kako bi naredil tako, da ko bi mi izpisalo zmagovalca, bi mi tudi prekinilo zanko. Že vnaprej hvala za pomoč
  • spremenil: f1ghter4 ()

klemen93 ::

Spremeni tip, ki ga vrača metoda IsciZmagovalca(), iz void na bool.
public void IsciZmagovalca()

public bool IsciZmagovalca()

in znotraj metode popravi, da če najde zmagovalca naj vrne true, drugače pa false.

nato pa v main programu spremeni kodo
tictactoe.Player1_Move();
                tictactoe.IsciZmagovalca();
                tictactoe.Player2_Move();
                tictactoe.IsciZmagovalca();

v
tictactoe.Player1_Move();
                if(tictactoe.IsciZmagovalca()) break;
                tictactoe.Player2_Move();
                if(tictactoe.IsciZmagovalca()) break;

sas084 ::

   
bool konecIgre= false;
 
do
{
    tictactoe.Player1_Move();
    tictactoe.IsciZmagovalca();
    tictactoe.Player2_Move();
    tictactoe.IsciZmagovalca();
} while (konecIgre != true);


Spremenljivka konecIgre je zmeraj postavljena na false v tvojem primeru, tud ko eden od igralcev zmaga.

f1ghter4 ::

klemen93 deluje! hvala ti 100x :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

križci krožci c # (strani: 1 2 )

Oddelek: Programiranje
5010794 (9453) Yacked2
»

c# seminarska

Oddelek: Programiranje
112435 (2108) tuned
»

[C#] Omejitev izpisa v foreach

Oddelek: Programiranje
10888 (756) Cvenemir
»

[c] Enaki datoteki

Oddelek: Programiranje
7936 (796) Spura
»

Pomoč pri programčkih

Oddelek: Programiranje
152734 (2384) Mitja Bonča

Več podobnih tem