// Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "wojna.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
const int N=52,M=156;
int IloscTaliiKart,IloscGraczy; // WPROWADZAMY ILOSC GRACZY 2 LUB 3 ORAZ ILOMA TALIAMI BEDZIEMY GRAC(brak limitu talii,dziala na kazdej liczbie,
bool x=true,xx=true,xxx=true; // zmienne bool do petli
// start
Karta *talia=new Karta[52*IloscTaliiKart];// dynamiczna tablica na okreslona przez gracza ilosc talii
char *figura[13]= {"2","3","4","5","6","7","8","9","10","walet","dama","krol","as"};
char *kolor[4]= {"trefl","karo","kier","pik"};
int numer_rundy=1,licznik_gracza1=0,licznik_gracza2=0,licznik_gracza3=0; // zmienne do zliczania rund i liczby kart w talii gracza
Karta a1;
Lista *gracz1 = new Lista; // glowa list
Lista *gracz2 = new Lista;
Lista *gracz3 = new Lista;
Lista *koniec1, *koniec2,*koniec3; // ogon listy
Lista *TaliaGracza1 = gracz1;
Lista *TaliaGracza2 = gracz2; //zmienne do wyswietlenia kart testowo
Lista *TaliaGracza3 = gracz3;
void __fastcall TForm1::PIloscTalii1Click(TObject *Sender)
{
IloscTaliiKart=1;
IloscTalii -> Visible=false;
PIloscTalii1 ->Visible=false;
PIloscTalii2 ->Visible=false;
PIloscTalii3 ->Visible=false;
PIloscTalii4 ->Visible=false;
PIloscTalii5 ->Visible=false;
a1.zlozTalie(talia,figura,kolor,IloscTaliiKart); // wywołanie tego powoduje błąd
}
// wojna.h
class Lista;
class Karta
{
public:
char *figura;
char *kolor;
int war;
void zlozTalie(Karta *wTalia, char *wFigura[],char *wKolor[],int iloscTaliiKart); // skladamy talie, sami wybierazmy ilosc talii
void tasujNA3(Karta Z[],int ilosc_talii); // tasowanie kart
void wypiszTALIE(Lista *w); // wypisanie zawartoscii talii
void usunZPoczatku(Lista *&glowa); // usuwanie z kart z glowy
void wyswietl(Karta *wTalia,int iloscTaliiKart);// wyswietlanie talii
void rozdajNA2 (Lista* gracz1, Lista* gracz2, Karta talia[], Lista* & koniec1, Lista* & koniec2,int iloscTaliiKart); // rozdanie kart na 2 graczy
void rozdajNA3modulo1(Lista* gracz1, Lista* gracz2,Lista* gracz3, Karta talia[], Lista* & koniec1, Lista* & koniec2,Lista * & koniec3,int iloscTaliiKart ); // rozdanie na 3 graczy
void zwyciestwo_gracza1_2graczy(Lista* gracz1, Lista* gracz2, Lista* & koniec1, Lista* & koniec2); //zwyciestwa poszczegolnych graczy
void zwyciestwo_gracza2_2graczy(Lista* gracz1, Lista* gracz2, Lista* & koniec1, Lista* & koniec2);
void zwyciestwo_gracza1_3graczy(Lista* gracz1, Lista* gracz2,Lista* gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);
void zwyciestwo_gracza2_3graczy(Lista* gracz1, Lista* gracz2,Lista* gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);
void zwyciestwo_gracza3_3graczy(Lista* gracz1, Lista* gracz2,Lista* gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);
void wojna_2graczy(Lista* & gracz1, Lista* & gracz2, Lista* & koniec1, Lista* & koniec2); // wojny poszczeglnych graczy
void wojna_2graczy_iloscgraczy3(Lista* & gracz1, Lista* & gracz2,Lista* & gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);
void wojna_3graczy(Lista* & gracz1, Lista* & gracz2,Lista* & gracz3, Lista* & koniec1, Lista* & koniec2,Lista* & koniec3);
};
class Lista
{
public:
Karta karty;
Lista *nastepna;
};
//wojna.cpp
#include"wojna.h"
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <ctime>
#include <windows.h>
//
//
//
using namespace std;
void Karta::zlozTalie(Karta *wTalia, char *wFigura[],char *wKolor[],int iloscTaliiKart)
{
for(int i=0; i<52*iloscTaliiKart; i++) // na 52 zmienic
{
wTalia[i].figura=wFigura[i%13];
wTalia[i].war= i%13;
wTalia[i].kolor=wKolor[i/13];
}
}
void Karta::wypiszTALIE(Lista *w)
{
while(w!=NULL)
{
cout << w->karty.figura << "\n";
w = w->nastepna;
}
cout << endl;
}
Witam,
zaczynam swoją przygodę z builderem c++ , napisałem w codeblocksie działającą grę w karty i zaczynam ją przenosić na wersję graficzną.Natomiast mam problem już na samym starcie, gdyż nie mogę złożyć talii poprzez funkcje z innych plików, co skutkuje zawsze jakimś błędem.
Dziękuję za pomoc i pozdrawiam.