210

Bah je sais pas, tu évalues chaque position, si c rentable tu gardes, sinon tu zappes, non ? Tu n'as pas besoin de stocker les résultats de toutes tes évaluations, à moins de vouloir ré-évaluer après (mais j'y vois pas trop d'utilité)

Alors après, si tu veux faire des trucs un peu plus subtils, tu peux peut-être stocker certaines informations (genre tu fais un parcours en profondeur avec une profondeur max qui augmente au fur et à mesure, et tu veux avoir des estimations du meilleur coup à jouer à partir du parcours précédent), mais ça n'est pas du tout nécessaire dans la version de base...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

211

Par exemple, avec une profondeur de 3 coups, voici comment j'imaginerais le déroulement de l'algo :
La racine de l'arbre correspond à l'état du jeu actuel, on construit ses 7 fils correspondant aux différents coups (puisqu'il y a 7 coups possibles au puissance 4), en commençant par le premier, et avant de construire le deuxième fils de la racine, on construit le premier fils du fils (qui correspond au premier coup possible pour l'adversaire), puis on construit directement après son fils (on atteint donc la profondeur de 3 coups : moi - adversaire - moi), comme on a atteint la profondeur voulue, on évalue le coup, et on simule le coup suivant, et ainsi de suite jusqu'au septième en ne se gardant que le meilleur.
On a donc un arbre qui contient une racine, un seul fils construit (notre premier coup), qui lui-même a un seul fils construit (le premier coup de l'adversaire) qui a par contre tous ses fils qui ont été construits (et le meilleur a été gardé). Comme tous ses fils ont été construits, on simule le deuxième coup de l'adversaire, et on construit tous ses fils, comme précédemment. On fait ça jusqu'à arriver au 7ème coup de l'adversaire, on garde toujours le coup le moins bon en mémoire, puis on remonte une fois que c'est fini et on transmet donc la valeur du moins bon coup de l'adversaire au noeud parent qui a tous ses fils construit, donc on passe à la simulation des 6 autres coups de notre camp, suivant le même principe que tout à l'heure, au niveau 3.
Donc en fait, l'arbre n'a pas besoin d'exister réellement, il peut être simulé par une structure récursive des fonctions, et à chaque niveau de profondeur il y a tout de même une variable à mémoriser (le moins bon ou le meilleur coup), donc en fait les besoins de mémoire sont de l'ordre de log(profondeur_de_recherche).

J'ai bon ?

[edit] : on a peut-être aussi besoin de transmettre l'état du jeu à chaque noeud, à moins de simuler un coup puis de l'annuler quand on passe au noeud suivant (mais ce n'est peut-être pas super pratique)...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

212

Exactement ^^

Pour ce qui est d'annuler ou de restaurer, ça dépend pas mal de tes structures de données, selon la proportion des données affectées par le changement...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

213

Euh, je pense qu'il va y avoir des effets de bords amusants.
Supposons un adversaire qui utilise un algo gourmant en mémoire. Est-ce que réserver toute la mémoire disponible avant de rendre la main est considéré comme une tactique valide ?
Si oui ça risque de tourner au corewar. Si non euh je me demande comment on peut vérifier.

214

./212> OK, merci. Au fait, j'avais fait une petite erreur, j'ai mis log(profondeur_de_recherche), alors qu'il s'agit de profondeur_de_recherche directement (qui correspond par contre au log du nombre de noeuds de l'arbre).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

215

spectras :
Euh, je pense qu'il va y avoir des effets de bords amusants.
Supposons un adversaire qui utilise un algo gourmant en mémoire. Est-ce que réserver toute la mémoire disponible avant de rendre la main est considéré comme une tactique valide ?
Si oui ça risque de tourner au corewar. Si non euh je me demande comment on peut vérifier.

roll
Le but est de tester des algos de puissance 4, pas d'empêcher l'autre de jouer ...
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

216

217

osef ^^ On fait comme si ct sur des calcs différentes et on demande des résultats reproductibles, et si c pas le cas, ben on voit de la faute de qui c'est... (m'enfin bon, déjà que ça m'étonnerait qu'il y ait un nb strictement positif de participants happy)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

218

Pollux a écrit :
[...] (m'enfin bon, déjà que ça m'étonnerait qu'il y ait un nb strictement positif de participants happy)
Perdu hehe !
Je participe, donc Nbr_Participants >=1 > 0 grin ...

Sinon, ainsi que ça a déjà été dit ici, le but est de faire s'affronter des IA sur le Puissance 4, pas sur la capacité à empêcher l'autre de jouer ...

Au passage, je vous informe que mon arbitre est en TI-Basic (je ne connais strictement rien d'autre sur 89/92+), donc il ne peut pas (du moins, je ne sais pas) mettre une limite de temps ou d'utilisation mémoire pour qu'une IA joue un coup.
Si quelqu'un se propose de le porter en C ou en Asm pour ajouter ces fonctionnalités ... je suis preneur hehe !
Pour la limite de temps, n'oubliez pas que j'ai aussi écrit un programme compatible avec l'interfaçage de l'arbitre (utilisation des variables colonne et nom), mais dont l'IA est un joueur humain, lequel, par définition, nécessite au moins 30 secondes par coup ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

219

nan mais ct une façon de parler, hein...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

220

squale92 tu abuses. Tu as perdu ton humour.

!invite Peio
--- Invite : vous n'etes pas l'auteur du sujet ni modérateur !

Hey c'est mon sujet ! rahhh !
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

221

Perdu, je ne sais pas...
mais limité, surement
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

222

Limité ouai. T'as des pouvoirs et tu les utilises sans trop réfléchir, le plaisir que ça te procure a pris le dessus sur la raison et la sympathie... T'as regrettablement changé mon cher Pascal :s
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

223

Non. Il essaie de s'appliquer dans la tâche qui lui a été affectée.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

224

Le message de Peio était clairement insolent.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

225

Toi, Kevin, ton avis j'en ai rien à foutre, t'es bien pire que Pascal au niveau social. C'est même pas comparable.

Pascal : prends ça tongue
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

226

Thibaut> nos niveaux sociaux de Kevin ou moi, je doute que tu en saches gd chose...

modérer ne me procure aucun plaisir ; je n'aime pas limiter la liberté d'expression des utilisateurs du forum...
mais quand ce qui est posté abuse... j'ai prévenu un coup (le lock) ; après, le gars recommence, ce qui prouve que c'était purement intentionnel... qu'est-ce que tu veux que je réponde ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

227

Sociabilité je voulais dire.

Quand à Peio je trouve que ses réponses sont marrantes, désolé. Maintenant y'en a comme toi qui peuvent prendre ce qu'il dit comme étant sincère, c'est dommage. Ce forum va devenir aussi coincé du cul que le TICTboard.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

228

Va te pendre ©, si t'es pas content toi aussi tu finiras dehors. Y'a une différence entre coincé et organisé, Peio est le premier à se réjouir quand il se fait kicker, il adore ça.
Retour au sujet, si tu as des trucs à rajouter, ça sera dans une autre section du forum, mais pas ici.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

229

Nan je vais pas me pendre, faut pas exagérer.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

230

j'ai programmer une ia de puissance 4 en c sur ti 89 plutot bonne et je voulais savoir si le concours était toujours d'actualité.
Je me suis basé sur le minimax allié d'un élagage alpha beta pour plus d'efficacité.
Quelques conseil pour debloquer ceux qui ont envie de faire une ia mais qui ne savent pas vraiment comment s'y prendre:

pour en savoir plus sur le minimax

1)visiter le site de leiber.free.fr (enfin je crois)
2)lire le post de sasume

pour optimiser l'exploration de l'arbre

i)bien choisir l'ordre dans lequel explorer l'arbre
ii)ne calculer que les lignes qui concerne le dernier pions placé (tres important!, car recalculer la grille prend un temp fous)
iii)la fonction d'évaluation n'est pas tres dur à trouvé (mailé moi si vous ne voyez vraiment pas)
n'oublié + la fonction d'évaluation est simple genre elle ne renvoie que 3 notes differente (gagné perdu nul)
+ vous gagnerez du temps pour jouer en profondeur
à l'inverse si vous etes limité en profondeurs meux donner des notes pertinentes.
iv)n'oublié pas le jeu est symetrique ce qui est bon pour lui est mauvais pour vous et vice versa.

quand au regles du defi j'ai 2 3 remarque à faire
pas besion de chipoter avec le temps de reflexions ou les plateformes vu l'explosion combinatoire de l'arbre de recherche du puissance 4
(profondeur 1=1 sec =>profondeur 2=7 sec=>profondeur 3=49 sec !!!)
de toute maniere un élagage sera necessaire
de + bien que la solution recursive semble la meilleur pour resoudre ce probleme.
vous pouvez tres bien repondre à ce probleme sans recursion
(je l'ai deja fait elle était plutot pa mal)
il suffit simplement de faire une fonction d'évaluation des cases evolués donnant des notes tres pertinentes (tenant compte du sattut de la piece imediatement au dessus piége ou non..)
sans compter des partié type preenregistrer.

Voila voila
vous pourez tjs me mailez pour des eclaircissement ou des conseils plus precis







231

Hmm je devrais pouvoir fouiller pour retrouver mon début d'IA, mais j'ai pas bcp de tps là... En fait il faudrait définir une API commune, et utiliser par exemple un fork de TI-Connect4/5 pour les faire s'affronter ^^ (ça permettrait par la même occasion de faire des match humain-IA)
pas besion de chipoter avec le temps de reflexions ou les plateformes vu l'explosion combinatoire de l'arbre de recherche du puissance 4 (profondeur 1=1 sec =>profondeur 2=7 sec=>profondeur 3=49 sec !!!)

Ben en principe si t'élagues, c'est justement pour pas que le tps soit multiplié par 7 à chaque itération supplémentaire smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

232

je suis bien d'accord avec toi
c'est bien pou ca qu'il faut élaguer, c'est tres certainemement la partie la + interessante de l'algo
quand à penser à une plateforme commune g pensé que reporté les coup de l'adversaire est tous aussi bien.
à moins que tu sache coment faire pour retourné un resutat avec une fonction en c.
Parce qu'en c je sais faire le passage d'argument (à la fonction main).
Seulement le resultat quelle renvoie sur l'ecran home (grace à la commande pushlongint())
n'est pas exploitable.
Je m'explique le programme en basic ne la considere le programme ia en tant que fonction.
j'espere que j'ai été assez clair.


233

234

yugos :
Seulement le resultat quelle renvoie sur l'ecran home (grace à la commande pushlongint()) n'est pas exploitable.

Si, en C ou même en Basic avec un kernel (mais en C ça permet de réutiliser le moteur de TI-Con45 pour afficher les coups et vérifier qui a gagné ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

235

Pollux a écrit :
[...] En fait il faudrait définir une API commune, et utiliser par exemple un fork de TI-Connect4/5 pour les faire s'affronter ^^ (ça permettrait par la même occasion de faire des match humain-IA)
[...]
Ca existe depuis déjà un an, avec tout un protocole de communication entre les IA, cf. cette synthèse.
De même, le programme pour faire jouer un humain en respectant ce protocole existe déjà.

Je suis en train (enfin si on veut, vu mon temps libre ...) de reprogrammer l'arbitre pour qu'il soit compatible 89/92+/V200 (c'est lui qui gère l'affichage) et qu'il soit plus souple.
J'espère pouvoir rendre disponible la version finale (en TI-Basic) d'ici fin décembre, mais je ne vous promets rien neutral ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

236

Mouais, y a des défauts, notamment (pour le cas d'une IA en C) :
- obligé de tout sauvegarder dans des variables globales du TIOS, c'est un gros problème surtout si ces variables globales contiennent des pointeurs (l'adresse du programme peut changer d'un appel sur l'autre), donc il faut faire des grosses routines d'import/export...
- API hyper-compliquée pour des raisons que j'ai du mal à comprendre... (pk l'IA devrait avoir qqch à faire du type de calc ??? pk l'IA doit être prévenue du résultat ??? pk demander son nom à l'IA ?)

Il suffirait de faire simplement :
[cite]void ia_init();
int ia_getmove();
void ia_setmove(int);[/pre]

Par exemple une solution serait de passer par le chargement à la demande des libs par PreOS, il suffirait de faire arbitre("prog1","prog2"), avec prog1 et prog2 se présentant sous la forme de libs dynamiques contenant ces 3 fonctions...

Ca exclut évidemment les IA en Basic, mais bon de toute façon c pas très réaliste de vouloir faire un truc en TI-Basic qui joue mieux que s'il jouait au hasard ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

237

238

Pollux a écrit :
Mouais, y a des défauts, notamment (pour le cas d'une IA en C) : - obligé de tout sauvegarder dans des variables globales du TIOS, c'est un gros problème surtout si ces variables globales contiennent des pointeurs (l'adresse du programme peut changer d'un appel sur l'autre), donc il faut faire des grosses routines d'import/export...
A quoi sert de garder l'adresse des programmes appelés ?
A chaque demi-coup, le programme de l'IA qui doit jouer est lancé, s'execute, puis s'achève normalement en indiquant le résultat de ses réflexions dans un format compréhensible par tout programme, à savoir les variables TI.
- API hyper-compliquée pour des raisons que j'ai du mal à comprendre... (pk l'IA devrait avoir qqch à faire du type de calc ??? pk l'IA doit être prévenue du résultat ??? pk demander son nom à l'IA ?)
1/ Comme chaque IA disposant, en bonus du seul calcul du coup à jouer, d'une petite zone graphique où elle est libre d'afficher ce qu'elle veut (ne serait-ce que des infos de debug), il vaut mieux qu'elle sache la taille et la position de cette zone, laquelle dépend de la taille de l'écran, et donc de la calculatrice.

2/ Chaque IA est prévenue du résultat final de la partie qu'elle vient de jouer afin qu'elle puisse réagir en conséquence pour ses futures parties.
Si j'empêchais cela, j'interdirais du même coup toute les IA auto-évolutives (Réseaux de Neurones Formels + Algorithmes Génétiques par exemple).
Et pour les autres IA, tant pis, elles n'ont qu'à pas tenir compte du résultat si elles n'en n'ont pas envie : l'arbitre propose, les IA disposent.

3/ A la fin d'une partie, l'arbitre affiche à destination de l'humain qui attend derrière sa calculatrice le résultat.
Et plutôt que d'annoncer un laconique 'Joueur 1 vainqueur', je préfère ajouter un nom.
Ainsi, lors de la grande compétition finale lancée par ce topic, on saura beaucoup plus facilement le résultat du match entre EthanIA et Pollux4 (ou tout autre nom que tu choisira pour ton IA), sans avoir à se prendre la tête de se souvenir à chaque partie qui est le joueur 1 et qui est le joueur 2.
Comme pour le premier point, c'est un bonus pour rendre plus convivial les matchs.

Plus l'arbitre disposera de ce genre de détails pouvant être utiles, plus il sera complet, sans avoir à rajouter quelques lignes de code chaque fois que l'on s'aperçoit qu'une petite feature serait pratique.
Evidemment, je ne prétends pas avoir inclus toutes les features pouvant être utiles, mais j'ai tenté de m'en approcher en programmant toutes celles auxquelles j'ai pensé.

[cite]Il suffirait de faire simplement :
void ia_init();
int ia_getmove();
void ia_setmove(int);[/pre]
Par exemple une solution serait de passer par le chargement à la demande des libs par PreOS, il suffirait de faire arbitre("prog1","prog2"), avec prog1 et prog2 se présentant sous la forme de libs dynamiques contenant ces 3 fonctions...
Le jour où tout le monde ici saura faire des librairies dynamiques, on en reparlera neutral ...
Ca exclut évidemment les IA en Basic, mais bon de toute façon c pas très réaliste de vouloir faire un truc en TI-Basic qui joue mieux que s'il jouait au hasard ^^
Ho l'autre, hé ! Même pas vrai d'abord !
Mon IA marche très bien, d'abord tongue !
Non mais c'est quoi cette discrimination envers le TI-Basic ?
C'est comme ceux qui critiquent le fait que je ne programme sur x86 qu'en Asm alors qu'ils trouvent que c'est un vieux langage pourri roll ...

@++
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

239

Ah, j'avais oublié que tu faisais une IA en TI-Basic tripaf

Ethaniel
:
Pollux a écrit :
Mouais, y a des défauts, notamment (pour le cas d'une IA en C) : - obligé de tout sauvegarder dans des variables globales du TIOS, c'est un gros problème surtout si ces variables globales contiennent des pointeurs (l'adresse du programme peut changer d'un appel sur l'autre), donc il faut faire des grosses routines d'import/export...
A quoi sert de garder l'adresse des programmes appelés ? A chaque demi-coup, le programme de l'IA qui doit jouer est lancé, s'execute, puis s'achève normalement en indiquant le résultat de ses réflexions dans un format compréhensible par tout programme, à savoir les variables TI.

Le truc c que le programme devra sauvegarder toutes les variables intermédiaires qu'il aura utilisées dans des fichiers ; mais si ces variables intermédiaires ne contiennent pas seulement des entiers, mais aussi des pointeurs, les pointeurs ne seront plus valides à la prochaine exécution du programme puisque les adresses auront changé. Donc il faut convertir à chaque fois entre les deux formats, c'est hyper-lourd...
- API hyper-compliquée pour des raisons que j'ai du mal à comprendre... (pk l'IA devrait avoir qqch à faire du type de calc ??? pk l'IA doit être prévenue du résultat ??? pk demander son nom à l'IA ?)
1/ Comme chaque IA disposant, en bonus du seul calcul du coup à jouer, d'une petite zone graphique où elle est libre d'afficher ce qu'elle veut (ne serait-ce que des infos de debug), il vaut mieux qu'elle sache la taille et la position de cette zone, laquelle dépend de la taille de l'écran, et donc de la calculatrice.

Bof, si c'est des infos de débug, c'est juste pour le développeur, et il sait quelle calc il a, non ?
2/ Chaque IA est prévenue du résultat final de la partie qu'elle vient de jouer afin qu'elle puisse réagir en conséquence pour ses futures parties. Si j'empêchais cela, j'interdirais du même coup toute les IA auto-évolutives (Réseaux de Neurones Formels + Algorithmes Génétiques par exemple).

Si tu veux ^^
3/ A la fin d'une partie, l'arbitre affiche à destination de l'humain qui attend derrière sa calculatrice le résultat.
Et plutôt que d'annoncer un laconique 'Joueur 1 vainqueur', je préfère ajouter un nom.
Ainsi, lors de la grande compétition finale lancée par ce topic, on saura beaucoup plus facilement le résultat du match entre EthanIA et Pollux4 (ou tout autre nom que tu choisira pour ton IA), sans avoir à se prendre la tête de se souvenir à chaque partie qui est le joueur 1 et qui est le joueur 2. Comme pour le premier point, c'est un bonus pour rendre plus convivial les matchs.

Bof, on connaît déjà les noms de variable des 2 IA qu'il faudra appeler...
Il suffirait de faire simplement :
void ia_init();
int ia_getmove();
void ia_setmove(int);

Par exemple une solution serait de passer par le chargement à la demande des libs par PreOS, il suffirait de faire arbitre("prog1","prog2"), avec prog1 et prog2 se présentant sous la forme de libs dynamiques contenant ces 3 fonctions...
Le jour où tout le monde ici saura faire des librairies dynamiques, on en reparlera neutral ...

Bon, si tu fais effectivement une IA en Basic, ça doit être possible de pouvoir faire un wrapper C -> Basic... Le contraire (wrapper Basic -> C) est bien plus lourd pour les progs C, puisque l'environnement devrait changer entre plusieurs exécutions.
C'est comme ceux qui critiquent le fait que je ne programme sur x86 qu'en Asm alors qu'ils trouvent que c'est un vieux langage pourri roll ...

Bah non, c pas un langage pourri, c juste que tu auras moins de liberté pour exécuter ton code où tu veux (ce qui peut être ou non un pb)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

240

*j'ai rien à dire et je le montre*

Critiquer le language plus puissant est différent de critiquer le language moins puissant.
"C'est comme ceux qui critiquent le fait que je ne programme sur x86 qu'en Asm alors qu'ils trouvent que c'est un vieux langage pourri ... " -> pas une comparaison adapté