witam, jestem w trakcie pisania gry kolko i krzyzyk, utknalem w jednym miejscu, jak chce skompilowac wywala mi jakis dziwny blad ktory zatrzymuje program w 1 miejscu (w kodzie zaznaczylem ktore linijki sprawiaja problem)
// plansza_kk.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <cstdlib>
#include <string>
using namespace std;
void aktualna_plansza(int poziomo, int pionowo, bool zaznaczenie, char znak_na_planszy)
//cala wirtualna plansza
{
system("CLS");
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ to ponizej sprawia problem
char pole[5][5];
for (int i = 1; i <= 5; i++)
for (int j = 1; j <= 5; j++)
pole[i][j] = '_';
if (zaznaczenie == true)
{
pole[poziomo][pionowo] = znak_na_planszy;
zaznaczenie = false;
}
??~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ koniec problemu
//znak_na_planszy = znak;
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 5; j++)
{
if ((i == pionowo) && (j == poziomo))
{
cout << "*";
}
//pola znakow
else if ((i == 1) && (j == 1))
{
cout <<pole[i][j];
}
else if ((i == 1) && (j == 3))
{
cout << pole[i][j];
}
else if ((i == 1) && (j == 5))
{
cout << pole[i][j];
}
else if ((i == 3) && (j == 1))
{
cout << pole[i][j];
}
else if ((i == 3) && (j == 3))
{
cout << pole[i][j];
}
else if ((i == 3) && (j == 5))
{
cout << pole[i][j];
}
else if ((i == 5) && (j == 1))
{
cout << pole[i][j];
}
else if ((i == 5) && (j == 3))
{
cout << pole[i][j];
}
else if ((i == 5) && (j == 5))
{
cout << pole[i][j];
}
//pola znakow
//pionowe rysowanie lini
else if ((i == 1) && (j == 2))
{
cout << "|";
}
else if ((i == 1) && (j == 4))
{
cout << "|";
}
else if ((i == 2) && (j == 2))
{
cout << "|";
}
else if ((i == 2) && (j == 4))
{
cout << "|";
}
else if ((i == 3) && (j == 2))
{
cout << "|";
}
else if ((i == 3) && (j == 4))
{
cout << "|";
}
else if ((i == 4) && (j == 2))
{
cout << "|";
}
else if ((i == 4) && (j == 4))
{
cout << "|";
}
else if ((i == 5) && (j == 2))
{
cout << "|";
}
else if ((i == 5) && (j == 4))
{
cout << "|";
}
//poziome rysowanie lini
else if ((i == 2) && (j == 1))
{
cout << "-";
}
else if ((i == 2) && (j == 2))
{
cout << "-";
}
else if ((i == 2) && (j == 3))
{
cout << "-";
}
else if ((i == 2) && (j == 4))
{
cout << "-";
}
else if ((i == 2) && (j == 5))
{
cout << "-";
}
else if ((i == 4) && (j == 1))
{
cout << "-";
}
else if ((i == 4) && (j == 2))
{
cout << "-";
}
else if ((i == 4) && (j == 3))
{
cout << "-";
}
else if ((i == 4) && (j == 4))
{
cout << "-";
}
else if ((i == 4) && (j == 5))
{
cout << "-";
}
}
cout << endl;
}
}
char wybor_znaku()
// funkcja odpowiedzialna za to jaki znak bedzie mial gracz i komputer
{
char jaki_znak;
cout << "Wybierz swoj znak: (x lub o)" << endl; //wybieranie znaku jakim bedziemy grac
jaki_znak = _getch();
if (jaki_znak == 'x')
{
cout << "Wybrales krzyzyk..." << endl;
jaki_znak = 'X';
}
else
{
cout << "Wybrales kolko..." << endl;
jaki_znak = 'O';
}
return jaki_znak;
}
int wybor_kto_pierwszy()
//funkcja ktora wybiera ktory gracz ma zaczac i jaki znak (x czy o)
{
int kto_pierwszy;
char wybor;
cout << "Wybierz kto pierwszy zaczyna (Gracz: g Komputer: k) " << endl;
wybor = _getch();
if (wybor == 'k')
{
cout << "Zaczyna komputer..." << endl;
kto_pierwszy = 2;
}
if (wybor == 'g')
{
cout << "Zaczynasz ty... " << endl;
kto_pierwszy = 1;
}
if ((wybor != 'g') && (wybor != 'k')) //jesli nacisnelo sie cos innego niz g czy k
{
do
{
cout << "Kliknij g lub k (gracz lub komputer)" << endl;
wybor = _getch();
if (wybor == 'k')
{
cout << "Zaczyna komputer..." << endl;
kto_pierwszy = 2;
break;
}
if (wybor == 'g')
{
cout << "Zaczynasz ty..." << endl;
kto_pierwszy = 1;
break;
}
} while ((wybor != 'g') || (wybor != 'k'));
}
return kto_pierwszy;
}
char rysowanie_planszy(char znak_pomoc)
//funkcja ktora pozwala graczowi zaznaczac na planszy swoje pola
{
char pomoc = znak_pomoc;
int poziom = 1, pion = 1;
char znak = 0;
bool zaznacz = false;
while ((znak = _getch()) != 27) //poruszanie sie po planszy
{
switch (znak)
{
case 75: //lewo
poziom = poziom - 2;;
if (poziom < 1)
{
poziom = 5;
}
break;
case 77: //prawo
poziom = poziom + 2;
if (poziom > 5)
{
poziom = 1;
}
break;
case 72: //gora
pion = pion - 2;
if (pion < 1)
{
pion = 5;
}
break;
case 80: //dol
pion = pion + 2;
if (pion>5)
{
pion = 1;
}
break;
case 13: //enter - wybor pola
{
zaznacz = true;
}
break;
}
aktualna_plansza(poziom, pion, zaznacz, pomoc);
zaznacz = false;
}
return 0;
}
int main()
{
int zmiana_gracza;
zmiana_gracza = wybor_kto_pierwszy(); //zmiana_gracza bierze z returna w funkcji wybor_kto_pierwszy(), pozniej jest zammieni
char znak_gracza;
znak_gracza = wybor_znaku(); // O lub X 5
for (int zmiana_gracza = 1; zmiana_gracza<4; zmiana_gracza++) //zmienia kolejnosc zaznaczania na planszy
{
if (zmiana_gracza > 2)
zmiana_gracza = 1;
if (zmiana_gracza == 1) //jesli jest kolej gracza
{
cout << "twoj ruch";
rysowanie_planszy(znak_gracza);
}
if (zmiana_gracza == 2) //tutaj ma byc funkja z algorytmem wybierania pol przez komputer @@@@@@@@@@@@@@@@@@@@@@2
{
rysowanie_planszy(znak_gracza);
cout << "ruch komputera";
}
}
system("PAUSE");
return EXIT_SUCCESS;
}