CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[help]Bataille navale

evilhap
evilhap
Niveau 6
05 janvier 2013 à 19:36:35

Bonsoir, je suis débutant en programmation, j'essaye de réaliser une bataille navale pvp en mode console pour commencer, j'ai crée 2 grilles avec chaque case prenant la valeur 0.
Pour pas me compliqué la tache dès le début je crée 3 bateaux d'une case et qui prennent la valeur de 1 pour le bateau 1, de 2 pour le bateau 2 et 3 pour le bateau 3.

Maintenant je bloque, je dois vérifier qu'aucun bateau ne se place sur un autre bateau, donc après la saisi des coordonné du bateau 2 je fais une boucle avec une condition :

saisir x1
saisir y1

tant que position != vraie
      Si plateau[x1,y1] == 1 alors
            afficher "impossible ressaisir coordonné"
            saisir x1
            saisir y1
      sinon
            plateau[x1,y1] = 2
            position = vraie

Cela fonctionne, mais il y a t-il un moyen de faire plus simple ou de remplacer cet algo par une fonction ou une procédure ?
Merci d'avance

oswim10
oswim10
Niveau 10
05 janvier 2013 à 19:41:46

Sauf que si tu as plusieurs bateaux, il faudra à chaque fois reécrire cette partie en changant la condition.

Je pense que le mieux serait de faire une matrice de booléen, dont chaque case est à TRUE si il y a une partie d'un bateau dessus, et à FALSE s'il y a rien.

evilhap
evilhap
Niveau 6
05 janvier 2013 à 19:48:43

Ah oui merci ! j'y ai pas pensé, mais je savais que ça allait devenir lourd si il y a plusieurs bateau. Encore merci.

evilhap
evilhap
Niveau 6
11 janvier 2013 à 21:24:22

Bonsoir, je suis bloqué pour ajouter une taille au bateau, je pense qu'il d'abord faire un tableau mais je ne vois pas comment.

Pseudo supprimé
Pseudo supprimé 11 janvier 2013 à 21:34:04

Indice : un bateau, c'est juste un segment qui part, à partir de sa coordonnée de pivot, vers le haut, le bas, la gauche ou la droite.
Un bateau, c'est donc juste un type de bateau (ta valeur chiffrée comme tu parlais), une coordonnée, une longueur et une direction.

Pour tester le placement d'un bateau, tu vas devoir vérifier que pour chaque case jusqu'à la fin fin du segment dans la direction du segment de ton bateau et à partir de ses coordonnées, la valeur vaut celle qui représente l'absence de bateau.
Tu ne devras pas non plus oublier de vérifier que la tête et la queue du plateau tombent sur ton plateau de jeu.

Pseudo supprimé
Pseudo supprimé 11 janvier 2013 à 21:36:21

Petite question : quelles structures de données connais-tu (tabelau, liste, structure, etc) ?
Un bateau d'un type donné (croiseur, frégate, etc) pourrait être représenté par une structure.

evilhap
evilhap
Niveau 6
11 janvier 2013 à 21:42:40

Tableau et liste pour l'instant.

Donc si j'ai bien compris je dois faire pour la position verticale : [longueur + x, y ] et position horizontale : [x, longueur + y ] ?

Pseudo supprimé
Pseudo supprimé 11 janvier 2013 à 21:49:08

Oui, quelque chose dans ce genre là :)

Les structures, ce n'est pas très compliqué et je pense que tu vas avoir envie de te renseigner dessus après ce qui va suivre :

structure position [
x : entier
y : entier
]

structure bateau [
longeur : entier
direction : entier
type : entier
position : structure de position
etat_bateau : tableau[longeur]
]

joueur1 : tableau de [structure de bateau]
joueur2 : tableau de [structure de bateau]

Tu vois un peu les possibilité ?
^_^

Pseudo supprimé
Pseudo supprimé 11 janvier 2013 à 21:50:09

possibilitéS

evilhap
evilhap
Niveau 6
11 janvier 2013 à 21:54:14

C'est vrai ! , je vais voir sa de suite merci de ton aide

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment