Witam, programuje właśnie grę w konsoli, chciałem wstępnie ją skompilować no i wyskoczyła lista takich samych błędów:
"
cpp23: error: ‘class pionek’ has no member named ‘kolor’
else if(tab[i][k].kolor==BIALY)
^
"
Błędy są z następującego pliku:
#include<iostream>
#include<string>
#include<cstdlib>
#include"warcaby.hpp"
#define CZARNY 1
#define BIALY 2
#define BRAK 0
#define PIONEK 1
#define DAMKA 2
using namespace std;
pionek::pionek ()
{
int typ=PIONEK;
int kolor=BRAK;
bool blokada=false; // czy dany pionek moze sie ruszac
bool walecznosc=false; // czy dany pionek ma bicie w danej turze
}
plansza::plansza()
{
int liczba_czarnych=12;
int liczba_bialych=12;
tab = new pionek*[8];
for(int i=0;i<8;i=i+1)
{
tab[i] = new pionek[8];
}
}
void plansza::przemiesc_pionka(int x1, int y1, int x2, int y2) //z 1 na 2
{
tab[x2][y2]->typ=tab[x1][y1]->typ;
tab[x2][y2]->kolor=tab[x1][y1]->kolor;
tab[x2][y2]->typ=BRAK;
tab[x2][y2]->kolor=BRAK;
}
void plansza::usuwanie_pionka(int x,int y)
{
tab[x][y]->typ=BRAK;
tab[x][y]->kolor=BRAK;
tab[x][y]->blokada=false;
tab[x][y]->walczenosc=false;
}
void plansza::ruchliwosc(int x,int y, int czarnybialy)
{
if((tab[x][y]->typ==PIONEK) && (tab[x][y]->kolor==czarnybialy))
{
if(tab[x][y]->kolor==BIALY)
{
if((y<7)&&(y>=0)&&(x<7)&&(x>0)&&((tab[x-1][y+1]->typ==BRAK)||(tab[x+1][y+1]->typ==BRAK)))
{
tab[x][y]->blokada=false;
}
else if ((y<7)&&(y>=0)&&(x==0)&&(tab[x+1][y+1]->typ==BRAK))
{
tab[x][y]->blokada=false;
}
else if ((y<7)&&(y>=0)&&(x==7)&&(tab[x-1][y+1]->typ==BRAK))
{
tab[x][y]->blokada=false;
}
else
{
tab[x][y]->blokada=true;
}
}
else
{
if((y<=7)&&(y>0)&&(x<7)&&(x>0)&&((tab[x-1][y-1]->typ==BRAK)||(tab[x+1][y-1]->typ==BRAK)))
{
tab[x][y]->blokada=false;
}
else if ((y<=7)&&(y>0)&&(x==0)&&(tab[x+1][y-1]->typ==BRAK))
{
tab[x][y]->blokada=false;
}
else if ((y<=7)&&(y>0)&&(x==7)&&(tab[x-1][y-1]->typ==BRAK))
{
tab[x][y]->blokada=false;
}
else
{
tab[x][y]->blokada=true;
}
}
}
else
{
if((tab[x][y]->typ==DAMKA) && (tab[x][y]->kolor==czarnybialy))
{}
else
{
tab[x][y]->blokada=true;
}
}
}
void plansza::bitewnosc(int x,int y, int czarnybialy)
{
if((tab[x][y]->typ==PIONEK) && (tab[x][y]->kolor==czarnybialy))
{
if((x>=2)&&(y<=5)&&(tab[x-1][y+1]->typ!=BRAK)&&(tab[x-1][y+1]->kolor!=czarnybialy)&&(tab[x-2][y+2]->typ==BRAK))
{
tab[x][y]->walecznosc=true;
return;
}
if((x>=2)&&(y>=2)&&(tab[x-1][y-1]->typ!=BRAK)&&(tab[x-1][y-1]->kolor!=czarnybialy)&&(tab[x-2][y-2]->typ==BRAK))
{
tab[x][y]->walecznosc=true;
return;
}
if((x<=5)&&(y>=2)&&(tab[x+1][y-1]->typ!=BRAK)&&(tab[x+1][y-1]->kolor!=czarnybialy)&&(tab[x+2][y-2]->typ==BRAK))
{
tab[x][y]->walecznosc=true;
return;
}
if((x<=5)&&(y<=5)&&(tab[x+1][y+1]->typ!=BRAK)&&(tab[x+1][y+1]->kolor!=czarnybialy)&&(tab[x+2][y+2]->typ==BRAK))
{
tab[x][y]->walecznosc=true;
return;
}
tab[x][y]->walecznosc=false;
}
else if((tab[x][y]->typ==DAMKA) && (tab[x][y]->kolor==czarnybialy))//damka
{
}
}
void plansza::ustawianie_pionkow()
{
for(i=0;i<8;i=i+2)
{
tab[0][i]->typ=PIONEK;
tab[1][i+1]->typ=PIONEK;
tab[2][i]->typ=PIONEK;
tab[5][i+1]->typ=PIONEK;
tab[6][i]->typ=PIONEK;
tab[7][i+1]->typ=PIONEK;
tab[0][i]->kolor=BIALY;
tab[1][i+1]->kolor=BIALY;
tab[2][i]->kolor=BIALY;
tab[5][i+1]->kolor=BIALY;
tab[6][i]->kolor=BIALY;
tab[7][i+1]->kolor=BIALY;
}
}
void plansza::drukowanie(int czarnybialy)
{
int i;
int k;
if(czarnybialy==BIALY)
{
for(i=0;i<8;i=i+1)
{
cout << 8-i << " ";
for(k=0;k<8;k=k+1)
{
cout << "[";
if(tab[i][k]->kolor==BRAK)
{
cout << " ";
}
else if(tab[i][k]->kolor==BIALY)
{
cout << "B";
}
else
{
cout << "C";
}
cout << "]";
}
cout << endl;
}
cout << " A B C D E F G H";
}
else
{
for(i=7;i>=0;i=i-1)
{
cout << 8-i << " ";
for(k=7;k>=0;k=k-1)
{
cout << "[";
if(tab[i][k]->kolor==BRAK)
{
cout << " ";
}
else if(tab[i][k]->kolor==BIALY)
{
cout << "B";
}
else
{
cout << "C";
}
cout << "]"
}
cout << endl;
}
cout << " H G F E D C B A"<< endl;
}
}
bool plansza::czy_jest_bicieruch(int czarnybialy)//sprawdza czy któryś pionek ma bicie + ustawia blokady ruchu na pionki
{
int i;
int k;
int sprawdzenie=0;
for(i=0;i<8;i=i+1)
{
for(k=0;k<8;k=k+1)
{
ruchliwosc(i,y,czarnybialy);
bitewnosc(i,y,czarnybialy);
}
}
if(sprawdzenie!=0)
{
return true;
}
else
{
return false;
}
}
plansza::~plansza()
{
for(int i=0;i<8;i=i+1)
{
for(int k=0;k<8;k=k+1)
{
delete pionek tab[i][k];
}
}
}
Jakaś porada ?
Dzięki z góry za pomoc!