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 ··· 5, 6, 7, 8, 9 Suivante
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)
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 17/09/2014 23:00 | #


Une IA de niveau 1 (n'utilisant que des fonctions accessibles au niveau 1), 80 lignes pour 2374 caractères: http://leekwars.com/fight/4005360
Plus personne ne me feras croire que l'on ne peut rien faire au niveau 1-5
(je vous met le log pour vous montrer quelques détails que les "pros" de leek wars vont sans doute trouver étrange au niveau 1)
log de combat
Cliquer pour enrouler

Tour 1
Tour de Machiavel
Machiavel perd 1 PT
Machiavel prend l'arme Pistolet
Machiavel perd 1 PT
Machiavel dit : "Bien le bounjour Leek75!"
[Machiavel] enemy cell: 191
[Machiavel] distance: 32.0
[Machiavel] InsCount: 8284

Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
[Machiavel] InsCount: 8489
Tour de Leek75
Leek75 se déplace
Leek75 perd 4 PM
Tour 2
Tour de Machiavel
[Machiavel] enemy cell: 189
[Machiavel] distance: 24.0
[Machiavel] InsCount: 8277

Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
[Machiavel] InsCount: 8482
Tour de Leek75
Leek75 se déplace
Leek75 perd 4 PM
Tour 3
Tour de Machiavel
[Machiavel] enemy cell: 152
[Machiavel] distance: 16.0
[Machiavel] InsCount: 8277

Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
[Machiavel] InsCount: 8387
Tour de Leek75
Leek75 se déplace
Leek75 perd 4 PM
Tour 4
Tour de Machiavel
[Machiavel] enemy cell: 150
[Machiavel] distance: 10.0
[Machiavel] InsCount: 8277

Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel se déplace
Machiavel perd 1 PM
Machiavel tire
Leek75 perd 18 PV
Machiavel perd 3 PT
Machiavel tire
Leek75 perd 19 PV
Machiavel perd 3 PT
Machiavel lance Décharge... Échec !
Machiavel perd 2 PT
[Machiavel] InsCount: 8498
Tour de Leek75
Leek75 se déplace
Leek75 perd 4 PM
Tour 5
Tour de Machiavel
[Machiavel] enemy cell: 148
[Machiavel] distance: 2.0
[Machiavel] InsCount: 8277

Machiavel perd 1 PT
Machiavel dit : "Je crains de devoir écourter notre rencontre incésament sous peu. (vous écourter pour être précis)"
Machiavel tire
Leek75 perd 16 PV
Machiavel perd 3 PT
Machiavel tire
Leek75 perd 7 PV
Leek75 est mort !
Machiavel perd 3 PT
Machiavel perd 1 PT
Machiavel dit : "Puissiez-vous reposer en paix."
[Machiavel] InsCount: 8299

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)
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 17/09/2014 23:05 | #


J'aime bien les dialogues.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 18/09/2014 00:08 | #


allez, hop, deux combats amusants (de mon point de vue en tout cas ):
http://leekwars.com/fight/4007863
http://leekwars.com/fight/4008083

Ajouté le 03/12/2014 à 17:58 :
Darkstorm, si tu passe par là, tu pourrais me retirer de l'équipe planète casio? Vu qu'il n'y a plus personne de planète casio présent, je ne vois pas l’intérêt de rester dans l'équipe (j'ai vais avoir 50 niveaux de plus que le reste de l'équipe si ça continue).
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)
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 03/12/2014 19:50 | #


Ah ouais j'avais oublié ce jeu. Pas le temps, et frustré parce que ce n'est pas un jeu d'IA pures mais de progression et de niveaux : 2 IA ne se combattent pas à égalité, les fonctions sont bridées tant que t'atteints pas un certain niveau, et ça s'inscrit dans la durée.
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 03/12/2014 19:51 | #


Je regrette aussi l'absence d'un bac-à-sable personnalisable pour tester ses IA. Le jeu est bien trop limitant et ça devient frustrant à la longue.
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 11/03/2015 21:24 | #


Salut,

Si il reste des joueurs, retrouvez moi sous le nom de Pedoleak

A bientôt !
1337
Yaya671 Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 04/05/2015 17:10 | #


Mon poireau ne veut pas se déplacer avec ce programme, ce qui est incompréhensible :
if (getTurn() == 1) {
    debug("INIT");
    setWeapon(WEAPON_MAGNUM);
}
var enemies = getAliveEnemies();
var lvl = arrayMap(enemies, getLevel);
global cible = getName(enemies[search(lvl, arrayMax(lvl))]);
debug(cible);
moveToward(cible);
var enemy = getNearestEnemy();
var me = getLeek();
var cell = getCell();
var x = getCellX(cell);
var y = getCellY(cell);
var cellenemy = getCell(enemy);
var xenemy = getCellX(cellenemy);
var yenemy = getCellY(cellenemy);
var dist = getCellDistance(cell, cellenemy);
debug("DISTANCE : " + dist);
global casque;
global bouclier;
global danger;
if (getLife() / getTotalLife() > 0.5) danger = 0;
else] danger = danger + 1;

Ce n'est pas le programme entier, mais un morceau inclus dont le but est l'initialisation. Si vous pensez que ça peut venir de l'inclusion...
En tout cas, lors de mes tests dans l'éditeur, "cible" donnait bien le poireau de plus haut niveau

Ajouté à 17:18 :
Serait-il possible que ça vienne du fait que "cible" soit le nom du poireau et pas son id ?

Ajouté à 17:21 :
Ah bah oui :mmm:.
J'avoue que c'était surtout pour poster un message...
Sinon, quelqu'un est-il intéressé par une IA collective, du style où tous les poireaux de l'équipe s'attaquent à l'ennemi le plus fort ?
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

Citer : Posté le 04/05/2015 17:45 | #


Cela fait longtemps que j'y jouais, mais pour se déplacer (avec moveToward), ne doit-on pas renseigner l'id du poireau ?
Parce que "cible" semble contenir le nom de la cible.
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 04/05/2015 17:52 | #


Oui, Totoyo a raison :

Documentation a écrit :

moveToward(Nombre leek) : Nombre mp
Rapproche votre poireau d'un autre poireau leek.

Paramètres
leek : Le poireau vers lequel votre poireau doit se rapprocher.
Retour
mp : Le nombre de points de mouvements utilisés.


D'après la doc, moveToward est bien du type nombre, donc tu dois forcément lui donné un id, pas un nom

Edit : J'avais pas vu les Edit
Personnellement je joue plus a Leek Wars mais je suis lvl 41 donc si tu veux faire une équipe
1337
Yaya671 Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 07/05/2015 07:21 | #


J'en ai déjà une (CO²), donc si tu veux la rejoindre... On n'est pas beaucoup pour l'instant, la première compo n'est pas remplie. Avec toi, je pense que l'on pourra vraiment démarrer

Ajouté à 07:23 :
Ton poireau, c'est Pedoleak, non ?

Ajouté à 07:25 :
Si oui, ta team a un nom imprononçable

Ajouté le 07/05/2015 à 16:25 :
J'avais pas vu que c'était lui...
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 07/05/2015 16:27 | #


Oui, notre team a pas un nom très prononcable
1337
Mgl64200 Hors ligne Membre Points: 649 Défis: 0 Message

Citer : Posté le 07/05/2015 16:28 | #


Laquelle ? Comment elle s'appelle ?
Toi t'es en train de lire ma signature là...
Xavier59 Hors ligne Membre de CreativeCalc Points: 1337 Défis: 12 Message

Citer : Posté le 07/05/2015 16:31 | #


[☤☬☭☬☤]

1337
Mgl64200 Hors ligne Membre Points: 649 Défis: 0 Message

Citer : Posté le 07/05/2015 16:32 | #


Effectivement, pas très facile.
Toi t'es en train de lire ma signature là...
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message
Yaya671 Hors ligne Membre Points: 8 Défis: 0 Message

Citer : Posté le 07/05/2015 20:33 | #


Dark storm a écrit :
Suppression de l'IA par Dark Storm (voir les messages suivants)

Je ne suis ni pour, ni contre les IA déjà toutes faites, j'aimerai juste des idées...
Si quelqu'un a quelque chose à proposer sur quoi que ce soit...

Ajouté le 18/05/2015 à 19:38 :
Désolé à la [☤☬☭☬☤], j'en ai fait une fondue de poireaux à coups de laser. J'avais pas vu que c'était eux
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

Citer : Posté le 18/05/2015 21:27 | #


Ca à l'air vraiment cool LeekWars

Ajouté le 18/05/2015 à 21:27 :
Le LeekScript se rapproche de quel langage ?
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 18/05/2015 21:29 | #


ça depend un peu de c, de lua ...
In Arch, I trust ! And you ?
Legolas Hors ligne Ancien rédacteur Points: 3266 Défis: 104 Message

Citer : Posté le 18/05/2015 21:36 | #


Il se rapproche pas mal du JavaScript, d'ailleurs le nom lui ressemble.
Mes programmes
Cacher les programmes
Mes défis
Cacher les défis



Précédente 1, 2, 3 ··· 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 110 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