IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Changement de niveau sur Snake


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Changement de niveau sur Snake
    Bonjour ! J'ai trouvé un programme source du jeu Snake sur internet et j'aimerais le modifier en commençant par implémenter un second niveau, je m'explique : A partir d'un certain score ( nombre de pommes mangées), la vitesse du serpent (variable : snake_speed) augmente . Pourriez vous m'aider merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    import pygame
    import time
    import random
     
    pygame.init()
     
    white = (255, 255, 255)
    yellow = (255, 255, 102)
    black = (0, 0, 0)
    red = (213, 50, 80)
    green = (0, 255, 0)
    blue = (50, 153, 213)
     
    dis_width = 800
    dis_height = 600
     
    dis = pygame.display.set_mode((dis_width, dis_height))
    pygame.display.set_caption('Snake de Liam et Noah')
     
    clock = pygame.time.Clock()
     
    snake_block = 10
    snake_speed = 9
     
     
     
     
    font_style = pygame.font.SysFont("bahnschrift", 25)
    score_font = pygame.font.SysFont("Arial", 35)
     
     
    def Your_score(score):
        value = score_font.render("Your Score: " + str(score), True, yellow)
        dis.blit(value, [0, 0])
     
     
     
     
     
    def our_snake(snake_block, snake_list):
        for x in snake_list:
            pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])
     
     
    def message(msg, color):
        mesg = font_style.render(msg, True, color)
        dis.blit(mesg, [dis_width / 6, dis_height / 3])
     
     
    def gameLoop():
        global Length_of_snake
        game_over = False
        game_close = False
     
        x1 = dis_width / 2
        y1 = dis_height / 2
     
        x1_change = 0
        y1_change = 0
     
        snake_List = []
        Length_of_snake = 1
     
        foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
        foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
     
        while not game_over:
     
            while game_close == True:
                dis.fill(blue)
                message("Tu as perdu ! Appuie sur C pour rejouer ou Q pour quitter", red)
                Your_score(Length_of_snake - 1)
                pygame.display.update()
     
                for event in pygame.event.get():
                    if event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_a:
                            game_over = True
                            game_close = False
                        if event.key == pygame.K_c:
                            gameLoop()
     
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    game_over = True
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_LEFT:
                        x1_change = -snake_block
                        y1_change = 0
                    elif event.key == pygame.K_RIGHT:
                        x1_change = snake_block
                        y1_change = 0
                    elif event.key == pygame.K_UP:
                        y1_change = -snake_block
                        x1_change = 0
                    elif event.key == pygame.K_DOWN:
                        y1_change = snake_block
                        x1_change = 0
     
            if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
                game_close = True
            x1 += x1_change
            y1 += y1_change
            dis.fill(blue)
            pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])
            snake_Head = []
            snake_Head.append(x1)
            snake_Head.append(y1)
            snake_List.append(snake_Head)
            if len(snake_List) > Length_of_snake:
                del snake_List[0]
     
            for x in snake_List[:-1]:
                if x == snake_Head:
                    game_close = True
     
            our_snake(snake_block, snake_List)
            Your_score(Length_of_snake - 1)
     
            pygame.display.update()
     
            if x1 == foodx and y1 == foody:
                foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
                foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
                Length_of_snake += 1
     
            clock.tick(snake_speed)
     
        pygame.quit()
        quit()
     
     
    gameLoop()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par LiamNoahNSI Voir le message
    A partir d'un certain score ( nombre de pommes mangées), la vitesse du serpent (variable : snake_speed) augmente .
    incrémenter une variable à certaines conditions... quelle difficulté çà vous pose?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Je m'en doute mais je n'y arrive pouvez vous m'aider ?

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2013
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 80
    Points : 119
    Points
    119
    Par défaut
    Hello,

    Il faut repérer la fonction qui détecte l'évènement "a mangé une pomme" et les variable "score du joueur" et "vitesse du serpent"... Ici la difficulté est que c'est écrit en anglais, m'enfin ça relève plus du traitement de texte que de l'algorithmique

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par charliemtx Voir le message
    Hello,

    Il faut repérer la fonction qui détecte l'évènement "a mangé une pomme" et les variable "score du joueur" et "vitesse du serpent"... Ici la difficulté est que c'est écrit en anglais, m'enfin ça relève plus du traitement de texte que de l'algorithmique
    La
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            if x1 == foodx and y1 == foody:
                foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
                foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
                ting.play()
                Length_of_snake += 1
    Voici la variable pour la pomme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def Your_score(score):
        value = score_font.render("Your Score: " + str(score), True, yellow)
        dis.blit(value, [0, 0])
    Voici la variable pour le score

    et la variable de vitesse est snake_speed
    Cependant je comprend le théorique mais au niveau du codes j'essaie de le faire mais je n'y arrive pas, pourriez vous m'aider ? Merci

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par LiamNoahNSI Voir le message
    Cependant je comprend le théorique mais au niveau du codes j'essaie de le faire mais je n'y arrive pas, pourriez vous m'aider ?
    Un snake avec des niveaux ou qui accélèrent, il y en a plein sur Internet.

    Après modifier un code récupéré sur Internet est une bonne occasion pour réviser un peu les bases de Python.

    Ce qui suppose avoir essayé quelque chose de raisonnable (et qu'on peut montrer) sans comprendre pourquoi çà ne marche pas.

    Vous aider à devenir un meilleur programmeur n'a rien à voir avec écrire le code à votre place.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre à l'essai
    Homme Profil pro
    Informatique de Gestion
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique de Gestion

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Si tu arrives à obtenir dans le code, la variable score, passe la en paramètre d'une fonction que tu crées et effectue un switch dessus dans lequel tu augmentes la variable speed en fonction de la valeur du score.

    https://jaxenter.com/implement-switc...on-138315.html

    Si tu ne sais pas où définir ta fonction, je t'invite à la placer à diverses endroits du code pour tenter de comprendre la logique du développement

Discussions similaires

  1. problème clic sur kml après changement de niveau de zoom
    Par ocelcr dans le forum IGN API Géoportail
    Réponses: 7
    Dernier message: 17/03/2012, 10h30
  2. changement de couleur sur les lignes d'un tableau
    Par brasco06 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/04/2006, 18h03
  3. Changement de couleurs sur enregistrements du DataGrid
    Par Bouassa dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/03/2006, 17h59
  4. Réponses: 2
    Dernier message: 23/01/2006, 11h55
  5. []Changement d'échelle sur un MSChart
    Par Lanf dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2004, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo