Module · Détail

Frogger : Générer les voitures à partir de données

Ce module introduit des structures de jeu basées sur les données, où plusieurs ennemis sont générés automatiquement à partir d'une liste de données. Cela montre comment la modélisation et l'implémentation travaillent ensemble pour générer systématiquement des objets récurrents dans le jeu.

Temps 35 minutes
Les concepts centraux sont les structures de liste, les tuples, les boucles et les conventions de nommage cohérentes. Cela permet de comprendre comment une description abstraite du modèle – ici la structure de données pour les voies – peut être directement convertie en génération automatique d'objets. frameCraft
Langue Python 3
Tâches 1
Image prévisualisation : Frogger : Générer les voitures à partir de données

Introduction (Extrait original)

Vous ne créez plus d'ennemis automobiles en copiant et collant, mais de manière data-driven : une liste décrit les pistes (position Y, vitesse, couleur) et avec enumerate et un schéma de nommage clair, plusieurs entités sont générées automatiquement.

Classification pédagogique

Objectif subjectif

Ce module introduit le principe du programmation basée sur les données. Au lieu de créer manuellement des objets individuels, les objets du jeu sont générés à partir de données structurées. Les concepts centraux sont les structures de liste, les tuples, les boucles et les conventions de nommage cohérentes. Cela rend clair comment une description abstraite du modèle - ici la structure de données pour les voies - peut être directement convertie en génération automatique d’objets. En outre, l’adaptation de logiques de mouvement existantes est discutée afin que des règles puissent traiter systématiquement plusieurs objets selon un schéma de nommage. Ce module illustre ainsi le lien entre modèle de données, structure algorithmique et implémentation évolutive.

Développement des compétences

Valeur pédagogique ajoutée par l’enseignement

Déroulement de l’unité pédagogique

1

Liste de pistes + Génération automatique + Règle de mouvement

Dans cette étape, un modèle basé sur les données pour les véhicules ennemis est construit. Tout d'abord, une liste de données de voies est définie, puis une fonction est implémentée pour générer automatiquement plusieurs voitures. Enfin, la règle de mouvement est ajustée afin que tous les véhicules puissent être traités itérativement grâce à un schéma de nommage systématique.

  • Modélisation des données et génération automatisée d'objets
  • Défi typique : schémas de nommage cohérents et structure de boucle correcte

Affectation du travail (extrait)

1. Définir une constante pour le nombre de voitures par voie. 2. Créer une liste de données pour les voies avec la position Y, la vitesse et la couleur. 3. Implémenter une fonction pour générer automatiquement des voitures par voie. 4. Appeler cette fonction lors de la configuration de la scène en utilisant enumerate pour chaque voie. 5. Ajuster la règle de mouvement afin que toutes les voitures puissent être déplacées itérativement selon le schéma de nommage.

Exemple (extrait)

Le fragment suivant montre comment un schéma de nommage cohérent pour les véhicules générés automatiquement est formé.

1
2
3
4
5
6
7
car_spacing = window_width // NUM_AUTOS
for index in range(NUM_AUTOS):
    car_name = "auto_" + str(lane_index) + "_" + str(index)
    start_x = (index * car_spacing + lane_index * 28 + 20) % window_width
    OBJEKT(car_name, pos=(start_x, lane_y), tag="auto")
    RECHTECK(car_name, AUTO_WIDTH, AUTO_HEIGHT, ausloser=True)
    GESCHWINDIGKEIT(car_name, vel_x, 0)

L’exemple illustre comment plusieurs objets de jeu sont générés systématiquement à partir d’une structure de données.

Notes pour la pratique en classe

Ce module montre comment les modèles de données structurés peuvent être systématiquement traduits en objets automatiques de jeu et ainsi permettre des mécanismes de jeu plus complexes.

La séquence clairement structurée des tâches soutient une organisation transparente de la leçon et facilite la consolidation des résultats obtenus. La différenciation peut se faire par l’ajout d’entrées de données supplémentaires ou l’extension de la logique de mouvement.

Demandez un accès démo et testez ce module dans votre propre contexte de cours.