» »

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
5012016 (10675) Yacked2
»

c# seminarska

Oddelek: Programiranje
112693 (2366) tuned
»

[C#] Omejitev izpisa v foreach

Oddelek: Programiranje
10958 (826) Cvenemir
»

[c] Enaki datoteki

Oddelek: Programiranje
71041 (901) Spura
»

Pomoč pri programčkih

Oddelek: Programiranje
152954 (2604) Mitja Bonča

Več podobnih tem