master
antoine.perederii 2 years ago
parent 98e585bdc9
commit 9f2ce93716

@ -2,6 +2,29 @@
"files.associations": {
"iostream": "cpp",
"string": "cpp",
"ostream": "cpp"
"ostream": "cpp",
"*.tcc": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"compare": "cpp",
"concepts": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"exception": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"istream": "cpp",
"limits": "cpp",
"new": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"type_traits": "cpp",
"typeinfo": "cpp"
}
}

@ -1,14 +1,26 @@
exe : monstre.o chevalier.o test.o
g++ monstre.o chevalier.o test.o -o exe
#CC : le compilateur à utiliser
CC=g++
monstre.o : monstre.cpp monstre.hpp
g++ -c monstre.cpp
#CFLAGS : les options de compilation
CFLAGS= -std=c++17 -Wall
chevalier.o : chevalier.cpp chevalier.hpp
g++ -c chevalier.cpp
# les fichiers sources : tous les fichiers présents dans src/
SRC=$(wildcard src/*.cpp)
test.o : test.cpp
g++ -c test.cpp
# les fichiers objets (.o)
OBJ=$(patsubst src/%.cpp,obj/%.o,$(SRC))
#edition des liens : génération de l'exécutable à partir des .o
bin/exe: $(OBJ)
$(CC) $(OBJ) -o $@
# génération des .o à partir des .cpp et .hpp crrespondants :
obj/%.o: src/%.cpp
$(CC) $(CFLAGS) -c $< -o $@
#nettoyage : destruction des .o et de l'exécutable
clean:
rm *.o exe
rm obj/*.o bin/exe

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,18 +0,0 @@
#include "monstre.hpp"
#include <iostream> // cout, endl
using namespace std;
Monstre::Monstre(string nom, int nbPtsVie, int force)
: nom{nom}, nbPtsVie{nbPtsVie}, force{force}
{
cout << "Monstre " << nom << " créé" << endl;
}
void Monstre::rugir(string message) {
cout << "--" << nom << "(" << nbPtsVie << ")" << "-- : " << message << endl;
}
Monstre::~Monstre() {
cout << "destruction du Monstre" << nom << endl;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,4 +1,5 @@
#include "chevalier.hpp"
#include "monstre.hpp"
#include <iostream>
using namespace std;
@ -18,7 +19,26 @@ Chevalier::~Chevalier() {
}
Chevalier::Chevalier(int bouclier, int arme)
: titre{"Mr Incoonu"}, ptsDeVie{10}, puissArme{arme}, puissBouclier{bouclier}
: Chevalier{"Mr Incoonu", bouclier, arme}
{
cout << "Naissance de " << titre << endl;
}
void Chevalier::subirAttaque(int degats) {
if(degats > puissBouclier)
{
ptsDeVie = ptsDeVie -(degats - puissBouclier);
parler("Je suis touché");
}
else parler("Tu m'as manqué !");
}
void Chevalier::subirEtContreAttaquer(Monstre *monstre) {
subirAttaque(monstre->force);
if(ptsDeVie > 0)
{
parler(monstre->nom + " tu crois que je vais me laisser faire !");
monstre->subirContreEtAttaquer(this);
}
else parler("Aie ! Je me meurs !!!");
}

@ -3,6 +3,8 @@
#include <string>
class Monstre;
class Chevalier {
public:
std::string titre;
@ -12,7 +14,9 @@ public:
Chevalier(std::string titre, int bouclier, int arme);
Chevalier(int bouclier, int arme);
void subirAttaque(int degats);
void parler(std::string message);
void subirEtContreAttaquer(Monstre *monstre);
~Chevalier();
};

@ -0,0 +1,45 @@
#include "monstre.hpp"
#include "chevalier.hpp"
#include <iostream> // cout, endl
using namespace std;
Monstre::Monstre(string nom, int nbPtsVie, int force)
: nom{nom}, nbPtsVie{nbPtsVie}, force{force}
{
cout << "Monstre " << nom << " créé" << endl;
}
void Monstre::rugir(string message) {
cout << "--" << nom << "(" << nbPtsVie << ")" << "-- : " << message << endl;
}
Monstre::~Monstre() {
cout << "destruction du Monstre" << nom << endl;
}
void Monstre::attaquerSournoisement(Chevalier *chevalier) {
rugir("Je vais te tuer !");
chevalier->subirAttaque(force);
}
void Monstre::attaquerFranchement(Chevalier *chevalier) {
rugir("Prends ça " + chevalier->titre);
chevalier->subirEtContreAttaquer(this);
}
void Monstre::subirContreEtAttaquer(Chevalier *chevalier) {
nbPtsVie = nbPtsVie - chevalier->puissArme;
rugir("Je subit l'attaque !!! Aie");
if(nbPtsVie > 0)
{
attaquerFranchement(chevalier);
}
else rugir("Je me meurs !! heurg heurg heurg !");
}
Monstre::Monstre()
: Monstre{"Mr Inconnu", 15,18}
{
cout << "Monstre " << nom << " créé" << endl;
}

@ -3,6 +3,8 @@
#include <string> // string
class Chevalier;
class Monstre {
public:
std::string nom;
@ -10,7 +12,11 @@ public:
int force;
Monstre(std::string nom, int nbPtsVie=10, int force=1);
Monstre();
void rugir(std::string message);
void attaquerSournoisement(Chevalier *chevalier);
void attaquerFranchement(Chevalier *chevalier);
void subirContreEtAttaquer(Chevalier *chevalier);
~Monstre();
};

@ -0,0 +1,65 @@
#include "monstre.hpp"
#include "chevalier.hpp"
void testMonstre(void) {
Monstre globulus{"Globulus", 15, 5};
Monstre nemo{"Nemo"};
globulus.rugir("Tremblez!");
nemo.rugir("Vous allez trépasser!");
}
void testChevalier(void) {
Chevalier arthur{"Sir Arthur", 160, 90};
Chevalier inconnu{16,50};
arthur.parler("Hors de ma vu !!!");
inconnu.parler("Je suis un inconnu !!!");
}
void testP4(void)
{
Chevalier sirArthur{"Sir Arthur",3,5};
Monstre megadino{"Megadino",15,5};
Monstre darkman{"Darkman",2,2};
sirArthur.parler("Quelle belle journée");
megadino.attaquerSournoisement(&sirArthur);
sirArthur.parler(" eh bien je ne l'avais pas vu venir");
darkman.attaquerSournoisement(&sirArthur);
sirArthur.parler("décidement ...");
}
void testP5(void)
{
Chevalier sirArthur{"Sir Arthur",3,5};
Monstre megadino{"Megadino",15,5};
sirArthur.parler("Quelle belle journée");
megadino.attaquerFranchement(& sirArthur);
if(sirArthur.ptsDeVie > 0){
sirArthur.parler("J'ai eu chaud");
}
}
void testValgrind(void){
int *pt;
pt = new int[100];
delete[] pt;
Monstre *monstre[5];
monstre[0] = new Monstre();
monstre[1] = new Monstre();
monstre[2]->rugir("RAOOO pas content !!!");
// monstre[10]->rugir("Mais ca va aller");
delete[] monstre;
}
int main(void){
// test();
// testChevalier();
// testP4();
// testP5();
testValgrind();
return 0;
}

@ -1,22 +0,0 @@
#include "monstre.hpp"
#include "chevalier.hpp"
void testMonstre(void) {
Monstre globulus{"Globulus", 15, 5};
Monstre nemo{"Nemo"};
globulus.rugir("Tremblez!");
nemo.rugir("Vous allez trépasser!");
}
void testChevalier(void) {
Chevalier arthur{"Sir Arthur", 160, 90};
Chevalier inconnu{16,50};
arthur.parler("Hors de ma vu !!!");
inconnu.parler("Je suis un inconnu !!!");
}
int main(void){
// test();
testChevalier();
return 0;
}

Binary file not shown.

@ -37,20 +37,20 @@ P19 = np.array([-6,-8])
P20 = np.array([-3,-2])
P21 = np.array([-6,4])
T = np.linspace(-10,15,100)
Ft = []
Fo = []
Fp = []
Fs = []
for t in T:
Ft = bezier2(t,P1,P2,P3)
Fo = bezier2(t,P3,P4,P5)
Fp = bezier3(t,P5,P6,P7,P8)
Fs = bezier3(t,P8,P9,P10,P11)
F1=np.array(F1)
F2=np.array(F2)
F3=np.array(F3)
F4=np.array(F4)
# T = np.linspace(-10,15,100)
# Ft = []
# Fo = []
# Fp = []
# Fs = []
# for t in T:
# Ft = bezier2(t,P1,P2,P3)
# Fo = bezier2(t,P3,P4,P5)
# Fp = bezier3(t,P5,P6,P7,P8)
# Fs = bezier3(t,P8,P9,P10,P11)
# F1=np.array(F1)
# F2=np.array(F2)
# F3=np.array(F3)
# F4=np.array(F4)
plt.plot([P0[0],P1[0]],[P0[1],P1[1]],color='black')
plt.plot([P1[0],P2[0]],[P1[1],P2[1]],color='black')
plt.plot([P2[0],P3[0]],[P2[1],P3[1]],color='black')
@ -73,8 +73,8 @@ plt.plot([P18[0],P19[0]],[P18[1],P19[1]],color='black')
plt.plot([P19[0],P20[0]],[P19[1],P20[1]],color='black')
plt.plot([P20[0],P21[0]],[P20[1],P21[1]],color='black')
plt.plot([P21[0],P0[0]],[P21[1],P0[1]],color='black')
plt.plot(F1[:,0],F1[:,1],color='red')
plt.plot(F2[:,0],F2[:,1],color='red')
plt.plot(F3[:,0],F3[:,1],color='red')
plt.plot(F4[:,0],F4[:,1],color='red')
# plt.plot(F1[:,0],F1[:,1],color='red')
# plt.plot(F2[:,0],F2[:,1],color='red')
# plt.plot(F3[:,0],F3[:,1],color='red')
# plt.plot(F4[:,0],F4[:,1],color='red')
plt.show()

@ -8,7 +8,7 @@ while [ "$val" -ne "9" ] ; do
echo "$(date)"
elif [ "$val" = "2" ] ; then
echo ""
echo "Il y a $(who -a | wc -l) personnes connéctées sur ta session."
echo "Il y a $(who | wc -l) personnes connéctées sur ta session."
elif [ "$val" = "3" ] ; then #les "" et = permettent d'eviter les pb si l'utilisateur tape une chaine de carac
echo ""
echo "$(ps -elf)"
Loading…
Cancel
Save