Projet Micro Final Python
Projet Micro Final Python
Le jeu de Ludo
Soumis par
Siddhesh Jagdish Shelar
Jainul Jignesh Dave
Shreyash Kiran Dahale
Ojas Yogesh Joshi
Sous la direction de
Affilié à
État du Maharashtra
Conseil de l'éducation technique
Certificat
Ceci est pour certifier que M. Siddhesh Jagdish Shelar avec le numéro de rouleau - 12 a réussi à compléter le Micro-
projet dans le cours Programmation avec Python (22616) pour l'année académique 2020-21 tel que prescrit dans le
'Manuel d'évaluation' pendant son mandat de completion du sixième semestre du programme de diplôme en
Ingénierie informatique de l'institut, Sandip Polytechnic avec le code institut 1167.
L'objectif principal pour chaque joueur est de déplacer tous ses jetons ou pièces jusqu'à la fin avant ses adversaires.
Bien sûr, en chemin, il y a encore quelques obstacles que le joueur doit surmonter. Passez à travers ces étapes une par une.
instructions pour obtenir une meilleure perspective sur la façon de maîtriser ce jeu facile.
Un cas d'utilisation est une description d'un ensemble de séquences d'actions, graphiquement il est rendu sous forme de
ellipse avec une ligne solide incluant seulement son nom. Le diagramme de cas d'utilisation est un diagramme comportemental
cela montre un ensemble de cas d'utilisation et d'acteurs et leur relation. C'est une association entre
les cas d'utilisation et les acteurs. Un acteur représente un objet du monde réel.
Éléments du modèle
Joueur : Cela est modélisé par un type de nœud. Les joueurs peuvent avoir un identifiant ou une couleur pour
les distinguer. L'ordre cyclique des joueurs est généralement modélisé explicitement (à travers
bords).
Pion : Cela est modélisé par un type de nœud. Chaque pion appartient à un certain joueur ; cela est
généralement modélisé par une bordure, ou dans certains cas par un attribut.
Champ : Ceci est modélisé par un type de nœud. Les champs d'entrée et d'objectif sont des types spéciaux de champs.
généralement modélisé par des sous-types, ou dans certains cas marqué par des auto-boucles spéciales. Le même
peut être fait pour les terrains locaux, bien que ceux-ci ne soient pas essentiels au jeu (nous les avons laissés)
hors de la Fig. 2). Les champs d'entrée et d'objectif (et de domicile) appartiennent à un joueur ; cela est typiquement
modélisé par un bord. La position d'un pion (sur un champ) est également modélisée par un
bord.
Tableau : Cela consiste en tous les champs et leurs interconnexions, c'est-à-dire les champs suivants et
les jonctions vers les champs de but. Les interconnexions peuvent être transformées en nœuds, mais
sera généralement modélisée par des arêtes. Le plateau lui-même n'a pas nécessairement besoin d'une spécialité
nœud, puisque tous les champs lui appartiennent déjà implicitement.
Ceci est modélisé par un nœud (singleton), éventuellement d'un type spécial mais de manière optionnelle.
intégré à un nœud existant. Le résultat d'un lancer de dés est alors typiquement un
attribut du nœud de dé.
Stratégie : Cela est modélisé par un nœud ou une valeur d'attribut ; un joueur peut alors être assign
une stratégie en ajoutant un avantage ou un attribut.
Sr Nom de
Pas de ressource/matériau
Spécification Qté. Remarques
Ordinateur de bureau avec Intel Core 2 Duo -
1 Ressource matérielle 2.93 GHz, RAM 2 Go, HDD 1
160 Go
Ressource logicielle IDE Python -
2 1
3 Toute autre ressource Internet - -
Nom des membres de l'équipe avec les numéros de rôle :
C'est un jeu de Ludo qui est très facile à comprendre et à utiliser. En parlant de
jouabilité, toutes les règles de jeu sont les mêmes que lorsque nous jouons au ludo en temps réel. Ici au début,
l'utilisateur doit sélectionner des joueurs, c'est-à-dire soit des humains, soit des ordinateurs. Après avoir sélectionné un humain, le joueur
doit entrer des détails tels que le nom et sélectionner une couleur (rouge, vert, jaune et bleu). le joueur
peut également commencer le jeu à deux joueurs s'il/elle le souhaite. Après avoir commencé le jeu, une console
le plateau de jeu basé apparaît, les autres règles sont les mêmes. Tout d'abord, l'ordinateur ou le joueur doit
La chose principale dans ce jeu basé sur une console est que le joueur doit simplement appuyer sur "Entrée".
Appuyez sur la touche "Espace" pour lancer les dés. En haut du plateau, il affiche un dé avec le nombre. Le système
keeps on rolling until there’s a possible pawn to move. All the game movements are
effectué automatiquement. Chaque fois que le joueur essaie de terminer le jeu, il y a une option
disponible pour sauvegarder la partie inachevée afin qu'il/elle puisse la continuer plus tard. Une console simple
Une interface graphique est fournie pour un gameplay facile. Le design du gameplay est si simple que l'utilisateur ne sera pas
Comment jouer
1.Chemin du joueur de Ludo.
2.Ludo Accueil.
3. Zone de départ.
4.Déplacez-vous à partir de la case de départ, dans le sens des aiguilles d'une montre autour du périmètre.
Règles du jeu
Quatre pièces sont placées dans la zone de départ de leur couleur.
La figure montre le modèle en spirale du développement logiciel. Ce modèle est une combinaison de bien-
modèle en cascade connu et prototypage itératif. Il permet un développement rapide de produits plus complets
version du logiciel. En utilisant le modèle en spirale, le logiciel est développé comme une série de
Lancements évolutifs. Lors des premières versions, il peut s'agir simplement de paperasse ou de prototypes. Mais pendant
Les versions ultérieures vont vers un stade plus abouti.
Le modèle en spirale peut être adopté pour s'appliquer à l'ensemble du cycle de vie de l'application à partir de
développement de concept à maintenance. Le modèle en spirale est divisé en un ensemble d'activités cadre
défini par l'équipe d'ingénieurs logiciels. L'activité initiale est montrée depuis le centre du cercle et
développé dans le sens des aiguilles d'une montre. Chaque spirale du modèle comprend les quatre étapes suivantes :
Phase de planification : Cette étape comprend la collecte des exigences, l'estimation des coûts, l'allocation des ressources.
Risk Analysis Phase: This stage involves strengths and weaknesses of the project. Design Phase:
Cette étape comprend la codification, les tests internes et le déploiement.
Phase d'évaluation : La dernière étape implique l'évaluation par le client (tests du côté client) pour obtenir des retours.
Diverses activités qui sont effectuées selon les phases du modèle en spirale sont montrées dans le tableau.
5.0 Ressources Réelles Utilisées :
cela (soi)
self.prompt_end = "> "
self.game = Game() #
utilisé pour une impression plus agréable
self.prompted_for_pawn = False #
sauvegarde des données de jeu
self.record_maker = MakeRecord() #
obtention des données de jeu self.record_runner =
Aucun
pause
sinon :
Option invalide !
continuer
elif str_len :
min_len, max_len = str_len
si min_len < len(choice) < max_len :
pause
sinon :
imprimer(linesep + error_mess)
sinon :
pause
imprimer()
retourner choix
def obtenir_choix_initial_utilisateur(self):
choisissez une option
"0 - start new game", "1
- continuer le jeu
2 - exécuter (réviser) le jeu enregistré
choice = self.validate_input(text, int, (0, 1, 2)) return
choix
encore
def l_utilisateur_veut_il_sauvegarder_le_jeu(self):
retourner True si l'utilisateur veut sauvegarder le jeu
ou Faux
'''
Sauvegarder la partie ? 0
- Non
"1 - Yes"])
choice = self.validate_input(text, int, (0, 1))
retour choix == 1
def demander_joueur(self):
obtenir les attributs du joueur à partir de l'entrée,
si choix == 1 :
name = self.validate_input("Enter name for player",
str, str_len=(1, 30))
options_disponibles = range(len(couleurs_disponibles)) si
len(available_options) > 1 :
# afficher les couleurs disponibles
options = ["{} - {}".format(index, couleur) pour
index, couleur dans zip(options_disponibles,
couleurs_disponibles)
choisissez la couleur
texte += lignesep.join(options)
choice = self.validate_input(text, int, available_options)
colour = available_colours.pop(choice)
sinon :
il ne reste qu'une seule couleur
colour = available_colours.pop()
player = Player(colour, name, self.prompt_choose_pawn)
elif choix == 0 :
# attribuer des couleurs automatiquement
colour = available_colours.pop()
player = Player(colour)
self.game.ajouter_joueur(joueur)
0 - ajouter un joueur
1 - commencer le jeu avec {} joueurs
j dans la plage(2, 4) :
choix = self.validate_input(text.format(str(i)), int, (0, 1)) si
choix == 1 :
pause
sinon si choix == 0 :
print(text_add.format(counts[i]))
demander_joueur()
Joueur ajouté
def afficher_info_après_tour(self):
il a utilisé les attributs du jeu pour imprimer des informations
message = present_6_die_name(self.game.rolled_value,
str(self.game.joueur_courant)) message
+= ligne de séparation
if self.game.allowed_pawns: message_moved =
{} est déplacé.
self.game.picked_pawn.id) si
self.prompted_for_pawn:
self.prompted_for_pawn = False
print(message_moved)
retourner
{} pions possibles à déplacer.
.join(pawns_id))
message += " " + message_moved si
self.game.jog_pawns:
Pion de course
message += " ".join([pion.id pour pion dans self.game.jog_pawns])
sinon :
Aucuns pions possibles à déplacer.
imprimer(message)
def imprimer_classement(self):
standing_list = ["{} - {}".format(index + 1, player)
pour l'indice, joueur dans énumérer(self.jeu.classement)
message = "Standing:" + linesep + linesep.join(standing_list)
imprimer(message)
def afficher_plateau(self):
print(self.game.get_board_pic())
def jouer_une_partie_enregistree(self):
obtenir l'historique du jeu (valeur_roulée
et le pion autorisé de l'index) de
enregistreur_de_coureur afin de rejouer le jeu
self.load_recorded_players()
self.imprimer_informations_joueurs()
continuez_par_vous_même()
pour rolled_value, index dans self.record_runner :
self.game.jouer_tour(index, valeur_lancée)
self.imprimer_info_après_tour() self.imprimer_plateau()
self.demander_de_continuer() self.imprimer_plateau()
def continuer_partie_enregistre(self):
faire avancer le jeu en appelant
méthode play_turn au moment où
le jeu a été interrompu.
'''
self.load_recorded_players()
self.enregistrer_joueurs()
pour rolled_value, index dans self.record_runner :
self.game.jouer_tour(index, valeur_lancée)
self.record_maker.ajouter_tour_de_jeu(
self.game.rolled_value, self.game.index
self.imprimer_info_joueurs()
self.print_info_after_turn()
self.print_board()
file_descr.fermer()
pour joueur dans self.record_runner.get_players(
self.prompt_choose_pawn):
self.jeu.ajouter_joueur(joueur)
def charger_joueurs_pour_nouvelle_partie(self):
self.demander_des_joueurs()
self.print_players_info()
self.enregistrer_joueurs()
self.game.jouer_tour()
self.imprimer_info_après_tour()
self.imprimer_plateau()
self.record_maker.ajouter_tour_de_jeu(
self.game.valeur_lancée, self.game.index
continuez_à_prompts()
Jeu terminé
self.imprimer_classement()
self.enregistrer_partie()
sauf (KeyboardInterrupt, EOFError) :
imprimer(lignesep +
Sortie du jeu.
Sauvegarder la partie et continuer le même jeu plus tard ?
self.offer_enregistrer_partie()
élever
def offre_sauvegarde_jeu(self):
offrir à l'utilisateur de sauvegarder le jeu
si self.utilisateur_veut_enregistrer_la_partie() :
file_descr = self.prompt_for_file(mode="wb")
self.record_maker.save(file_descr)
file_descr.close()
Le jeu est sauvegardé
débuter(self):
méthode principale, démarrage cli
imprimer()
essayer :
choix = self.get_user_initial_choice() si
choix == 0 : # commencer un nouveau jeu
self.load_players_for_new_game()
self.jouer_jeu()
elif choix == 1 : # continuer le jeu
self.continue_recorded_game() si
self.game.fini :
Impossible de continuer.
Le jeu est déjà terminé
Sortie
sinon :
auto.inviter_a_continuer()
self.jouer_jeu()
elif choix == 2 : # revoir le jeu joué
self.jouer_partie_enregistrée()
excepté (KeyboardInterrupt, EOFError) :
Sortir du jeu
si nom == ' principal ' :
CLIGame().démarrer()
def offrir_sauvegarder_jeu(self):
offrir à l'utilisateur la sauvegarde du jeu
si self.does_user_want_save_game():
file_descr = self.prompt_for_file(mode="wb")
self.record_maker.save(file_descr)
file_descr.close()
Le jeu est enregistré
commencer(self):
Outputs
1.
2.
3.
4.
7.1 Compétence Développée/Résultat d'Apprentissage de
ce Micro-Projet :
a)Résultats pratiques :
CONCLUSION
Ludo est un jeu de société simple, pour deux à quatre joueurs, dans lequel le
les joueurs font courir leurs quatre pièces de départ à l'arrivée selon les lancers de dés, et profitent
jeu, toutes les règles de jeu coïncident de manière similaire à la façon dont nous jouons en temps réel ludique. Ci-dessous
Au départ, l'individu doit sélectionner des joueurs.
Annexe – IV
5 Qualité du prototype/modèle
6 Préparation de rapport
(B) Présentation individuelle/Viva (4 points)
7 Présentation
8 Viva
(A) (B)
Évaluation des processus et des produits
Total Marks
Présentation/Viva individuelle
(10 points)
(6 points) (4 marques)
Commentaires/Suggestions sur le travail d'équipe / le leadership / la communication interpersonnelle (le cas échéant)
…………………………………..……………………………………………………………………………
Name & Designation of Course Teacher:Prof.G.K.Gaikwad, Lecturer
Dated Signature:
Annexe – IV
5 Qualité du prototype/modèle
6 Préparation de rapport
(B) Présentation/Viva individuelle (4 points)
7 Présentation
8 Viva
(A) (B)
Évaluation du processus et du produit
Total Marks
Présentation individuelle/Viva
(10 points)
(6 points) (4 points)
…………………………………..……………………………………………………………………………
Name & Designation of Course Teacher:Prof.G.K.Gaikwad, Lecturer
Signature datée :
Annexe – IV
Fiche d'évaluation de micro projet
Name of Student:Shreyash Kiran Dahale Numéro d'inscription : 1711670155
Name of Programme:Computer Engineering Semester:V
Course Title: Programming with Python Course Code:22616
Title of Micro Project:The Ludo Game
Résultats d'apprentissage atteints :
1. Affichez un message à l'écran en utilisant un script Python dans l'IDE.
2. Développez un programme Python pour démontrer l'utilisation des opérateurs
3. Effectuer des opérations sur des structures de données en Python.
4. Développez des fonctions pour le problème donné.
5. Concevoir des classes pour le problème donné.
6. Gérer les exceptions.
5 Qualité du Prototype/Modèle
6 Préparation du rapport
(B) Présentation individuelle/Viva (4 points)
7 Présentation
8 Viva
(A) (B)
Évaluation des processus et des produits
Total Marks
Présentation individuelle/Viva
(10 points)
(6 Points) (4 points)
Commentaires/Suggestions sur le travail d'équipe/le leadership/la communication interpersonnelle (le cas échéant)
…………………………………..……………………………………………………………………………
Date de signature :
Annexe – IV
Feuille d'évaluation de micro-projet
Name of Student:Ojas Yogesh Joshi Numéro d'inscription : 1811670507
Name of Programme:Computer Engineering Semester:V
Course Title: Programming with Python Course Code:22616
Title of Micro Project:The Ludo Game
Résultats d'apprentissage atteints :
1. Afficher un message à l'écran en utilisant un script Python dans un IDE.
2. Develop python program to demonstrate use of Operators
3. Effectuer des opérations sur des structures de données en Python.
4. Développez des fonctions pour le problème donné.
5. Concevez des classes pour le problème donné.
6. Gérer les exceptions.
Pauvre Moyenne Bon Excellent
Sr Sous
Characteristic to be Assessed Notes Notes Marques Notes
Non Total
(1-3) (4-5) (6-8) (9-10)
(A) Évaluation du processus et du produit (6 points)
1 R
e
l
e
v
un
n
c
e
t
o
t
h
e
C
o
u
r
s
e
2 L
je
t
e
r
a
t
u
r
e
R
e
v
je
e
w
/
Je
n
f
o
r
m
a
t
je
o
n
C
o
l
l
e
c
t
je
o
n
3 C
o
m
p
l
e
t
je
o
n
o
f
t
h
e
T
a
r
g
e
t
a
s
p
e
r
P
r
o
j
e
c
t
P
r
o
p
o
s
a
l
4 A
n
un
l
y
s
je
s
o
f
D
a
t
un
&
R
e
p
r
e
s
e
n
t
a
t
je
o
n
5 Q
u
a
l
je
t
y
o
f
P
r
o
t
o
t
y
p
e
/
M
o
d
e
l
6 R
e
p
o
r
t
P
r
e
p
a
r
a
t
je
o
n
(B) Présentation/Viva individuelle (4 points)
7 Présentation
8 Vive
(A) (B)
Évaluation des processus et des produits Total Marks
Présentation individuelle/Viva
(10 points)
(6 Marques) (4 points)
Commentaires/Suggestions sur le travail d'équipe/le leadership/la communication interpersonnelle (le cas échéant)
…………………………………..……………………………………………………………………………
Signature datée :
État du Maharashtra
Conseil de l'éducation technique
Certificat
Ceci est pour certifier que M. Jainul Jignesh Dave avec le numéro de rouleau - 01 a réussi à compléter le micro-projet.
dans le cours Programmation avec Python (22616) pour l'année académique 2021-22 tel que prescrit dans le
Manuel d'évaluation pendant son mandat de complétion du cinquième semestre du programme de diplôme en informatique
Ingénierie de l'institut, Sandip Polytechnic avec le code d'institut 1167.
État du Maharashtra
Conseil de l'éducation technique
Certificat
Ceci est pour certifier que M. Shreyash Kiran Dahale avec le numéro de roll - 08 a réussi à compléter Micro-
projet dans le cours Programmation avec Python (22616) pour l'année académique 2021-22 tel que prescrit dans le
'Manuel d'évaluation' durant son mandat de complétion du cinquième semestre du programme de diplôme en informatique
État du Maharashtra
Conseil de l'éducation technique
Certificat
Ceci est pour certifier que M. Ojas Yogesh Joshi avec le numéro de rouleau 57 a réussi à compléter le micro-projet dans
courseProgramming with Python(22616) for the academic year 2021-22 as prescribed in the 'Assessment
Manuel pendant son mandat de completion du cinquième semestre du programme de diplôme en ingénierie informatique.
de l'institut, Sandip Polytechnic avec le code d'institut 1167.