remi-p / battleship Goto Github PK
View Code? Open in Web Editor NEWProjet de Programmation Orientée Objet
Projet de Programmation Orientée Objet
Les ships de l'IA sont quand même très souvent horizontaux ahah 😄
Il faudra mettre en place une vérification qu'il y ait le bon nombre de bateaux. Du coup ça passe par l'attribut size (pour qu'il y ait qlc comme 20% de place utilisée, de mémoire), mais aussi par la valeur du noeud de chaque navire.
Donc il faudra peut-être l'ajouter au HashMap.
Et après hop, test et levée d'exception !
Tous les noms de méthodes/attributs/... ne respectent pas la notation du projet.
Sachant qu'il y a une pénalité de trois points si on ne respecte pas toutes les contraintes du projet 😃
Mémo ;
grid.xml
L'attribut size n'est pas encore initialisé par le constructeur de la classe Ship, en effet size s'obtient dans le fichier grid.xml alors que ship n'ouvre que le fichier ships.xml pour l'instant. Je trouve cela embêtant de devoir ouvrir aussi grid.xml alors qu'on l'ouvre déjà à l'instanciation d'un objet Grid ...
Juste pour prévenir, dans la nouvelle classe Type, la méthode setTypes a un comportement étrange que je n'ai pas eu le temps de corriger (cf les commentaires).
Quelques fois lors du lancement du jeu on tombe sur l'erreur suivante :
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at fr.enseirb.battleship.Grid.random_shipname(Grid.java:174)
at fr.enseirb.battleship.Grid.random_ships(Grid.java:135)
at fr.enseirb.battleship.Grid.<init>(Grid.java:58)
at fr.enseirb.battleship.IA.InitialisationGrid(IA.java:19)
at fr.enseirb.battleship.IA.<init>(IA.java:14)
at fr.enseirb.battleship.IA.<init>(IA.java:9)
at fr.enseirb.battleship.App.main(App.java:21)
Camand exception qui ne prend pas en compte certaines erreurs :
exemple :
fire z z
fire 5 9*
Quand on change la taille de la grille (différent de 10 x 10), le positionnement des bateaux et l'affichage de la grille sont erronés. :)
Yop,
J'étais en train de vérifier que les différentes étapes fonctionnent toutes. J'ai pas touché au placement (PACK
), ni au firing (FAR
), mais il semble que certaines fois, on entre dans une boucle infinie et le programme n'arrive pas à placer les bateaux :
...
One or both of Star Destroyer coordinates are out of bounds
x => 2
y => 11
One or both of O'Neill coordinates are out of bounds
x => 1
y => 11
One or both of O'Neill coordinates are out of bounds
x => 0
y => 11
One or both of Destiny coordinates are out of bounds
x => 2
y => 11
One or both of USS Enterprise coordinates are out of bounds
x => 1
y => 11
One or both of Destiny coordinates are out of bounds
x => 1
y => 11
One or both of Galactica Battlestar coordinates are out of bounds
x => 0
y => 11
One or both of Galactica Battlestar coordinates are out of bounds
x => 0
y => 11
...
Coucou,
Remi, tu as supprimé l'enum Type pour créer une classe type. La classe je la trouve utilise, mais on aurait pu faire les deux. L'enum est pratique pour faire des switchs, car on peut faire des switch sur des enums. Je pense que pour la suite ça peut être pratique, peut-être ! :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.