diff --git a/include/course.hpp b/include/course.hpp new file mode 100644 index 0000000..6e154e2 --- /dev/null +++ b/include/course.hpp @@ -0,0 +1,6 @@ +#ifndef COURSE_HPP +#define COURSE_HPP + +void course(); + +#endif diff --git a/include/jdc.hpp b/include/jdc.hpp index 66374fa..d900e9f 100644 --- a/include/jdc.hpp +++ b/include/jdc.hpp @@ -17,7 +17,7 @@ class JDC{ for (int i=0; i<4; i++){ for (int y=0; y<13; y++){ index = (i*13)+y; - this->jdc[index].couleur = (CCarte)i; + this->jdc[index].couleur = (CCarte)(i+1); this->jdc[index].valeur = (VCarte)(y+2); } } diff --git a/include/screen.hpp b/include/screen.hpp index dfd4087..d9efd47 100644 --- a/include/screen.hpp +++ b/include/screen.hpp @@ -41,7 +41,7 @@ class Screen{ } delete this->screen; puts("\033[?1049l"); // ~ alt screen - puts("\033[?25h"); // ~ inv cursor + //puts("\033[?25h"); // ~ inv cursor }; void background(){ diff --git a/src/course.cpp b/src/course.cpp new file mode 100644 index 0000000..3d43264 --- /dev/null +++ b/src/course.cpp @@ -0,0 +1,224 @@ +#include +#include +#include + +#include "course.hpp" +#include "screen.hpp" +#include "jdc.hpp" +#include "carte.hpp" + +carte tirer(JDC* j){ + carte c = j->pop(); + if (c.valeur == A) return tirer(j); + return c; +} + +static void spriteDel(sprite* s){ + for (int i=0; irow; i++){ + delete s->data[i]; + } + delete s->data; +} + +bool victoire(Screen* s, char* c){ + char ligne[34] = " VICTOIRE "; + strcat(ligne, c); + strcpy(s->screen[s->ligne()-1], ligne); + return true; +} + +void course(){ + int HCASE = 4; + + Screen sc(24, 34); + + strcpy(sc.screen[0], "Appuyer sur * pour tirer une carte"); + strcpy(sc.screen[1], "Appuyer sur q pour quitter "); + strcpy(sc.screen[2], " "); + strcpy(sc.screen[sc.ligne()-1], " "); + strcpy(sc.screen[sc.ligne()-2], " "); + + for (int i=0; i<4; i++){ + strcpy(sc.screen[3+i*4], " | | | | "); + strcpy(sc.screen[4+i*4], " | | | | "); + strcpy(sc.screen[5+i*4], " | | | | "); + strcpy(sc.screen[6+i*4], "----+----+----+----+---- "); + } + strcpy(sc.screen[19], " | | | | "); + strcpy(sc.screen[20], " | | | | "); + strcpy(sc.screen[21], " | | | | "); + + constexpr point Ppal1 = {20, 3}; + constexpr point Ppal2 = {20, 7}; + constexpr point Ppal3 = {20, 11}; + constexpr point Ppal4 = {20, 15}; + sc.addCard(Ppal1, CARTERETOURNE); + sc.addCard(Ppal2, CARTERETOURNE); + sc.addCard(Ppal3, CARTERETOURNE); + sc.addCard(Ppal4, CARTERETOURNE); + + point Ppioche = {29, 19}; + sc.addCard(Ppioche, CARTERETOURNE); + + point Ppic = {0, 19}; + point Pcoeur = {5, 19}; + point Pcarreau = {10, 19}; + point Ptrefle = {15, 19}; + sc.addCard(Ppic, {A, PIC}); + sc.addCard(Pcoeur, {A, COEUR}); + sc.addCard(Pcarreau, {A, CARREAU}); + sc.addCard(Ptrefle, {A, TREFLE}); + + sprite bar = {NULL, 3, 4}; + bar.data = new char*[bar.row]; + for (int i=0; i> input; + int palier = 15; + while (input != 'q' && !vic){ + carte c = tirer(&j); + sc.addCard(Ppioche, c); + + switch (c.couleur){ + case PIC: + if (Ppic.x <= 3){ + vic = victoire(&sc, "PIC"); + }else{ + sc.addSprite(Ppic, bar); + Ppic.x -= HCASE; + sc.addCard(Ppic, {A, PIC}); + } + break; + case COEUR: + if (Pcoeur.x <= 3){ + vic = victoire(&sc, "COEUR"); + }else{ + sc.addSprite(Pcoeur, bar); + Pcoeur.x -= HCASE; + sc.addCard(Pcoeur, {A, COEUR}); + } + break; + case CARREAU: + if (Pcarreau.x <= 3){ + vic = victoire(&sc, "CARREAU"); + }else{ + sc.addSprite(Pcarreau, bar); + Pcarreau.x -= HCASE; + sc.addCard(Pcarreau, {A, CARREAU}); + } + break; + case TREFLE: + if (Ptrefle.x <= 3){ + vic = victoire(&sc, "TREFLE"); + }else{ + sc.addSprite(Ptrefle, bar); + Ptrefle.x -= HCASE; + sc.addCard(Ptrefle, {A, TREFLE}); + } + break; + } + + if (Ppic.x <= palier && Pcoeur.x <= palier && Pcarreau.x <= palier && Ptrefle.x <= palier){ + carte p = tirer(&j); + switch (p.couleur){ + case PIC: + sc.addSprite(Ppic, vide); + Ppic.x += HCASE; + sc.addCard(Ppic, {A, PIC}); + break; + case COEUR: + sc.addSprite(Pcoeur, vide); + Pcoeur.x += HCASE; + sc.addCard(Pcoeur, {A, COEUR}); + break; + case CARREAU: + sc.addSprite(Pcarreau, vide); + Pcarreau.x += HCASE; + sc.addCard(Pcarreau, {A, CARREAU}); + break; + case TREFLE: + sc.addSprite(Ptrefle, vide); + Ptrefle.x += HCASE; + sc.addCard(Ptrefle, {A, TREFLE}); + break; + } + + switch(palier){ + case Ppal1.x: + sc.addCard(Ppal1, p); + break; + case Ppal2.x: + sc.addCard(Ppal2, p); + break; + case Ppal3.x: + sc.addCard(Ppal3, p); + break; + case Ppal4.x: + sc.addCard(Ppal4, p); + break; + } + + palier -= HCASE; + } + + sc.display(); + //manche(&sc, &j); + std::cin >> input; + } + + spriteDel(&bar); + spriteDel(&vide); +} + +//Appuyer sur * pour tirer une carte +//Appuyer sur q pour quitter +// +//+--+| | | |+--+ +//|AP|| | | ||??| +//+--+| | | |+--+ +//----+----+----+----+---- +// |+--+| |+--+|+--+ +// ||AC|| ||AT|||??| +// |+--+| |+--+|+--+ +//----+----+----+----+---- +// | |+--+| |+--+ +// | ||AK|| ||TT| +// | |+--+| |+--+ +//----+----+----+----+---- +// | | | |+--+ +--+ +// | | | ||TT| |??| +// | | | |+--+ +--+ +//----+----+----+----+---- +// | | | | +// | | | | +// | | | | +// VICTOIRE CARREAU +// 4 esp + +// 17 34 diff --git a/src/main.cpp b/src/main.cpp index e40c507..4b6a7a4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,6 +9,7 @@ #include "screen.hpp" #include "jdc.hpp" #include "machine.hpp" +#include "course.hpp" void menu(){ static Screen s(7, 18); @@ -38,18 +39,15 @@ void selectGame(){ switch (input){ case '1': //blackjack(); - std::cout << "blackjack" << std::endl; break; case '2': //roulette(); - std::cout << "roulette" << std::endl; break; case '3': machine(); break; case '4': - //course(); - std::cout << "course" << std::endl; + course(); break; } if (input != 'q'){