bool CaseButG::ajouterCarte(CarteG *carte) { bool estAs = false; if (carte == NULL) return false; int famCarte = carte->getFamille(); int valCarte = carte->getValeur(); if (nombre() == 0) { if (valCarte != 0) { return false; } else { estAs = true; } } if (!estAs) { int famTas = getCarte(0) -> getFamille(); int valTas = getCarte(0) -> getValeur(); if (famCarte != famTas) return false; if (valCarte != valTas + 1) return false; } bool reussi = LieuG::ajouterCarte(carte); if (reussi) { carte->setDeplacable(true); carte->setCache(false); } return reussi; }
void Modele::redimensionner(int x, int y) { edt::Repere* r = static_cast<edt::Repere*> (getCarte()->getRepere()); r->redimensionner(x, y); for (it = vues.begin(); it != vues.end(); it++) ((Vue*)(*it))->initScrolls(x, y); }
Carte* Joueur::pullCarte(unsigned int i){ Carte *ret = getCarte(i); if(!ret->isDefault()){ jeu[i]->setPlayed(true); jeu[i] = jeu[0]; jeu.erase(jeu.begin()); } return ret; }
CarteG *ReceveurDonneG::retirerCarte() { CarteG *retour = NULL; if (nombre()!=0) retour = LieuG::retirerCarte(); if (nombre()!=0) getCarte(0)->setDeplacable(true); return retour; }
bool CaseButG::posAjouterCarte(CarteG *carte) { if (carte == NULL) return false; int famCarte = carte->getFamille(); int valCarte = carte->getValeur(); if (nombre() == 0 && valCarte == 0) return Cartes::posAjouterCarte(carte); if (nombre() == 0) return false; int famTas = getCarte(0) -> getFamille(); int valTas = getCarte(0) -> getValeur(); if (famCarte != famTas) return false; if (valCarte != valTas + 1) return false; return true; }
Carte* IA::jouerCarte(Carte** tas, Enchere ench){ priorite(tas, ench.getCouleur()); srand(time(NULL)); while(1){ int alea = rand()%getCarteNombre(); int valid = chercherCarte(getCarte(alea)->getNom(), tas, ench.getCouleur()); if (valid != -1){ return pullCarte(valid); } } }
bool ReceveurDonneG::ajouterCartes(Cartes &tas) { bool reussi = Cartes::ajouterCartes(tas); if (reussi) { for (int i=nombre()-1; i>=tas.nombre(); i--) { getCarte(i)->setPos(0, 0); getCarte(i)->setDeplacable(false); } for (int i=0; i<tas.nombre(); i++) { tas.getCarte(i)->setParentItem(this); tas.getCarte(i)->setPos((nombre()-i)/15*2, 0); tas.getCarte(i)->setZValue(nombre()+i+1); tas.getCarte(i)->setCache(false); tas.getCarte(i)->setDeplacable(i==0); } } return reussi; }
bool ReceveurDonneG::ajouterCarte(CarteG *carte, int pos) { bool reussi = LieuG::ajouterCarte(carte); if (reussi) { carte->setParentItem(this); carte->setPos(pos*15, 0); carte->setZValue(nombre()+1); carte->setDeplacable(true); carte->setCache(false); if (nombre()!=1) { for (int i=1; i<nombre(); i++) { getCarte(i)->setDeplacable(false); if (pos==0) getCarte(i)->setPos(0, 0); } } } return reussi; }
DonneG::DonneG(const Cartes &autre, QPixmap dessin) : LieuG(autre, dessin) { for (int i=0; i<nombre(); i++) getCarte(i)->setPos((nombre()-i)/15*2, 0); }