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

[Python 3] Questions à propos d'un petit jeu

Vakus
Vakus
Niveau 9
20 novembre 2015 à 11:22:20

Bonjour,

Dans le cadre d'un projet en informatique, je dois créer un petit jeu. Malheureusement, je bloque sur certains points. (Je suis débutant donc tolérance svp)

1) Comment fait-on pour changer TOUS les éléments d'une liste de majuscules en minuscules? J'ai essayé avec la fonction liste.lower(), mais il semblerait que cette commande n'est pas valide pour les listes.

2) Dans une boucle while, j'aimerais qu'à un moment donné, si une certaine condition est remplie, le programme recommence la boucle depuis le début. Je m'explique :
while i < 4: if x == 4: #sortir de la boucle et revenir juste avant le while, pas au début du programme

3) J'aimerais qu'à la fin du programme, l'ordinateur demande à l'utilisateur s'il veut rejouer et, s'il répond oui, le programme recommence, mais s'il répond non, le script s'arrête et l'utilisateur retourne dans l'interprêteur.
if answer == oui: #relancer le programme depuis le début if answer == non: #sortir du script et retourner dans l'interprêteur

Si vous pouvez répondre à ne serait-ce une de mes questions, ce serait très bienvenu. Merci d'avance :)

EDIT : désolé pour l'indentation, je ne gère pas trop la commande code de JVC

Message édité le 20 novembre 2015 à 11:24:02 par Vakus
mgman57
mgman57
Niveau 10
20 novembre 2015 à 11:54:48

Pour le 2, si x=4 tu remets i à sa valeur initiale :ok:

typedefstruct
typedefstruct
Niveau 7
20 novembre 2015 à 12:07:33

1)
>>> liste ['ABcd', 'AbcD', 'abcd', 'abcd'] >>> nliste = list() >>> for element in liste: ... nliste.append(element.lower()) ... >>> liste = nliste >>> nliste ['abcd', 'abcd', 'abcd', 'abcd'] >>>

2) "continue"

3) quelque chose du genre:
jouer = True while(jouer): print("jeu") jouer = input("continuer à jouer ?")=="oui"

1 & 3 non dégeulassés par le forum :http://pastebin.com/kSZkS1y5

Message édité le 20 novembre 2015 à 12:09:45 par typedefstruct
Vakus
Vakus
Niveau 9
20 novembre 2015 à 12:09:42

Je pense que je me suis mal exprimé. Pour la question 2, j'aimerais que, si la condition est remplie, le programme recommence juste cette boucle-là, c'est à dire qu'il fait comme si il n'y était pas entré la dernière fois.

Imaginons que, avant de rentrer dans la boucle, mon "i" = 3 et que la condition x == 4 est vraie, alors à ce moment-là, le programme arrête la boucle, garde la valeur i == 3 et recommence la boucle, reteste x==4, si c'est vrai, recommence la boucle avec i == 3 et sinon continue normalement.

Merci de ton aide :)

Vakus
Vakus
Niveau 9
20 novembre 2015 à 12:20:03

Merci de tes réponses, j'ai pu comprendre pour les majuscules.

Par contre, j'ai 2 petites questions :

1) Il y a t-il un autre moyen de recommencer une boucle et de faire comme si rien ne s'était passé sans utiliser la fonction continue?

2) J'ai pas été très attentif mais pour le 3, on doit définir une fonction qui demande à l'utilisateur s'il veut continuer à jouer. Voici ce que j'ai fait :

def input_continue_playing():
    """
    Demande à l'utilisateur s'il veut continuer à jouer ou quitter le programme.
    """
    return input("\nVoulez-vous [C]ontinuer à jouer ou [Q]uitter? ")

Voilà ce que j'ai défini, l'utilisateur doit donc rentrer "C" ou "Q" en input selon ce qu'il veut faire.

input_continue_playing()
                    if input_continue_playing() == "Q":
                        #Que faire pour retourner dans le shell?
                    elif input_continue_playing() == "C":
                         #Que faire pour relancer le programme depuis le tout tout début ?
Schiffer
Schiffer
Niveau 10
20 novembre 2015 à 12:39:47

Définie une fonction play() qui commence un jeu
Dans input_continue_playing(), tu dois mettre le choix de l'utilisateur dans une variable et faire tes if elif suivant le résultat de cette variable

typedefstruct
typedefstruct
Niveau 7
20 novembre 2015 à 12:48:04

Imaginons que, avant de rentrer dans la boucle, mon "i" = 3 et que la condition x == 4 est vraie, alors à ce moment-là, le programme arrête la boucle, garde la valeur i == 3 et recommence la boucle, reteste x==4, si c'est vrai, recommence la boucle avec i == 3 et sinon continue normalement.


i-=1
continue

:(

2) J'ai pas été très attentif mais pour le 3, on doit définir une fonction qui demande à l'utilisateur s'il veut continuer à jouer

Ben en fonction alors :(
http://pastebin.com/02QbGXDL

MrGreez94
MrGreez94
Niveau 10
20 novembre 2015 à 13:09:01

Pour appliquer une fonction à tous les éléments d'une liste en un ligne tu peux utiliser les list comprehensions, ce qui donnerait en dans ton cas:

liste = ["ABCD", "aBCd", "ABCd"]

nliste = [x.lower() for x in liste] 

=> nliste = ["abcd", "abcd", "abcd"]

C'est moins lourd que de faire une boucle explicite :ok:

Vakus
Vakus
Niveau 9
20 novembre 2015 à 13:42:29

Niquel, merci à vous, ça m'a permis d'éclaircir pas mal de trucs et mon projet avance plutôt très bien.

Par contre, même si c'est demandé dans les consignes, je vois pas l'utilité d'une fonction play(). Pour le moment, j'indique simplement:
play = 0 while play != 1: #Le jeu tourne

Ca n'est pas optimal comme ça? Ca consisterait en quoi une fonction play()?

typedefstruct
typedefstruct
Niveau 7
20 novembre 2015 à 14:47:41

Vu que la fonction est très courte, dans l'absolu ça sert à rien... juste à apprendre à découper un programme en fonctions sûrement

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