Bonjour à tous,
Ce challenge consiste à agir sur un robot virtuel.
L'objectif étant de vous former aux matrices, au Python et aux Jeux vidéo.
Oui tout ça !
CODE SOURCE
OBJECTIFS
L'objectif est de définir des règles pour qu'un utilisateur extérieur puisse prendre le contrôle du robot.
Votre terrain de jeu sera la zone modifiable. N'oubliez pas d'enlever le commentaire pour plus de clarté.
Le challenge se présente en deux matrices:
self.map -> définition de l'ensemble de la carte (Dimension 5x5)
self.robot -> propriété du robot 'life' / 'x' / 'y'
Votre robot se trouve par défaut au milieu de la carte 'x=2' et 'y=2'.
Le coin en haut à droite est 'x=4' et 'y=0', pour vous donnez un exemple de la dimension.
Le X dans le schéma montre l'emplacement de votre robot - en réalité il ne se trouve pas dans la matrice pour vous faciliter la tâche.
Le 1 présente une collision: un bloc infranchissable.
Le 2 de la nourriture qui donne 100% des points de vies.
Le 3 qui ne se trouve pas par défaut dans le challenge mais qui permet de répondre à 5ème vérification définit un objet (n'importe lequel) posé par le robot.
Si vous avez compris l'univers, plus qu'à passer aux exercices.
Ces lignes sont vos exercices.
La fonction self.exe(*) indique à la machine la commande à exécuter.
Petite aide pour la première ligne: '1' donnera l'ordre de déplacer le robot vers le haut.
Ces étapes permettent de vérifier votre code source, mais sont indépendantes de l'objectif principale.
Une fois la première étape terminé, la seconde suit. Et vous pouvez voir votre avancement avec les différents messages d'alertes préprogrammés '1-> OK'.
FOIRE AUX QUESTIONS
> Quel est l'objectif ?
De programmer une interface utilisateur pour contrôler le robot. L'idée est de checker les différentes étapes de la vérification, mais en vous laissant libre à votre imagination.
> Le X est au milieu ? Le robot ?
Oui. Tout au milieu.
Rien n'est généré aléatoirement.
> Un robot ?
Oui et il ne pense pas. Il se contrôle et possède une barre de vie.
Le robot peut récupérer de l'énergie en se trouvant sur une case avec la valeur 2.
Et il ne peut pas avancer sur une case avec la valeur 1.
Essayez déjà d'implémenter ces règles dans votre code source.
> Faut-il mettre à jour la grille ?
Oui, le système doit être logique. Si vous pensez qu'ajouter un X pour symboliser votre personnage dans la matrice vous aides, faites-le !
> Y a t-il une vie maximum ?
Non. L'idée n'est pas créer un jeu mais d'apprendre et de checker les étapes pour valider votre compétence. Vous pouvez donner une vie maximum si vous le souhaitez.
> Dois-je lire cette présentation en diagonale ?
Non. Toutefois les réponses se trouvent dans le code source, vous pourriez vous en débrouiller avec un minimum de ... logique ! (faudra que je crée un tutoriel sur la logique)
Des questions ?! Non, alors GO GO GO !!!
Si vous galérez poster votre code source.
Bonne chance !
Ce challenge consiste à agir sur un robot virtuel.
L'objectif étant de vous former aux matrices, au Python et aux Jeux vidéo.
Oui tout ça !
CODE SOURCE
Code:
#!/usr/bin/python """ +\_________________/+ || || || 1er || || CHALLENGE || || PYTHON || || || || Par Yarflam || +/=================\+ || NIVEAU || || INTERMEDIAIRE || || || || -- MATRICE -- || +\=================/+ """ class challenge: def __init__(self): # FONCTION PRINCIPALE self.map=[[0,0,0,0,0],[0,0,0,0,0],[1,2,0,0,0],[0,0,0,0,0],[0,0,0,0,0]] self.robot={'life':20, 'x':2, 'y':2} print '1-> OK' if (self.exe(1)) and (self.robot['y'] == 1) else self.error() print '2-> OK' if (self.exe(2)) and (self.robot['x'] == 1) else self.error() print '3-> OK' if (self.exe(4)) and (self.robot['life'] == 100) else self.error() print '4-> OK' if (self.exe(2)) and (self.robot['x'] == 1) else self.error() print '5-> OK' if (self.exe(5)) and (self.map[1][1] == 3) else self.error() def error(self): # GESTIONNAIRE DES ERREURS exec("print '__erreur__'\nraw_input()\nquit()") def exe(self,i): """ ** ZONE MODIFIABLE ** """ return 1 test=challenge() print "\nBRAVO !" raw_input()
L'objectif est de définir des règles pour qu'un utilisateur extérieur puisse prendre le contrôle du robot.
Votre terrain de jeu sera la zone modifiable. N'oubliez pas d'enlever le commentaire pour plus de clarté.
Le challenge se présente en deux matrices:
self.map -> définition de l'ensemble de la carte (Dimension 5x5)
self.robot -> propriété du robot 'life' / 'x' / 'y'
Votre robot se trouve par défaut au milieu de la carte 'x=2' et 'y=2'.
Le coin en haut à droite est 'x=4' et 'y=0', pour vous donnez un exemple de la dimension.
Code:
[[0,0,0,0,0], [0,0,0,0,0], [1,2,X,0,0], [0,0,0,0,0], [0,0,0,0,0]]
Le 1 présente une collision: un bloc infranchissable.
Le 2 de la nourriture qui donne 100% des points de vies.
Le 3 qui ne se trouve pas par défaut dans le challenge mais qui permet de répondre à 5ème vérification définit un objet (n'importe lequel) posé par le robot.
Si vous avez compris l'univers, plus qu'à passer aux exercices.
Code:
print '1-> OK' if (self.exe(1)) and (self.robot['y'] == 1) else self.error() print '2-> OK' if (self.exe(2)) and (self.robot['x'] == 1) else self.error() print '3-> OK' if (self.exe(4)) and (self.robot['life'] == 100) else self.error() print '4-> OK' if (self.exe(2)) and (self.robot['x'] == 1) else self.error() print '5-> OK' if (self.exe(5)) and (self.map[1][1] == 3) else self.error()
La fonction self.exe(*) indique à la machine la commande à exécuter.
Petite aide pour la première ligne: '1' donnera l'ordre de déplacer le robot vers le haut.
Ces étapes permettent de vérifier votre code source, mais sont indépendantes de l'objectif principale.
Une fois la première étape terminé, la seconde suit. Et vous pouvez voir votre avancement avec les différents messages d'alertes préprogrammés '1-> OK'.
FOIRE AUX QUESTIONS
> Quel est l'objectif ?
De programmer une interface utilisateur pour contrôler le robot. L'idée est de checker les différentes étapes de la vérification, mais en vous laissant libre à votre imagination.
> Le X est au milieu ? Le robot ?
Oui. Tout au milieu.
Rien n'est généré aléatoirement.
> Un robot ?
Oui et il ne pense pas. Il se contrôle et possède une barre de vie.
Le robot peut récupérer de l'énergie en se trouvant sur une case avec la valeur 2.
Et il ne peut pas avancer sur une case avec la valeur 1.
Essayez déjà d'implémenter ces règles dans votre code source.
> Faut-il mettre à jour la grille ?
Oui, le système doit être logique. Si vous pensez qu'ajouter un X pour symboliser votre personnage dans la matrice vous aides, faites-le !
> Y a t-il une vie maximum ?
Non. L'idée n'est pas créer un jeu mais d'apprendre et de checker les étapes pour valider votre compétence. Vous pouvez donner une vie maximum si vous le souhaitez.
> Dois-je lire cette présentation en diagonale ?
Non. Toutefois les réponses se trouvent dans le code source, vous pourriez vous en débrouiller avec un minimum de ... logique ! (faudra que je crée un tutoriel sur la logique)
Des questions ?! Non, alors GO GO GO !!!
Si vous galérez poster votre code source.
Bonne chance !
Commentaire