Kiedyś miałem taki o to kod, dawno nie siedziałem w C++, jeżeli mógłby ktoś podpowiedzieć jak zmienić kod tak aby :
1 .wyświetlał kółko i krzyżyk a nie 1 i -1 .
2 dlaczego przy pierwszym uruchomieniu wali błąd,. że "To miejsce jest juz wykorzystane, wp....."
Będą bardzo wdzięczny za porady, sugesite, wiem że chwilowo main może się nie podobać ale chodzi o to żeby odpalił do testu.
//main.cpp
#include <iostream>
#include <windows.h>
#include "gra.h"
using namespace std;
int main()
{
Gra g;
g.wczytaj(1,1,1);
g.wyswietl();
g.rozgrywka();
g.sprawdz();
}
//gra.cpp
#include <iostream>
#include <windows.h>
#include "gra.h"
using namespace std;
void Gra::sprawdz(){
//Poziom
for(int i=0;i<3;i++){
if(tablica[i][0]+tablica[i][1]+tablica[i][2]==3) wygral="x";
else if(tablica[i][0]+tablica[i][1]+tablica[i][2]==-3) wygral="y";
}
//Pion
for(int i=0;i<3;i++){
if(tablica[0][i]+tablica[1][i]+tablica[2][i]==3) wygral="x";
else if(tablica[0][i]+tablica[1][i]+tablica[2][i]==-3) wygral="y";
}
//na ukos
if(tablica[0][0]+tablica[1][1]+tablica[2][2]==3) wygral="x";
else if(tablica[0][0]+tablica[1][1]+tablica[2][2]==-3) wygral="y";
if(tablica[0][2]+tablica[1][1]+tablica[2][0]==3) wygral="x";
else if(tablica[0][2]+tablica[1][1]+tablica[2][0]==-3) wygral="y";
}
void Gra::wczytaj (int x, int y, int gracz)
{
x--;
y--;
tablica[x][y] = gracz;
}
void Gra::wyswietl()
{
cout<<"X 1 2 3"<<endl;
cout<<" -------------"<<endl;
cout<<"1 | "<<tablica[0][0]<<" | "<<tablica[0][1]<<" | "<<tablica[0][2]<<" |"<<endl;
cout<<" -------------"<<endl;
cout<<"2 | "<<tablica[1][0]<<" | "<<tablica[1][1]<<" | "<<tablica[1][2]<<" |"<<endl;
cout<<" -------------"<<endl;
cout<<"3 | "<<tablica[2][0]<<" | "<<tablica[2][1]<<" | "<<tablica[2][2]<<" |"<<endl;
cout<<" -------------\n\n"<<endl;
}
void Gra::rozgrywka()
{
while(wygral==""){
system("cls");
wyswietl();
czy=1;
if(gracz==1) g="kolko";
else g="krzyzyk";
while(czy==1){
cout<<"Runda gracza "<<g<<endl;
cin>>x;
cin>>y;
if(x<1||x>3||y>3||y<1){
cout<<"Bledne dane, wprowadz jeszcze raz."<<endl;
} else{
if(tablica[x-1][y-1]!=0) cout<<"To miejsce jest juz wykorzystane, wprowadz dane jeszcze raz."<<endl;
else czy=0;
}
}
wczytaj(x,y,gracz);
sprawdz();
a=0;
for(int i=0;i<3;i++){
if(i==2){
i=0;
a++;
if(a==3) {
if(a==3) {
wygral="remis";
break;
}
}
if(tablica[a][i]==0)break;
}
gracz = gracz*(-1);
}
system("cls");
wyswietl();
if(wygral!="remis") cout<<"Wygral gracz "<<wygral<<endl;
else cout<<wygral<<endl;
system("pause");
}
//gra.h
#include <iostream>
using namespace std;
class Gra{
public:
int tablica[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
string wygral="";
int x=0;
int y=0;
int a;
int czy;
int gracz=1;
string g;
void sprawdz();
void wczytaj(int x, int y, int gracz);
void wyswietl();
void rozgrywka();
};