Witam.
Robię sobie edukacyjnie grę w kółko i krzyżyk w c#. Mam problem z wyjściem z do...while. Warunki niby są dobrze napisane, ponieważ gdy podstawie sobie wartości przed kompilacją to z niej prawidłowo wchodzi. Ktoś mi wytknie gdzie popełniam błąd bo już nie mam pomysłu ? Pozdrawiam
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp15
{
class Program
{
static void Main(string[] args)
{
string pierwsza = "1";
string druga = "2";
string trzecia = "3";
string czwarta = "4";
string piata = "5";
string szosta = "6";
string siodma = "7";
string osma = "8";
string dziewiata = "9";
int wybor;
int wybor2;
Console.WriteLine("|{0} | {1} | {2}|", pierwsza, druga, trzecia);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", czwarta, piata, szosta);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", siodma, osma, dziewiata);
bool mozliwosc1 = (pierwsza == druga) && (druga == trzecia);//false
bool mozliwosc2 = (czwarta == piata) && (piata == szosta);
bool mozliwosc3 = (siodma == osma) && (osma == dziewiata);
bool mozliwosc4 = (pierwsza == czwarta) && (czwarta == siodma);
bool mozliwosc5 = (druga == piata) && (piata == osma);
bool mozliwosc6 = (trzecia == szosta) && (szosta == dziewiata);
bool mozliwosc7 = (pierwsza == piata) && (piata == dziewiata);
bool mozliwosc8 = (trzecia == piata) && (piata == siodma);
bool wynik = (!mozliwosc1) && (!mozliwosc2) && (!mozliwosc3) && (!mozliwosc4) && (!mozliwosc5) && (!mozliwosc6) && (!mozliwosc7) && (!mozliwosc8);//true
do
{
Console.WriteLine(mozliwosc1);
Console.WriteLine(wynik);
string pozycja = Console.ReadLine();
if (int.TryParse(pozycja, out wybor))
{
switch (wybor)
{
case 1:
{
pierwsza = "O";
break;
}
case 2:
{
druga = "O";
break;
}
case 3:
{
trzecia = "O";
break;
}
case 4:
{
czwarta = "O";
break;
}
case 5:
{
piata = "O";
break;
}
case 6:
{
szosta = "O";
break;
}
case 7:
{
siodma = "O";
break;
}
case 8:
{
osma = "O";
break;
}
case 9:
{
dziewiata = "O";
break;
}
default:
Console.WriteLine("Podaj liczbe z przedzialu 1-9");
break;
}
Console.WriteLine("|{0} | {1} | {2}|", pierwsza, druga, trzecia);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", czwarta, piata, szosta);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", siodma, osma, dziewiata);
}
string pozycja2 = Console.ReadLine();
if (int.TryParse(pozycja2, out wybor2))
{
switch (wybor2)
{
case 1:
{
pierwsza = "X";
break;
}
case 2:
{
druga = "X";
break;
}
case 3:
{
trzecia = "X";
break;
}
case 4:
{
czwarta = "X";
break;
}
case 5:
{
piata = "X";
break;
}
case 6:
{
szosta = "X";
break;
}
case 7:
{
siodma = "X";
break;
}
case 8:
{
osma = "X";
break;
}
case 9:
{
dziewiata = "X";
break;
}
default:
Console.WriteLine("Podaj liczbe z przedzialu 1-9");
break;
}
Console.WriteLine("|{0} | {1} | {2}|", pierwsza, druga, trzecia);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", czwarta, piata, szosta);
Console.WriteLine("|-------------|");
Console.WriteLine("|{0} | {1} | {2}|", siodma, osma, dziewiata);
}
else
{
Console.WriteLine("Podano niewlasciwa wartosc");
}
}
while (wynik);
Console.WriteLine("wychodze");
Console.ReadKey();
}
}
}