J'ai réfléchis sur comment faire un morpion en mode texte, mais je bloque sur plusieurs choses avec mes connaissances actuelles (rien que pour afficher le plateau qu'une seule fois et placer les coups sur le plateau au fur et à mesure).
Sachant que j'aimerais faire un petit jeu en 2D (genre un snake ou un shmup) en java, il me faut quoi de plus comme notions importantes ?
Je crois que la seule application un peu compliquée que j'ai réussi à coder du début à la fin, c'est un jeu de morpion.
Alors comme notions chiantes, je pense que je peux citer le parcours d'abres et la récursivité, à ma connaissance c'est indispensable pour implémenter une IA.
On dirait pas comme ça, mais ton algo de morpion, tu ne peux pas le faire en faisant des switch/case pour évaluer l'état du plateau et choisir la case que l'ordinateur va jouer en fonction de celles déjà remplies... enfin, ça doit être faisable, mais ça doit être une galère sans nom, et c'est inapplicable dès que ça devient plus compliqué.
Déjà que le morpion, c'est sympa en terme de possibilités de plateaux différents, je te laisse imaginer pour les échecs.
Bref, il faut se représenter une partie sous la forme d'un arbre de possibilités.
Imagine que tu places un rond dans la case en haut à gauche, l'ordi doit se dire "bon, à partir de ce cas-là, je vais voir comment peut se dérouler la partie en fonction de ce qu'on va faire ensuite".
Alors, il teste de foutre sa croix au milieu, en haut au milieu, en bas à droite... bref, partout où il pourrait mettre une croix au prochain coup, donc ça laisse 8 possibilités.
Pour chacune de ses possibilités, il doit ensuite pouvoir se représenter chaque cas où tu pourrais ensuite mettre ton rond, soit 7 possibilités (fois les 8 du niveau d'au-dessus), et ainsi de suite.
Le "niveau de profondeur" de l'arbre jusqu'où l'ordinateur va aller détermine le niveau de difficulté, tu t'imagines bien que si l'ordinateur évalue juste le prochain coup pour placer sa croix, il sera plus facile à battre que si il évalue toutes les possibilités restantes, dans sa tête il aurait 8 coups d'avance.
Et si je me trompe pas, "toutes les possibilités", ça revient à faire un factoriel 9 dans le cas où c'est l'ordi qui commence la partie, soit 362880 possibilités.
Ça c'est juste pour que tu voies que tu ne peux pas coder ça à la main.

La notion d'arbre est assez facile à comprendre, la notion de récursivité un peu moins (c'est ce qui va permettre à l'ordi d'évaluer les coups à jouer et de parcourir les 362880 possibilités en une seule ligne de code

), mais tu devrais pouvoir trouver de la doc là-dessus.
La difficulté c'est plutôt d'expliquer à l'ordi comment il doit évaluer les coups à jouer, faut qu'il comprenne qu'il aura intérêt à jouer un certain coup plutôt qu'un autre car ça lui donnera plus de chances de gagner.
Honnêtement, c'est pas facile à expliquer, c'est pas non plus évident à comprendre, mais c'est pas non plus impossible.
Si je peux te donner un conseil, oublie l'idée de le faire en texte (qui a envie de jouer à un morpion en mode texte ?).
Perso, c'est un projet que j'ai dû faire pour les cours, avec libre choix du langage ; je me suis lancé un peu au hasard dans Flex (c'est le même langage que le Flash, c'est aussi Adobe qui le fait, mais c'est plus orienté développement que graphisme) en connaissant juste le C et le Java et sans rien connaître à l'ActionScript 3, et j'ai franchement bien aimé, la syntaxe ne te dépaysera pas.
Et puis, avec ça, tu as vite fait de faire une jolie interface en pas beaucoup de temps... ça joue pour la motivation.
Si ça peut te rassurer, je pense que le morpion c'est l'exemple type du jeu qui implémente une IA, et ça doit pas manquer de tuto pour comprendre le principe de programmation sur internet.