#include <iostream>
#include <ctime>
#include <cstdlib>
+#include <sstream>
/* Note : les coordonnées réelles vont de -100 à +100 en abscisse, et
* de -10 à +140 en ordonnée
const float dt = 0.05;
int nbJoueurs = 2;
+int score1 = 0;
+int score2 = 0;
float largeurMont;
float hauteurMont;
w.drawCircle(x, y, i);
w.msleep(20);
}
- w.setColor("white");
+ w.setColor("skyblue");
for (i = 0; i < maxray; i++) {
w.drawCircle(x, y, i);
w.msleep(10);
}
- w.fillCircle(x, y, maxray - 1);
+ // w.fillCircle(x, y, maxray - 1);
}
void dessineFlammes(DrawingWindow& w, float x0, float y0)
largeurMont = frand(largeurMin, largeurMax);
hauteurMont = frand(hauteurMin, hauteurMax);
wnd = frand(-30, 30);
+ w.setBgColor("skyblue");
w.clearGraph();
dessineTerrain(w, largeurMont, hauteurMont);
+ dessineVent(w, wnd);
dessineChateau(w, positionChateau1);
dessineChateau(w, positionChateau2);
- dessineVent(w, wnd);
+ w.setColor("wheat");
+ w.drawText(rtowX(w, positionChateau1), rtowY(w, 0) + 8, "Joueur 1",
+ Qt::AlignHCenter);
+ w.drawText(rtowX(w, positionChateau2), rtowY(w, 0) + 8, "Joueur 2",
+ Qt::AlignHCenter);
+ std::stringstream s;
+ s << score1 << " / " << score2;
+ w.drawText(rtowX(w, 0), rtowY(w, 0) + 8, s.str().c_str(),
+ Qt::AlignHCenter);
}
/* Retour : numéro du perdant, 0 sinon
vy += ay * dt;
w.msleep(10);
- w.setColor("white");
+ w.sync();
+ w.setColor("skyblue");
w.fillCircle(wx, wy, 2);
// w.setColor("black");
// w.drawPoint(wx, wy);
} else {
alpha = frand(10, 90);
v0 = frand(10, 100);
- std::cout << " [ " << alpha << " ; " << v0 << " ]\n";
+ std::cout << " [ " << (int )alpha << "° ; " << (int )v0 << " ]"
+ << std::endl;
}
alpha = deg2rad(alpha);
float x0;
if (joueur == 1) {
- x0 = positionChateau1 + 8;
+ x0 = positionChateau1 + 0.8 * largeurChateau;
} else {
- x0 = positionChateau2 - 8;
+ x0 = positionChateau2 - 0.8 * largeurChateau;
alpha = PI - alpha;
}
- float y0 = 8;
+ float y0 = hauteurChateau + 1;
perdant = tir(w, x0, y0, v0, alpha, x, y);
dessineExplosion(w, x, y);
dessineVent(w, wnd);
} while (!perdant);
dessineFlammes(w, x, y);
- std::cout << "Joueur " << perdant;
+ std::stringstream msg;
+ msg << "Joueur " << perdant;
if (perdant == joueur)
- std::cout << " s'est suicidé";
+ msg << " s'est suicidé !";
else
- std::cout << " a perdu";
- std::cout << " !\n";
+ msg << " a perdu !";
+ w.setColor("darkred");
+ w.setBgColor("white");
+ w.drawTextBg(w.width / 2, w.height / 3, msg.str().c_str(),
+ Qt::AlignCenter);
+ w.sync();
+ std::cout << msg.str() << std::endl;
return perdant;
}
void jeu(DrawingWindow& w)
{
- int score1 = 0;
- int score2 = 0;
bool rejouer = true;
do {
int perdant = jeu1(w);
score2++;
else if (perdant == 2)
score1++;
- std::cout << "### SCORE : " << score1 << " / " << score2 << " ###\n";
+ std::cout << "### SCORE : " << score1 << " / " << score2 << " ###"
+ << std::endl;
if (nbJoueurs == 0)
w.sleep(2);
else {