CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • French Days
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • French Days
  • RetourHigh-Tech
    • French Days
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • 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
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Bataille navale en python

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1
Page suivantePage suivante
jycreyn jycreyn
MP
Niveau 1
14 septembre 2019 à 17:55:41

Bonjour, je débute en python et j'aimerais faire un bataille navale. J'ai fait ceci :

from random import *
rejouer = int(1)
while rejouer == 1:

A = randint(1,10)
B = randint (1,10)
C = 999
D = 999

while A != C or B != D :
C=int(input("Trouve les coordonnées x"))
D=int(input("Trouve les coordonnées y"))
print("X = ",C,"Y = ",D)
if A==C and B==D:
print("Touché!")
if A!=C and B!=D:
print("Dans l'eau...")
if A!=C and B==D or A==C and B!=D:
print("Bonne collone ou bonne ligne")

print("On rejoue ?")
recomencer = ("1 = oui / 0 = non")

Cela marche bien mais j'aimerais faire en sorte que lorsque l'on tape acoté du bateau il y ait ecris "frolé".
Mais je ne sais pas comment m'y prendre sans avoir a effectuer 8 test.... ( toutes les case a coté )

Voicis les 8 test que je voudrai supprimer
if A==C+1 and B==D:
print("Frôlé!")
if A==C-1 and B==D:
print("Frôlé!")
if A==C and B==D+1:
print("Frôlé!")
if A==C and B==D-1:
print("Frôlé!")
if A==C+1 and B==D+1:
print("Frôlé!")
if A==C-1 and B==D-1:
print("Frôlé!")
if A==C-1 and B==D+1:
print("Frôlé!")
if A==C+1 and B==D-1:
print("Frôlé!")

Je voudrais simplifier ce code.
Existe-t-il un commande pour connaitre la "distance" entre deux variable int ?

Merci d'avance pour votre aide :D

blackapplex blackapplex
MP
Niveau 10
14 septembre 2019 à 20:43:21

A priori à partir du moment où tu mets 50 "if", tu es sur la mauvaise route comme tu t'en doutes :ok:
C'est classique de devoir faire "le tour" d'une coordonnée (x,y), là pour ton cas je te conseillerai de simplement passer par un double for.


for dx in [-1, 1]
    for dy in [-1, 1]
        if A == C+dx and B == D+dy and not (dx == 0 and dy == 0)
            print("frolé")

Du coup là t'as un delta x et un delta y que tu peux appliquer à C et D

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment