Piszę obiektowo w konsoli kółko i krzyżyk i gdy wszystko już zrobiłem i zdefiniowałem kompilator wykazuje mi błąd:
||=== Build: Debug in Kółko i krzyżyk konsola (compiler: GNU GCC Compiler) ===|
main.cpp||In function 'int main()':|
main.cpp|13|error: no matching function for call to 'Plansza::Plansza()'|
main.cpp|13|note: candidates are:|
Plansza.h|11|note: Plansza::Plansza(char, char, char, char, char, char, char, char, char)|
Plansza.h|11|note: candidate expects 9 arguments, 0 provided|
Plansza.h|1|note: Plansza::Plansza(const Plansza&)|
Plansza.h|1|note: candidate expects 1 argument, 0 provided|
Kod:
main.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "Plansza.h"
using namespace std;
int main()
{
cout << "Zagrajmy w kolko i krzyzyk!" << endl;
Plansza p1('n','n','n','n','n','n','n','n','n');
p1.wyswietl();
~Plansza();
return 0;
}
Plik.h
class Plansza
{
char pole1, pole2, pole3, pole4, pole5, pole6, pole7, pole8, pole9;
public:
void wyswietl();
void gra();
void wygrana();
void remis();
void odnowa();
void wyjscie();
Plansza(char, char, char, char, char, char, char, char, char);
~Plansza();
};
Plansza.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include "Plansza.h"
using namespace std;
bool won=false;
void wyswietl()
{
//n oznacza nic
cout<<"n|n|n"<<endl;
cout<<"- - -"<<endl;
cout<<"n|n|n"<<endl;
cout<<"- - -"<<endl;
cout<<"n|n|n"<<endl;
pole1='n'; pole4='n'; pole7='n';
pole2='n'; pole5='n'; pole8='n';
pole3='n'; pole6='n'; pole9='n';
}
void gra()
{
//"o" oznacza kólko, a "x" krzyzyk
char tura='o';
if(tura=='o')
{
switch(int nr_pola)
{
case 1:
pole1='o';
tura='x';
break;
case 2:
pole2='o';
tura='x';
break;
case 3:
pole3='o';
tura='x';
break;
case 4:
pole4='o';
tura='x';
break;
case 5:
pole5='o';
tura='x';
break;
case 6:
pole6='o';
tura='x';
break;
case 7:
pole7='o';
tura='x';
break;
case 8:
pole8='o';
tura='x';
break;
case 9:
pole9='o';
tura='x';
break;
default:
cout<<"Niepoprawnie podany numer pola. Tracisz ruch"<<endl;
tura='x';
}
}
if(tura=='x')
{
switch(int nr_pola)
{
case 1:
pole1='x';
tura='o';
break;
case 2:
pole2='x';
tura='o';
break;
case 3:
pole3='x';
tura='o';
break;
case 4:
pole4='x';
tura='o';
break;
case 5:
pole5='x';
tura='o';
break;
case 6:
pole6='x';
tura='o';
break;
case 7:
pole7='x';
tura='o';
break;
case 8:
pole8='x';
tura='o';
break;
case 9:
pole9='x';
tura='o';
break;
default:
cout<<"Niepoprawnie podany numer pola. Tracisz ruch"<<endl;
tura='o';
}
}
friend void wygrana();
friend void remis();
}
void wygrana()
{
if(pole1='o' && pole1==pole2 && pole2==pole3 ||
pole4='o' && pole4==pole5 && pole5==pole6 ||
pole7='o' && pole6==pole8 && pole8==pole9 ||
pole1='o' && pole1==pole4 && pole4==pole7 ||
pole2='o' && pole2==pole5 && pole5==pole8 ||
pole3='o' && pole3==pole6 && pole6==pole9 ||
pole1='o' && pole1==pole5 && pole5==pole9 ||
pole3='o' && pole3==pole5 && pole5==pole7)
{
cout<<"Wygrywa kolko!"<<endl;
cout<<"Nacisnij 'R', by zrestarowac gre "<<endl;
}
if(pole1='x' && pole1==pole2 && pole2==pole3 ||
pole4='x' && pole4==pole5 && pole5==pole6 ||
pole7='x' && pole6==pole8 && pole8==pole9 ||
pole1='x' && pole1==pole4 && pole4==pole7 ||
pole2='x' && pole2==pole5 && pole5==pole8 ||
pole3='x' && pole3==pole6 && pole6==pole9 ||
pole1='x' && pole1==pole5 && pole5==pole9 ||
pole3='x' && pole3==pole5 && pole5==pole7)
{
cout<<"Wygrywa krzyzyk!"<<endl;
cout<<"Nacisnij 'R', by zrestarowac gre "<<endl;
}
won=true;
friend void gra()
}
void remis()
{
if(pole1!='n' && pole4!='n' && pole7!='n' &&
pole2!='n' && pole5!='n' && pole8!='n' &&
pole3!='n' && pole6!='n' && pole9!='n' && won==false)
{
cout<<"Remis!"<<endl;
cout<<"Nacisnij 'R', by zrestarowac gre "<<endl;
}
}
void odnowa()
{
if(getch()==82)
{
pole1='n'; pole4='n'; pole7='n';
pole2='n'; pole5='n'; pole8='n';
pole3='n'; pole6='n'; pole9='n';
won=false;
}
}
void wyjscie()
{
if(getch()==27)
{
exit(0);
}
}
Plansza::Plansza(char p1,char p2,char p3,char p4,char p5,char p6,char p7,char p8,char p9,)
{
pole1=p1;
pole2=p2;
pole3=p3;
pole4=p4;
pole5=p5;
pole6=p6;
pole7=p7;
pole8=p8;
pole9=p9;
}
Plansza::~Plansza()
{
cout<<endl;
}
Dlaczego tak się dzieje?