Ciao a tutti, vi scrivo perche il mio programma da qualche problema e non effettua il debug...
di preciso da problemi come
[Linker Error] undefined reference to `readimagefile'
[Linker Error] undefined reference to `setbkcolor'
ld returned 1 exit status
C:\Users\Jenny\Desktop\21.05 12.3\Makefile.win [Build Error] [Output/MingW/21.05] Error 1
//MAIN.cpp
#include <cstdlib>
#include <iostream>
#include <graphics.h>
#include <windows.h>
#include "Classi\Carta.h"
#include "Classi\Giocatore.h"
using namespace std;
//Dichiarazione Variabili Globali
Carta carte[40];
int iMazzo=0;
Carta briscola;
int semeBriscola;
Giocatore giocatori[2]; //giocatori[0]=Utente 1, giocatori[1]=Utente2
Carta turni[2][3]; //turni[0][...]=turno Utente1, turni[1][...]=turno Utente2
int turniGiocati=0;
Carta carteInTavola[2]; //carteInTavola[0]=carta Utente1, carteInTavola[1]=carta Utente2
int cartaGiocata[2]; //cartaGiocata[0]=carta giocata Utente1, cartaGiocata[1]=carta giocata Utente2
char testoPunteggio[20];//visualizza man mano i messaggi
bool primo;
//Dichiarazione Funzioni Globali
void generaCarte();
void mescola();
void preparaTavolo();//grafica
void assegnazioneCarte();
void assegnazioneValoriRifBriscola();
void stampaTurni();
//Chi gioca per primo
void giocatore1Primo();
void giocatore2Primo();
//Chi gioca per secondo
void giocatore1Secondo();
void giocatore2Secondo();
//Penultimo Turno
void giocatore1PrimoPen();
void giocatore2PrimoPen();
void giocatore1SecondoPen();
void giocatore2SecondoPen();
//Ultimo Turno
void giocatore1PrimoUlt();
void giocatore2PrimoUlt();
void giocatore1SecondoUlt();
void giocatore2SecondoUlt();
//Vincitori
void vincitoreTurno();
void vincitoreTerUlt();
void vincitorePenUlt();
void vincitoreFinale();
void giocaDiNuovo();
//Dichiarazione Posizioni Interfaccia
#define YGIOC1 500// coordinata y delle carte del giocatore1
#define YGIOC2 10//coordinata y delle carte del giocatore 2
#define XCARTA1 600// coordinata x della prima carta del giocatore 2
#define XMAZZO 300// coordinata x del mazzo
#define YMAZZO 260// coordinata y del mazzo
#define YCARTAGIOC2 0//Grandezza carte altezza carta<?>
#define YCARTAGIOC1 0
#define DISTANZA 140//Distanza tra una carta e l'altra in mano a giocatore1 e giocatore 2
#define XCARTAGIOC1 675//Dove va la carta giocata dal giocatore1 LARGHEZZA
#define XCARTAGIOC2 830//Dove va la carta giocata dal giocatore2 LARGHEZZA
#define YCARTAGIOCATA 260//dove vanno le carte giocate ALTEZZA(In tavola)
#define XTESTO 175
#define YTESTO1 100
#define YTESTO2 130
#define YTESTOGIOC1 60
#define YTESTOGIOC2 45
#define XTESTOREPLAY 500
#define YTESTOREPLAY 480
int main(int argc, char *argv[])
{
srand(time(NULL));//funzione per inizializzazione dei numeri casuali
preparaTavolo();
generaCarte();
primo=rand()%2;//estrazione del primo giocatore in modo casuale
bool trovatoPrimo=false;
int inizia;
while(!trovatoPrimo)
{
inizia=rand()%3;;//genera numero casuale tra 0,1,2
if(inizia==1)
{
primo=true;
trovatoPrimo=true;
}
else if(inizia==2)
{
primo=false;
trovatoPrimo=true;
}
}
for(int j=0;j<40;j++)
for(int i=0;i<1000;i++)
swap(carte[j],carte[rand()%40]);
assegnazioneCarte();
cout<<iMazzo<<endl;
briscola.stampa(XMAZZO-180,YMAZZO);
readimagefile("dorso.jpg",XMAZZO,YMAZZO,XMAZZO+120,YMAZZO+200);//dorso delle carte
stampaTurni();
setbkcolor(2);
setcolor(15);
if(primo==0)
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
}
else
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
}
int turniRimanenti;
//Scritta punteggio
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore2: ");
outtextxy(XTESTO,YTESTOGIOC1,"Giocatore1: ");
outtextxy(XTESTO+50,YTESTOGIOC2,"0");
outtextxy(XTESTO+35,YTESTOGIOC1,"0");
while(turniGiocati<17)
{
outtextxy(XTESTO,YTESTO2,"Turni restanti: ");
turniRimanenti=20-turniGiocati;
itoa(turniRimanenti,testoPunteggio,10);
outtextxy(XTESTO+95,YTESTO2,testoPunteggio);
if(primo)
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1Primo();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2Secondo();
}
else
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2Primo();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1Secondo();
}
vincitoreTurno();
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore2: ");
itoa(giocatori[0].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+50,YTESTOGIOC2,testoPunteggio);
outtextxy(XTESTO,YTESTOGIOC1,"Giocatore1: ");
itoa(giocatori[1].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+35,YTESTOGIOC1,testoPunteggio);
}
//Terzultimo Turno
readimagefile("tavolo.bmp",XMAZZO,YMAZZO,XMAZZO+120,YMAZZO+200);//pone il rettangolo verde sul mazzo il modo che scompaia
briscola.stampa(XMAZZO-180,YMAZZO,false,true);
outtextxy(XTESTO,YTESTO2,"Turni restanti: ");
turniRimanenti=20-turniGiocati;
itoa(turniRimanenti,testoPunteggio,10);
outtextxy(XTESTO+95,YTESTO2,testoPunteggio);
if(primo)
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1Primo();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2Secondo();
}
else
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2Primo();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1Secondo();
}
vincitoreTerUlt();
cout<<"Giocatore1: "<<giocatori[1].getPunteggio()<<endl<<"Giocatore2: "<<giocatori[0].getPunteggio()<<endl;
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore2: ");
itoa(giocatori[0].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+50,YTESTOGIOC2,testoPunteggio);
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore1: ");
itoa(giocatori[1].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+35,YTESTOGIOC1,testoPunteggio);
//Penultimo Turno
cout<<"Restano "<<20-turniGiocati<<" turni da giocare"<<endl;
outtextxy(XTESTO,YTESTO2,"Turni restanti: ");
turniRimanenti=20-turniGiocati;
itoa(turniRimanenti,testoPunteggio,10);
outtextxy(XTESTO+95,YTESTO2,testoPunteggio);
if(primo)
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1PrimoPen();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2SecondoPen();
}
else
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2PrimoPen();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1SecondoPen();
}
vincitorePenUlt();
cout<<"Giocatore1: "<<giocatori[1].getPunteggio()<<endl<<"Giocatore2: "<<giocatori[0].getPunteggio()<<endl;
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore2: ");
itoa(giocatori[0].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+50,YTESTOGIOC2,testoPunteggio);
outtextxy(XTESTO,YTESTOGIOC1,"Giocatore1: ");
itoa(giocatori[1].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+35,YTESTOGIOC1,testoPunteggio);
//Ultimo Turno
cout<<"Restano "<<20-turniGiocati<<" turni da giocare"<<endl;
outtextxy(XTESTO,YTESTO2,"Turni restanti: ");
turniRimanenti=20-turniGiocati;
itoa(turniRimanenti,testoPunteggio,10);
outtextxy(XTESTO+95,YTESTO2,testoPunteggio);
if(primo)
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1PrimoUlt();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2SecondoUlt();
}
else
{
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore2... ");
giocatore2PrimoUlt();
outtextxy(XTESTO,YTESTO1,"Tocca a Giocatore1... ");
giocatore1SecondoUlt();
}
vincitoreFinale();
outtextxy(XTESTO,YTESTO2,"Turni restanti: ");
outtextxy(XTESTO+95,YTESTO2,"0");
cout<<"Giocatore1: "<<giocatori[1].getPunteggio()<<endl<<"Giocatore2: "<<giocatori[0].getPunteggio()<<endl;
outtextxy(XTESTO,YTESTOGIOC2,"Giocatore2: ");
itoa(giocatori[0].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+50,YTESTOGIOC2,testoPunteggio);
outtextxy(XTESTO,YTESTOGIOC1,"Giocatore1: ");
itoa(giocatori[1].getPunteggio(),testoPunteggio,10);
outtextxy(XTESTO+35,YTESTOGIOC1,testoPunteggio);
outtextxy(XTESTO,YTESTO1," ");
outtextxy(XTESTO,YTESTO2," ");
if(giocatori[0].getPunteggio()>giocatori[1].getPunteggio())
{
outtextxy(XTESTO,YTESTOGIOC1+15,"Ha vinto Giocatore2");
}
else if(giocatori[0].getPunteggio()<giocatori[1].getPunteggio())
{
outtextxy(XTESTO,YTESTOGIOC1+15,"Ha vinto Giocatore1");
}
else
{
outtextxy(XTESTO,YTESTOGIOC1+15,"Pareggio");
}
giocaDiNuovo();
return EXIT_SUCCESS;
}
void generaCarte()
{
carte[0].setImagePath("2c.bmp");
carte[1].setImagePath("3c.bmp");
carte[2].setImagePath("4c.bmp");
carte[3].setImagePath("5c.bmp");
carte[4].setImagePath("6c.bmp");
carte[5].setImagePath("7c.bmp");
carte[6].setImagePath("jc.bmp");
carte[7].setImagePath("qc.bmp");
carte[8].setImagePath("kc.bmp");
carte[9].setImagePath("ac.bmp");
carte[10].setImagePath("2d.bmp");
carte[11].setImagePath("3d.bmp");
carte[12].setImagePath("4d.bmp");
carte[13].setImagePath("5d.bmp");
carte[14].setImagePath("6d.bmp");
carte[15].setImagePath("7d.bmp");
carte[16].setImagePath("jd.bmp");
carte[17].setImagePath("qd.bmp");
carte[18].setImagePath("kd.bmp");
carte[19].setImagePath("ad.bmp");
carte[20].setImagePath("2f.bmp");
carte[21].setImagePath("3f.bmp");
carte[22].setImagePath("4f.bmp");
carte[23].setImagePath("5f.bmp");
carte[24].setImagePath("6f.bmp");
carte[25].setImagePath("7f.bmp");
carte[26].setImagePath("jf.bmp");
carte[27].setImagePath("qf.bmp");
carte[28].setImagePath("kf.bmp");
carte[29].setImagePath("af.bmp");
carte[30].setImagePath("2p.bmp");
carte[31].setImagePath("3p.bmp");
carte[32].setImagePath("4p.bmp");
carte[33].setImagePath("5p.bmp");
carte[34].setImagePath("6p.bmp");
carte[35].setImagePath("7p.bmp");
carte[36].setImagePath("jp.bmp");
carte[37].setImagePath("qp.bmp");
carte[38].setImagePath("kp.bmp");
carte[39].setImagePath("ap.bmp");
for(int i=0;i<40;i++)
{
if(i>=0&&i<10)
{
carte[i].setSeme(1);
}
else if(i>9&&i<20)
{
carte[i].setSeme(2);
}
else if(i>19&&i<30)
{
carte[i].setSeme(3);
}
else if(i>29&&i<40)
{
carte[i].setSeme(4);
}
if(i<6)
{
carte[i].setPunteggio(0);
}
else if(i>9&&i<16)
{
carte[i].setPunteggio(0);
}
else if(i>19&&i<26)
{
carte[i].setPunteggio(0);
}
else if(i>29&&i<36)
{
carte[i].setPunteggio(0);
}
carte[i].setValNum((i%10)+1);
}
carte[1].setValNum(10);
carte[11].setValNum(10);
carte[21].setValNum(10);
carte[31].setValNum(10);
carte[9].setValNum(11);
carte[19].setValNum(11);
carte[29].setValNum(11);
carte[39].setValNum(11);
carte[6].setValNum(7);
carte[16].setValNum(7);
carte[26].setValNum(7);
carte[36].setValNum(7);
carte[7].setValNum(8);
carte[17].setValNum(8);
carte[27].setValNum(8);
carte[37].setValNum(8);
carte[8].setValNum(9);
carte[18].setValNum(9);
carte[28].setValNum(9);
carte[38].setValNum(9);
carte[1].setPunteggio(10);
carte[11].setPunteggio(10);
carte[21].setPunteggio(10);
carte[31].setPunteggio(10);
carte[9].setPunteggio(11);
carte[19].setPunteggio(11);
carte[29].setPunteggio(11);
carte[39].setPunteggio(11);
carte[6].setPunteggio(2);
carte[16].setPunteggio(2);
carte[26].setPunteggio(2);
carte[36].setPunteggio(2);
carte[7].setPunteggio(3);
carte[17].setPunteggio(3);
carte[27].setPunteggio(3);
carte[37].setPunteggio(3);
carte[8].setPunteggio(4);
carte[18].setPunteggio(4);
carte[28].setPunteggio(4);
carte[38].setPunteggio(4);
}
void mescola()
{
srand(time(NULL));
for(int j=0;j<900000;j++)
for(int i=0;i<40;i++)
{
swap(carte[i],carte[rand()%40]);
}
}
void preparaTavolo()
{
initwindow(1460,700,"Briscola",2,2,false);//initwindows(x,y,"",A,B,false) x->limite destro,y->limite inferiorefinestra, non grafica A, B dove riscpetto allo schermo si apre la finestra di gioco
setcolor(2);
for(int i=0;i<700;i++)
{
line(0,i,1460,i);
}
}
void assegnazioneCarte()
{
briscola=carte[6];
swap(carte[6],carte[39]);
assegnazioneValoriRifBriscola();
for(int i=0;i<3;i++)//i=0,1,2=carte
for(int j=0;j<2;j++)//j=0,1=giocatori
{
turni[j][i]=carte[iMazzo++];
}
}
void assegnazioneValoriRifBriscola()
{
for(int i=0;i<40;i++)
{
if(carte[i].getSeme()==briscola.getSeme())
{
carte[i].setValNum(carte[i].getValNum()+21);
}
}
}
void stampaTurni()
{
for(int i=0;i<3;i++)
{
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2);
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1);
}
}
void giocatore1Primo()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<3;i++)
{
if((posx>(XCARTA1+(100*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))//setta la posizione di click del mouse come selezione della carta in questione
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].incValNum(11);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
semeBriscola=carteInTavola[1].getSeme();
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[1].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2Primo(){
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<3;i++)
{
if((posx>(XCARTA1+(100*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))//setta la posizione di click del mouse come selezione della carta in questione
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].incValNum(11);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA);
semeBriscola=carteInTavola[0].getSeme();
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[0].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore1Secondo()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<3;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))//Click del mouse sulla carta che il giocatore vuole giocare
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2Secondo()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<3;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))//Click del mouse sulla carta che il giocatore vuole giocare
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].stampa(XCARTAGIOC1,YCARTAGIOCATA);
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore1PrimoPen()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].incValNum(11);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
semeBriscola=carteInTavola[1].getSeme();
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[1].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2PrimoPen()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].incValNum(11);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA);
semeBriscola=carteInTavola[0].getSeme();
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[0].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore1SecondoPen()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2SecondoPen()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA);
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore1PrimoUlt()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<1;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].incValNum(11);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
semeBriscola=carteInTavola[1].getSeme();
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[1].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2PrimoUlt()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<1;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].incValNum(11);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA);
semeBriscola=carteInTavola[0].getSeme();
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
if(turni[j][k].getSeme()==carteInTavola[0].getSeme())
turni[j][k].incValNum(11);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore1SecondoUlt()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC1)&&(posy<YGIOC1+200)))
{
cartaGiocata[1]=i;
carteInTavola[1]=turni[1][i];
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA);
turni[1][i].stampa(XCARTA1+(DISTANZA*i),YGIOC1,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void giocatore2SecondoUlt()
{
int posx,posy;
clearmouseclick(WM_LBUTTONDOWN);
int stato=0;
while(!stato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
for(int i=0;i<2;i++)
{
if((posx>(XCARTA1+(120*i))&&posx<((XCARTA1+(120*i))+120))&&((posy>YGIOC2)&&(posy<YGIOC2+200)))
{
cartaGiocata[0]=i;
carteInTavola[0]=turni[0][i];
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA);
turni[0][i].stampa(XCARTA1+(DISTANZA*i),YGIOC2,false,true);
return;
}
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
}
void vincitoreTurno()
{
Sleep(1500);
if(carteInTavola[0].getValNum()>carteInTavola[1].getValNum())
{
giocatori[0].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=false;
}
else
{
giocatori[1].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=true;
}
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
{
if(turni[j][k].getSeme()==semeBriscola)
turni[j][k].incValNum(-11);
}
if(!primo)
{
turni[0][cartaGiocata[0]]=carte[iMazzo++];
turni[1][cartaGiocata[1]]=carte[iMazzo++];
//turni[0][cartaGiocata[0]].set2(true);
}
else
{
turni[1][cartaGiocata[1]]=carte[iMazzo++];
turni[0][cartaGiocata[0]]=carte[iMazzo++];
//turni[0][cartaGiocata[0]].set2(true);
}
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA,false,true);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA,false,true);
stampaTurni();
turniGiocati++;
}
void vincitoreTerUlt()
{
Sleep(1500);
if(carteInTavola[0].getValNum()>carteInTavola[1].getValNum())
{
giocatori[0].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=false;
}
else
{
giocatori[1].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=true;
}
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
{
if(turni[j][k].getSeme()==semeBriscola)
turni[j][k].incValNum(-11);
}
if(cartaGiocata[0]!=2)
{
swap(turni[0][2],turni[0][cartaGiocata[0]]);
}
if(cartaGiocata[1]!=2)
{
swap(turni[1][2],turni[1][cartaGiocata[1]]);
}
stampaTurni();
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC2,XCARTA1+(DISTANZA*2)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC1,XCARTA1+(DISTANZA*2)+120,YGIOC1+200);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA,false,true);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA,false,true);
turniGiocati++;
}
void vincitorePenUlt ()
{
Sleep(1500);
if(carteInTavola[0].getValNum()>carteInTavola[1].getValNum())
{
giocatori[0].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=false;
}
else
{
giocatori[1].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=true;
}
for(int j=0;j<2;j++)
for(int k=0;k<3;k++)
{
if(turni[j][k].getSeme()==semeBriscola)
turni[j][k].incValNum(-11);
}
if(cartaGiocata[0]!=1)
{
swap(turni[0][1],turni[0][cartaGiocata[0]]);
}
if(cartaGiocata[1]!=1)
{
swap(turni[1][1],turni[1][cartaGiocata[1]]);
}
stampaTurni();
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*1),YGIOC2,XCARTA1+(DISTANZA*1)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*1),YGIOC1,XCARTA1+(DISTANZA*1)+120,YGIOC1+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC2,XCARTA1+(DISTANZA*2)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC1,XCARTA1+(DISTANZA*2)+120,YGIOC1+200);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA,false,true);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA,false,true);
turniGiocati++;
}
void vincitoreFinale()
{
Sleep(1500);
if(carteInTavola[0].getValNum()>carteInTavola[1].getValNum())
{
giocatori[0].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=false;
}
else
{
giocatori[1].incrementaPungeggio(carteInTavola[0].getPunteggio()+carteInTavola[1].getPunteggio());
primo=true;
}
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*0),YGIOC2,XCARTA1+(DISTANZA*0)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*0),YGIOC1,XCARTA1+(DISTANZA*0)+120,YGIOC1+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*1),YGIOC2,XCARTA1+(DISTANZA*1)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*1),YGIOC1,XCARTA1+(DISTANZA*1)+120,YGIOC1+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC2,XCARTA1+(DISTANZA*2)+120,YGIOC2+200);
readimagefile("tavolo.bmp",XCARTA1+(DISTANZA*2),YGIOC1,XCARTA1+(DISTANZA*2)+120,YGIOC1+200);
carteInTavola[0].stampa(XCARTAGIOC2,YCARTAGIOCATA,false,true);
carteInTavola[1].stampa(XCARTAGIOC1,YCARTAGIOCATA,false,true);
turniGiocati++;
}
//dimensioni rettangoli per rigiocare
#define XINIZRECT1 XTESTOREPLAY
#define YINIZRECT 500
#define XFINRECT1 576
#define YFINRECT 536
#define XINIZRECT2 580
#define XFINRECT2 656
void giocaDiNuovo()
{
outtextxy(XTESTOREPLAY,YTESTOREPLAY,"Fare un'altra partita?");
readimagefile("rettangolo.jpg",XINIZRECT1,YINIZRECT,XFINRECT1,YFINRECT);
readimagefile("rettangolo.jpg",XINIZRECT2,YINIZRECT,XFINRECT2,YFINRECT);
outtextxy(XTESTOREPLAY+31,YTESTOREPLAY+29,"Si");
outtextxy(XTESTOREPLAY+80+31,YTESTOREPLAY+29,"No");
clearmouseclick(WM_LBUTTONDOWN);
int cliccato=0;
int posx,posy;
while(!cliccato)
{
if(ismouseclick(WM_LBUTTONDOWN))
{
posx=mousex();
posy=mousey();
if(posx>XINIZRECT1&&posx<XFINRECT1&&posy>YINIZRECT&&posy<YFINRECT)
{
cliccato=1;
}
else if(posx>XINIZRECT2&&posx<XFINRECT2&&posy>YINIZRECT&&posy<YFINRECT)
{
cliccato=-1;
}
clearmouseclick(WM_LBUTTONDOWN);
}
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
if(cliccato==1)
{
//CreateProcess( NULL,"Briscola.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi );
ShellExecute(NULL,NULL,"Briscola.exe",NULL,NULL,SW_SHOWDEFAULT);
}
}