Heartbroken-Git / Project_Blood_Bowl

Blood Bowl game in ASCII for L3 OOP university project (and tabletop simulation.) Authors: Elbert Noel NYUNTING, Corentin CHEDOTAL.
Do What The F*ck You Want To Public License
1 stars 1 forks source link

Can't create Dice object #2

Closed noel5550 closed 8 years ago

noel5550 commented 8 years ago

In Dice.cpp, when trying to compile error message occured:

Dice.cpp: In function ‘int main()’:
Dice.cpp:162:28: error: conversion from ‘Dice*’ to non-scalar type ‘Dice’ requested
  Dice dice6 = new Dice(1, 6); //test a faire
                            ^
Dice.cpp:163:27: error: conversion from ‘Dice*’ to non-scalar type ‘Dice’ requested
  Dice dice8 = new Dice(1,8);
                           ^
make: *** [all] Erreur 1

Don't know the cause, it happens in main() and concerns the creation of the Dice object. Tried using smart pointers but to no avail. The code is as follows:

int main(){
    int test1, test2, test3;

    //Dice dice6 = new Dice(1, 6);
    //Dice dice8 = new Dice(1,8);   

    Dice dice6 = new Dice(1, 6); //test a faire
    Dice dice8 = new Dice(1,8);

    //test1 = dice6->throwDiceDigit();
    //test2 = dice6->throwDiceDigita(dice8);

    test1 = dice6.throwDiceDigit();
    test2 = dice6.throwDiceDigita(dice8);
    test3 = dice6.throwDice();

    std::cout << test1 << std::endl;
    std::cout << test2 << std::endl;
    std::cout << test3 << std::endl;
}

Notice the different ways I tried to create Dice. Yes, I included memory.

Heartbroken-Git commented 8 years ago

@noel5550 You've broken the commits, apparently commit dfc2b89aa5ca9ccd4ee85d7e334fab25e264d5cb removed everything we did in the last six days. And not only from the repo but from its arborescence too... Did you pull the remote repo before pushing said commit ?

EDIT : Thankfully I still haven't pulled to my local repo, I can push back the modifications we made this week though you might lose some work on the Dice for example...

noel5550 commented 8 years ago

Oh fuck. I knew something went wrong when the terminal froze in the pull request. Fuck me, why can't I reverse this? Ok, making a new branch for myself to prevent future fuck ups.

Heartbroken-Git commented 8 years ago

And by the way, your at home git is configured properly apparently... You aren't committing from your GitHub account (but that's just a detail). Did you force the push ? Technically you shouldn't ever need to force a git push command except in really bad scenarios... such as this one xD

As for the test to put back my local repo to the remote I'll do so in a separate branch too, when I have time, to avoid any more disasters.

noel5550 commented 8 years ago

Nah, I was working at the uni computer. For some reason terminal occasionally freezes up there, so I had to alt ctrl t to open another one to unfreeze Ubuntu. I was too tired to notice I didn't do the pull properly so when I tried to push it gave me a warning, like an idiot I -f it without making 2+2 and why are we speaking English? Mais bon, bref c'etait une connerie entierement de ma part. Il n'y a rien d'entierement perdu? On va faire trois branches, une pour toi, une pour moi, et une autre pour notre sandbox en commun, on laisse master pour des trucs finales.

Heartbroken-Git commented 8 years ago

Je sais pas pour l'Anglais, ça paraissait logique comme ton issue était en Anglais xD Et ouais on va faire les branches pourquoi pas mais faudra probablement faire des PR sur la master chaque semaine si on veut éviter d'avoir une chiée de conflits à régler le dernier jour. Comme on a mon trou chaque lundi on pourra faire ça ensemble ce jour là :smiley:

EDIT : J'ai sauvé ce que j'ai pu sur ma branche, je pourrais la PR sur la master une fois mes petites modifs sur le Doxygen

Heartbroken-Git commented 8 years ago

J'ai pas eu le temps de voir pour mon compilateur fou mais pour la construction de Dice essaye ça :

int main(){
    int test1, test2, test3;

    Dice dice6(1, 6); //Teste ça
    Dice dice8(1,8);   

    //test1 = dice6->throwDiceDigit();
    //test2 = dice6->throwDiceDigita(dice8);

    test1 = dice6.throwDiceDigit();
    test2 = dice6.throwDiceDigita(dice8);
    test3 = dice6.throwDice();

    std::cout << test1 << std::endl;
    std::cout << test2 << std::endl;
    std::cout << test3 << std::endl;
}

Et j'ai missclick d'où l'issue close pour réouverte :D

noel5550 commented 8 years ago

Non c'est bon. J'ai fait des changements de dice dans noel-sandbox. On ne peut que lancer un dé à la fois mais je me suis dit s'il faut lancer plusieurs dés on fera appel à la méthode throwDiceSingle() de Dice plusieurs fois. Mon problème était de traiter les returns de vector lorsqu'on lance plusieurs dés de types différentes (un d6 qui fait 4 et un d8 qui fait 7 fait 47 et pas 11). Au lieu de faire travailler Dice, on fera travailler la classe qui gere les effets comme les classes Wounds, Block, GoForIt, Pass etc qui implementera de l'interface Action. Ils vont lancer un Dice l'un apres l'autre et ils regarderont dans leur propre array pour les effets obtenus par rapport au résultats. En plus comme ca on aura un Pattern Strategy de fait. J'ai beaucoup trop refléchi sur une classe beaucoup trop élémentaire.

Heartbroken-Git commented 8 years ago

Ok je vois. D'ailleurs je pense qu'on va pouvoir avoir le pattern State aussi avec les cases du plateau de jeu. Mais là c'est qu'une idée. A voir ce que ça peut donner si j'y réfléchis un peu plus. Et donc c'est complètement réglé pour Dice ? Tu arrives à le construire et tout ?

noel5550 commented 8 years ago

Oui, je pensais pattern state pour les cases aussi apres le TD. Et oui, tu peux tester avec un main et ca lance bien un dé et ca donne des résultats aléatoires. Ceci dit, ce n'est pas si simple que de faire

rand() % 1 + typeDice_

comme je pensais, mais au moins c'est fait et ca marche.