Forum » Programiranje » 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:
Ter Main program:
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č
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.
in znotraj metode popravi, da če najde zmagovalca naj vrne true, drugače pa false.
nato pa v main programu spremeni kodo
v
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.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 12016 (10675) | Yacked2 |
» | c# seminarskaOddelek: Programiranje | 2693 (2366) | tuned |
» | [C#] Omejitev izpisa v foreachOddelek: Programiranje | 958 (826) | Cvenemir |
» | [c] Enaki datotekiOddelek: Programiranje | 1041 (901) | Spura |
» | Pomoč pri programčkihOddelek: Programiranje | 2954 (2604) | Mitja Bonča |