Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Discussions


Index du Forum » Discussions » IA de leek wars
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

IA de leek wars

Posté le 04/07/2014 16:00

Update : les IA furent proposées il y a longtemps et ne sont évidemment plus (et n'ont en réalité jamais été) très viables. Elles restent potables si vous êtes très bas level cependant.

Pour de meilleurs IA (haut level)
Cliquer pour enrouler
Et bien pour ça il va falloir se débrouiller un peu elle ne va pas vous tomber tout cru
Je vous donne en passant des optimisations essentielles pour une "bonne" IA

Se cacher
Une bonne IA fait en sorte de prendre le moins de dégâts possibles et pour ça le mieux est tout simplement de se cacher intelligemment au lieu de fuir l’ennemi n'importe comment !
Pour cela la méthode est relativement simple :

-Récupérer toutes les cellules accessibles avec les MP qu'il nous reste (évitez en général de travailler avec getPathLength( . , . ) car cette fonction consomme beaucoup d'opérations)

-Faire de même pour l'adversaire

-Trouver une case accessible ou l'adversaire n'as pas de ligne de vue depuis toutes ses cases accessibles

Je vous laisse vous INSPIRER (pas copier non mais) du code proposé par pierrotdu18 https://leekwars.com/forum/category-7/topic-1922
Vous remarquerez que le code n'est pas au complet mais l'essentiel y est. Attention j'ai bien dit vous inspirez car il reste du travail a faire !
Dépatouillez vous pour vous cacher la où ça vous arrange le plus (le plus loin, le plus proche etc), ne pas se cacher derrière des alliés (qui peuvent bouger ou tout simplement former des zones facile pour l'adversaire), et encore prendre en compte le fait que si vous n’êtes plus a portée de l'adversaire, c'est tout comme si vous étiez cachés (presque...)
Allez ça je vous aide il suffit de rajouter getAliveAllies() en 3eme paramètre de
... lineOfSight(hisCell, myCell, getAliveAllies()) ...


Une fois cette étape faite, il est simple de créer une fonction similaire pour avancer sinueusement (avancer au plus possible tout en restant caché)

Optimiser les attaques en zone
Si ne pas prendre de dégâts, en faire le maximum est tout aussi important ! (Cette partie ne compte évidemment que pour les attaques de zone...)
Pour cela plusieurs méthodes existent (comme pour tout), je vous livre la mienne même si c'est loin d'être la moins gourmande en terme d'opérations elle marche très bien il s'agit de :
si on sait quel ennemi est visé

-récupérer toutes les cases où notre arme lui inflige des dégâts (pour cela il faut récupérer une zone d'une certaine taille autour de l'adversaire)

-enlever toutes celles trop loin pour que vous puissiez tirer dessus, celles ou depuis toutes les cases accessibles, vous n'avez aucune ligne de vue

-calculer les dégâts infligés aux ennemis en tirant sur chaque case de celles restantes

Pour calculer les dégâts totaux il faut ajouter chaque dégât infligé sur chaque personne qu'on touche en tirant sur la case en question (s'aider de getWeaponTargets(...) puis multiplier les dégâts par un coefficient avant de les ajouter au total

Ce coefficient doit (par exemple) être de -1 si c'est un allié qui est touché, 1 si c'est un ennemi, ensuite a vous de jouer avec (on peut considérer que toucher une invoc ennemie est moins important que d'infliger des dégâts a un ennemi, ou affecter un coeff de 0 si l'allié touché est une de nos invocs etc...)

Attention cependant a bien prendre les armures des ennemis en compte ainsi que la distance a la case sur laquelle on tire !
les dégâts que va subir l'ennemi se détermine selon
degats_de_larme*(1+getStrength()/100)*((100-getRelativeShield(ennemi))/100)-getAbsoluteShield(ennemi);

et la réduction de dégats selon la distance via
1-0.5*getCellDistance(celluleSurLaquelleOnTire, getCell(enemi))/rayon


Dernières optimisations
Bien sur il ne faut pas oublier que quand un ennemi n'a presque plus de vie, pas besoin d'utiliser son attaque la plus chère en PT pour l'achever testez donc si une attaque plus faible ne le tue pas a tous les coups.
Gérer les poisons qu'on a sur soit :
Celle la c'est cadeau parce que vous laissez la chercher n'a pas non plus beaucoup d’intérêt :
function getDegatsPoison(){
    var dpoison=0;
    for(var i in getEffects()){
        if(i[0]==13)        dpoison+=i[1];
    }
    return dpoison;
}

Vous voila parés à utiliser la puce antidote !
(De même utilisez la puce libération pour enlever les armures de l'adversaire...)

Vous avez a présent de quoi faire les bases d'une IA assez bonne (vous attendez pas non plus a tout casser avec ces seules optimisations) ! Voici une IA sur ce principe https://leekwars.com/leek/4771 et franchement elle marche assez bien (pas non plus god tier hein me faites pas dire ce que je n'ai pas dit) au vu le nombre de lignes de codes assez bas (400 avec une optimisation digne d'un singe) ce qui reste vraiment bas devant les meilleurs IA qui dépassent les 4000 lignes (et oui y a des mecs qui sont vraiment chauds))

Dernier point : Allez sur le forum du jeu ! Vous trouverez pleins d'autres astuces etc !
Sur ce : bon jeu !



Salut à tous
Comme je l'ai appris très récemment (hier soir ), certains membres jouent à leek wars, un jeu de poireaux très marrant .
Je ne suis que lvl 5 mais j'ai déjà pas mal d'idée d'IA et je propose qu'on se les partage ici .
Je commence avec la mienne :
IA avec pistolet (dispo lvl 10)
Cliquer pour enrouler
global tour=0;
var i;
global dit=0;
var enemy = getNearestEnemy();
var name=getName(enemy);
var arme=getWeapon(enemy);
if(arme==1) arme="ton pistolet";
if(arme==2) arme="ta mitrailleuse";
if(arme==3) arme="ton double gun";
if(arme==4) arme="ton shotgun";
if(arme==5) arme="ton magnum";
if(arme==6) arme="ton laser";

if(getCellDistance(enemy, getCell()) <= ((getMP(getLeek()) + getMP(enemy))*3))    useChip(CHIP_HELMET, getLeek());


if(tour==0)    setWeapon(WEAPON_PISTOL);
if(tour==1 && dit==0 || getWeapon(enemy)!=-1 && tour==0){
    say(name +", "+arme+" ne me fais pas peur : je vais te tayer en julienne !!!");
    dit=1;
}

var portee_enemy=getWeaponMaxScope(getWeapon(enemy));
enemy = getNearestEnemy();

if(portee_enemy>=getWeaponMaxScope(getWeapon())) moveToward(enemy);
else    for (i = 1; i < 4; i++) if (getCellDistance(getCell(),getCell(enemy)) > 7) moveToward(enemy,1);

useWeapon(enemy);
useWeapon(enemy);
if(getLife()<getLife(enemy) && getLife()<getTotalLife())    useChip(CHIP_BANDAGE, getLeek());
useChip(CHIP_SPARK, enemy);


if(getTP()>0){
enemy = getNearestEnemy();
portee_enemy=getWeaponMaxScope(getWeapon(enemy));

if(portee_enemy>=getWeaponMaxScope(getWeapon())) moveToward(enemy);
else    for (i = 1; i < 4; i++) if (getCellDistance(getCell(),getCell(enemy)) > 7) moveToward(enemy,1);

useWeapon(enemy);
useWeapon(enemy);
if(getLife()<getLife(enemy) && getLife()<getTotalLife())    useChip(CHIP_BANDAGE, getLeek());
useChip(CHIP_SPARK, enemy);
}

useChip(CHIP_SHOCK, enemy);
useChip(CHIP_SHOCK, enemy);

if(portee_enemy<getWeaponMaxScope(getWeapon()))    moveAwayFrom(enemy);

if(getLife()<getTotalLife() && getLife(enemy)>0)    useChip(CHIP_BANDAGE, getLeek());

name=getName(enemy);

if(isDead(enemy))    debug("Kill "+name+"=Done !!!");

if(getTP()!=0 && tour==0)say("Vous ne perdez rien pour attendre bande de noobs !");
if(getTP()!=0 && tour==1)say("Attention j'arrive !");
if(getTP()!=0 && tour==2)say("Préparez le grand POT-AU-FEU !!!");
if(getTP()!=0 && tour==3)say("Inclinez vous devant votre DIEU : poiraxx le grand !!!");

tour++;


IA avec double gun (dispo lvl 10)
Cliquer pour enrouler
global tour=0;
var i;
global dit=0;
var enemy = getNearestEnemy();
var name=getName(enemy);
var arme=getWeapon(enemy);
if(arme==1) arme="ton pistolet";
if(arme==2) arme="ta mitrailleuse";
if(arme==3) arme="ton double gun";
if(arme==4) arme="ton shotgun";
if(arme==5) arme="ton magnum";
if(arme==6) arme="ton laser";

if(getCellDistance(enemy, getCell()) <= ((getMP(getLeek()) + getMP(enemy))*3))    useChip(CHIP_HELMET, getLeek());

if(tour==0)    setWeapon(WEAPON_DOUBLE_GUN);
if(tour==1 && dit==0 || getWeapon(enemy)!=-1 && tour==0){
    say(name +", "+arme+" ne me fais pas peur : je vais te tayer en julienne !!!");
    dit=1;
}

var portee_enemy=getWeaponMaxScope(getWeapon(enemy));
enemy = getNearestEnemy();

if(portee_enemy>=getWeaponMaxScope(getWeapon())) moveTowardCell(getCellToUseWeapon(enemy));
else{
    for (i = 1; i < 4; i++){
        if (getCellDistance(getCell(),getCell(enemy)) > 7){
            moveToward(enemy,1);
        }
        if(getCellDistance(getCell(), getCell(enemy))<2){
            moveTowardCell(getCellToUseWeapon(enemy));
        }
    }
}
useWeapon(enemy);
useWeapon(enemy);
useChip(CHIP_SPARK, enemy);

enemy = getNearestEnemy();
portee_enemy=getWeaponMaxScope(getWeapon(enemy));

if(getTP()>0 && isDead(enemy)==False){

if(portee_enemy>=getWeaponMaxScope(getWeapon())) moveTowardCell(getCellToUseWeapon(enemy));
else{
    for (i = 1; i < 4; i++){
        if (getCellDistance(getCell(),getCell(enemy)) > 7){
            moveToward(enemy,1);
        }
        if(getCellDistance(getCell(), getCell(enemy))<2){
            moveTowardCell(getCellToUseWeapon(enemy));
        }
    }
}
useWeapon(enemy);
useWeapon(enemy);
useChip(CHIP_SPARK, enemy);
}

useChip(CHIP_SHOCK, enemy);
useChip(CHIP_SHOCK, enemy);

if(portee_enemy<getWeaponMaxScope(getWeapon()))    moveAwayFrom(enemy);


name=getName(enemy);
if(isDead(enemy))    debug("Kill "+name+"=Done !!!");

if(getLife()<getTotalLife())    useChip(CHIP_BANDAGE, getLeek());


if(getTP()!=0 && tour==0)say("Vous ne perdez rien pour attendre bande de noobs !");
if(getTP()!=0 && tour==1)say("Attention j'arrive !");
if(getTP()!=0 && tour==2)say("Préparez le grand POT-AU-FEU !!!");
if(getTP()!=0 && tour==3)say("Inclinez vous devant votre DIEU : poiraxx le grand !!!");

tour++;


Voilà c'est tout, bonne chance avec vos poireaux




Infos diverses :
-> Les tournois

Pour parler entre nous des zones, voici celles proposées :
-> Zone de combat rapproché
-> Zone de combat éloigné
-> Zone d'approche
-> Zone sûre.




Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9 Suivante
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 14/07/2014 19:48 | #


je m'y suis mis, j'ai déjà deux poireaux lvl 8-9 (je me suis fais deux comptes avec deux de mes nombreuses adresses mail), mais je n'ai pas encore trouvé comment rejoindre de team
(mon lvl 8 est boosté en vie et force et a un ration de 9.00 avec 54 victoires pour 6 defaites, mon lvl 9 est boosté en vie et force principalement, mais a quelques points en agilité et a un ratio de 3.33 avec 60 victoires pour 18 défaites)
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 14/07/2014 19:53 | #


Désolé mais j'ai décidé de stopper ce jeu, j'aimais bien au début, ça m'amusais mais là j'ai plus beaucoup de temps et ça m'en prend un peu trop chaque jour (4 poireaux), de plus je passe tous les combats sans les regarder tellement ça m'ennuie, ça deviens plus très drôle et je n'améliore pas mon IA (la flemme )
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 14/07/2014 20:33 | #


Limachi, tu peux faire rejoindre un de tes deux poireaux dans la team via ce lien : http://leekwars.com/team/267
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 15/07/2014 00:35 | #


je viens d'ajouter mon wae a votre équipe, c'est celui avec le plus de défaites, mais c'est aussi le plus travaillé (la preuve par la manière ou j'ai reussi a démonter un "domingo" en mode diabolique http://leekwars.com/fight/805448 )

Ajouté le 16/07/2014 à 01:53 :
je me suis amusé a faire un IA bavarde et qui sort des répliques en fonction des situations (lvl1, je teste la vie pour les phrases de fin): http://leekwars.com/report/928343
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 16/07/2014 09:01 | #


Le seul inconvénient c'est que tu perds tes précieux PT pour tirer ce qui peut être assez dangereux.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 16/07/2014 13:14 | #


les phrases sont situationnelles, dans 95% de mes combats elles ne m'ont pas gêné (je pars du principe que les deux premiers tours sont safe, je lance un taunt si l'ennemi ne peut pas m'attaquer au prochain tour, mais moi oui, et enfin quand il passe en dessous de la barre des 40 pv, il me reste deux tirs de pistolet qui tuent presque a coup sur)

Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 17/07/2014 00:43 | #


Sympa, j'aurai juste mis de majuscules au début des phrases

Ajouté le 18/07/2014 à 19:49 :
J'aimerai savoir qui joue encore à LW, que je fasse du tri dans les poireaux des compositions.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 18/07/2014 19:51 | #


S'il y en a qui sont inactifs trop longtemps sans prévenir on les déclasse des compos.
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 18/07/2014 20:00 | #


Yup, je vais juste laisser la master
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 18/07/2014 20:56 | #


J'attend d'améliorer mon IA avant de reprendre les combats d'équipe, je vous préviendrai.
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 18/07/2014 21:25 | #


Dark storm a écrit :
Yup, je vais juste laisser la master

Comment ça ? Tu veux supprimer les autres compos ??
Par contre c'est vrai que comme on commence à progresser on va pouvoir établir une stratégie d'équipe pour la master et faire un bon truc.
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 18/07/2014 21:31 | #


Je vois que je suis dans la master, mais n'hésitez pas à me remplacer par quelqu'un de plus actif

La rédaction de ma mémoire me prend du temps - et me grille des neurones aussi. La soutenance est prévue le 15 septembre à 14h !
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 19/07/2014 07:27 | #


Pour ma part, je n'ai pas encore travaillé sur une vraie IA de coop, je suis occupé a travailler sur une IA de lvl 21 utilisant les info du terrain (je viens tout juste d'atteindre le lvl 21)
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 19/07/2014 16:24 | #


première fois que j'arrive a me faire les 4 IA de base en mode test (au 64ème tour, j'ai bien cru que j'allais rater encore une fois ) http://leekwars.com/report/805448
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 04/09/2014 00:51 | # | Fichier joint


salut tout le monde,
!Ceci n'est pas un troll / montage ni rien¡
devinez sur qui je tombe VRAIMENT hasard ?

et y a t'il une equipe planète casio ?
https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 04/09/2014 07:58 | #


Et oui mais a peu pres personne nest dessus eepuis un ptit bout de temps
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 04/09/2014 08:17 | #


Tu sais comment on rejoints ?
et au pire si la team est aussi déserte que planet-casio.com/En on peux toujours en faire un e neuve
https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1242 Défis: 54 Message

Citer : Posté le 04/09/2014 12:26 | #


Je passe de temps en temps, mais avec les vacances puis le concours je ne m'investis plus autant personnellement...
Mais il y a toujours quelques actifs :).
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 04/09/2014 12:42 | #


Ca m'intrigue vraiment : Pierrotll t'a mis une raclée ou pas?
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 04/09/2014 16:30 | #


Bah en fait c'est moi qui l'ai descendu
https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 06/09/2014 05:20 | #


Nemhardy a écrit :
Je passe de temps en temps, mais avec les vacances puis le concours je ne m'investis plus autant personnellement...

Je crois que j'en fais partie, j'ai du laisser en plan une IA de 500 lignes pas finie a cause de la rentrée et du concours
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 137 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd