Netsnake - jeu de serpent en réseau (nio : tcp / udp (unicast / multicast))

Soyez le premier à donner votre avis sur cette source.

Vue 16 527 fois - Téléchargée 1 680 fois

Description

Ceci est un jeu de serpent, qui peut se jouer seul ou en réseau.
Il y a plusieurs modes de jeu :
- être le dernier à rester vivant
- manger le plus de pommes
- manger le plus de pommes alors qu'elles sont toutes à l'écran au départ
- mode tron (les serpents grandissent tout le temps)

Il existe un type de jeu 'aventure', qui permet de jouer tout seul dans des niveaux de plus en plus dur.

Afin de rendre le jeu intéressant, même tout seul, des bots (joueurs virtuels) ont été créés. (Ils s'appuient sur une recherche de plus court chemin "A Star")

La partie réseau est très complète, et s'appuie sur les NIO :
- UDP (unicast ou multicast) pour récupérer la liste des jeux disponibles sur le serveur
- TCP pour la gestion des jeux. Une RFC a été mise dans l'archive pour expliquer le protocole utilisé.

Le sujet complet du projet peut être trouvé ici :
http://igm.univ-mlv.fr/~duris/RESEAU/JAVA/IR2/projetIR2JavaReseau20052006.html

Conclusion :


Bug connu : lorsque l'on a créé une partie, et que l'on change de niveaux, il arrive que les clients n'en soient pas informés, et restent en attente.
Ceci vient d'un problème réseau :
- lorsqu'une partie est finie, le serveur envoie à tout le monde une info "jeu terminé".
- parfois, les clients reçoivent APRES une trame que le serveur a envoyé avant.
- du coup, ils lisent cette info au lieu de récupérer la trame donnant la nouvelle map, et restent donc en attente.

Je n'ai malheureusement pas le temps de corriger celà. Ce projet restera dans l'état, j'en suis désolé :/

Sinon, la partie graphique a été réalisée grâce à une librairie d'un de nos enseignants :
http://www-igm.univ-mlv.fr/~jcervell/

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_GodConan
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
9
salut,

pas mal ;o) ... Sympa l utilisation des annotations ;o).
plein de chose interressante dans cet source ;o)

un petit dommage qd meme ;o) : la frame fixe et l utilisation de panels dans la frame principale pour tout ce qui est menu et parametres ;o) car du coup ton menu ne sert plus à grand chose ;o) ...

tu aurais aussi pu utiliser les filtres de couleurs et les rotations pour éviter de stocker toutes ces images.. ;o)

ceci dit très bon source : 10
cs_Worst
Messages postés
19
Date d'inscription
vendredi 22 février 2002
Statut
Membre
Dernière intervention
13 décembre 2006

Bonjour,
je n'ai jamais utilisé JCreator de ma vie, alors je ne peux pas t'aider de manière directe... (j'utilise Eclipse).

Causes d'erreurs que je vois comme ça :
- pour compiler le jeu, il faut inclure la librairie 'lawrence.jar' qui se trouve dans le dossier 'lib',
- pour lancer le jeu compilé à la main, il faut copier le dossier 'levels' dans 'classes'

Pour compiler le programme manuellement, en ligne de commande, DEPUIS LA RACINE :
javac -cp lib\lawrence.jar -sourcepath src -d classes src\fr\umlv\netSnake\*.java

Ca va compiler toutes les sources du dossier 'src' dans le dossier 'classes'.

Pour copier les niveaux dans 'classes' :
mkdir classes\levels
xcopy levels classes\levels /E /Q /Y

Pour lancer le programme :
cd classes
java -Xbootclasspath/a:..\lib\lawrence.jar fr.umlv.netSnake.Main
le_prince_des_ordinateurs
Messages postés
16
Date d'inscription
samedi 11 octobre 2003
Statut
Membre
Dernière intervention
2 mars 2009

bonjour,
je suis un peu novice en java.
J'ai essayé de compiler ce programme avec JCreator mais ca ne veut pas et y a comme erreur qu'il n'arrive pas à trouver la package

Je pense que l'erreur vient de moi, si on pouvait m'expliquer comment executer le programme ce serait gentil.

merci d'avance
cs_Worst
Messages postés
19
Date d'inscription
vendredi 22 février 2002
Statut
Membre
Dernière intervention
13 décembre 2006

Merci :)

Désolé pour les commentaires, mais ce sont nos profs qui ont insisté pour que tout soit en Anglais :/
thib90000
Messages postés
8
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
22 juin 2006

EXELLENT !!
je recherchait justement une petite source utilisant un "melange" de TCP et UDP
et la en plus je tombe sur une source vraiment bien!
jai vu quelque comentaire mais pas en francais
dommage je vait devoir sortir mon traducteur lol
a++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.