matthieu637 / cpp-2a-info

CPP - Prépa des INP - Nancy | Projet Informatique 2ème année
https://matthieu637.github.io/cpp-2a-info/client.Reseau-class.html
MIT License
1 stars 4 forks source link

Solde/prix achat banque initial #34

Open david540 opened 7 years ago

david540 commented 7 years ago

Vu que l'erreur est très grande lorsque les prix sont très bas: exemple, achat d'1 facebook à 1.01 euros fait perdre 2 euros (erreur de +100÷) et l'achat d'1 facebook à 10.01 euros fait perdre 11 euros(erreur de 10÷) il faudrait s'arranger pour que les prix d'achats soient suffisamment haut en donnant un solde en euros initial suffisant et un prix minimum et maximum donnés par la banque suffisamment grand. Il y avait par exemple de souvenir une partie où le prix minimum de la banque était 0.25 et le prix max 2.5: que l'on mette un prix de 1.01 ou de 1.99, le prix est en faite le même (l'acheteur perd 2€ et le vendeur gagne 1€) et donc la partie n'était pas possible à jouer.

matthieu637 commented 7 years ago

Ça dépend de la quantité pour le prix à 1.01 ou 1.99. Si la quantité n'est que de 1 oui. Plus la quantité est faible, plus on perd.

Mais si elle est plus importante, il y aura moins d'erreur, est-ce que ça rend la partie injouable pour autant ? Est-ce que remplacer les parties à 1.000€ par des parties à 1.000.000€ serait une solution ?

david540 commented 7 years ago

Oui mais il y a beaucoup d'IA qui fonctionnent en vente 1 par 1. Oui je pense parce que dans ce cas les prix seraient plus proche de 100 euros, ça ferait 1% d'erreur. Et en plus en supposant qu'un IA fait moins de 3000 actions d'achats/ventes (10 actions par secondes), il perdrait au maximum 3000 euros. Ca fait déjà beaucoup mais pour 1.000.000 euros ça va.

matthieu637 commented 7 years ago

Je ne trouve plus où tu expliquais pourquoi ton pull request ne fonctionnait pas ?

david540 commented 7 years ago

C'était notamment pour les achats 1 action par 1 action que ça posait problème. Par exemple pour celui qui voulait acheter 1 action à 1.50 euros, (int)((int)(volume_achat prix_achat)/prix_achat); fait : int((int)(1.50 1)/1.50)=0 et donc l'achat est annulé. Et par exemple pour deux achats à 1.25 euros: volume_achat=int((int)(1.25 2)/1.25)=1 Mais le problème reste le même : joueur_achat.setSolde_euros(joueur_achat.getSolde_euros() - (int) (Math.ceil(vente.prix volume_vendu))) va retirer 2 euros à l'acheteur et faire gagner 1 au vendeur. On a juste réglé le problème je crois si floor(prix_total)/prix_unite tombe rond, avec l'exemple que j'avais donné: floor(250 * 0.01)/0.01= 200