Skip to content
Snippets Groups Projects
Commit 4d23b7a5 authored by SAOUDI SALEM's avatar SAOUDI SALEM
Browse files

Ajout du score

parents 5b9f6266 0c77ae8d
Branches
No related merge requests found
......@@ -68,24 +68,43 @@
################################################################################
<<<<<<< HEAD
# Fonctions d'affichage et d'entr?e clavier #
################################################################################
# Ces fonctions s'occupent de l'affichage et des entr?es clavier.
=======
# Fonctions d'affichage et d'entr�e clavier #
################################################################################
# Ces fonctions s'occupent de l'affichage et des entr�es clavier.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Il n'est pas obligatoire de comprendre ce qu'elles font.
.data
<<<<<<< HEAD
# Tampon d'affichage du jeu 256*256 de mani?re lin?aire.
=======
# Tampon d'affichage du jeu 256*256 de mani�re lin�aire.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
frameBuffer: .word 0 : 1024 # Frame buffer
# Code couleur pour l'affichage
<<<<<<< HEAD
# Codage des couleurs 0xwwxxyyzz o?
# ww = 00
# 00 <= xx <= ff est la couleur rouge en hexad?cimal
# 00 <= yy <= ff est la couleur verte en hexad?cimal
# 00 <= zz <= ff est la couleur bleue en hexad?cimal
=======
# Codage des couleurs 0xwwxxyyzz o�
# ww = 00
# 00 <= xx <= ff est la couleur rouge en hexad�cimal
# 00 <= yy <= ff est la couleur verte en hexad�cimal
# 00 <= zz <= ff est la couleur bleue en hexad�cimal
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
colors: .word 0x00000000, 0x00ff0000, 0xff00ff00, 0x00396239, 0x00ff00ff, 0x00ffd700, 0x0039c6e5, 0x00bd1acf, 0x00ff8200, 0x00fdf690, 0x00132978, 0x008cfbc7, 0x006b2507, 0x00839850, 0x00cd8991, 0x00ebcdf1, 0x00c6f441, 0x00ffffff
......@@ -114,7 +133,11 @@ colors: .word 0x00000000, 0x00ff0000, 0xff00ff00, 0x00396239, 0x00ff00ff, 0x00ff
<<<<<<< HEAD
# Derni?re position connue de la queue du serpent.
=======
# Derni�re position connue de la queue du serpent.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
lastSnakePiece: .word 0, 0
......@@ -126,7 +149,11 @@ lastSnakePiece: .word 0, 0
j main
############################# printColorAtPosition #############################
<<<<<<< HEAD
# Param?tres: $a0 La valeur de la couleur
=======
# Param�tres: $a0 La valeur de la couleur
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# $a1 La position en X
# $a2 La position en Y
# Retour: Aucun
......@@ -142,9 +169,15 @@ sw $a0 frameBuffer($t0)
jr $ra
################################ resetAffichage ################################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: R?initialise tout l'affichage avec la couleur noir
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: R�initialise tout l'affichage avec la couleur noir
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
################################################################################
resetAffichage:
......@@ -163,10 +196,17 @@ endRALoop2:
jr $ra
################################## printSnake ##################################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: Change la couleur de l'affichage aux emplacement ou se
# trouve le serpent et sauvegarde la derni?re position connue de
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: Change la couleur de l'affichage aux emplacement ou se
# trouve le serpent et sauvegarde la derni�re position connue de
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# la queue du serpent.
################################################################################
......@@ -215,7 +255,11 @@ addu $sp $sp 12
jr $ra
################################ printObstacles ################################
<<<<<<< HEAD
# Param?tres: Aucun
=======
# Param�tres: Aucun
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: Aucun
# Effet de bord: Change la couleur de l'affichage aux emplacement des obstacles.
################################################################################
......@@ -247,9 +291,15 @@ addu $sp $sp 12
jr $ra
################################## printCandy ##################################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: Change la couleur de l'affichage ? l'emplacement du bonbon.
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: Change la couleur de l'affichage � l'emplacement du bonbon.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
################################################################################
printCandy:
......@@ -279,9 +329,15 @@ addu $sp $sp 4
jr $ra
################################## printGame ###################################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: Effectue l'affichage de la totalit? des ?l?ments du jeu.
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: Effectue l'affichage de la totalit� des �l�ments du jeu.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
################################################################################
printGame:
......@@ -298,7 +354,11 @@ addu $sp $sp 4
jr $ra
############################## getRandomExcluding ##############################
<<<<<<< HEAD
# Param?tres: $a0 Un entier x | 0 <= x < tailleGrille
=======
# Param�tres: $a0 Un entier x | 0 <= x < tailleGrille
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: $v0 Un entier y | 0 <= y < tailleGrille, y != x
################################################################################
......@@ -312,9 +372,15 @@ move $v0 $a0
jr $ra
########################### newRandomObjectPosition ############################
<<<<<<< HEAD
# Description: Renvoie une position al?atoire sur un emplacement non utilis?
# qui ne se trouve pas devant le serpent.
# Param?tres: Aucun
=======
# Description: Renvoie une position al�atoire sur un emplacement non utilis�
# qui ne se trouve pas devant le serpent.
# Param�tres: Aucun
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: $v0 Position X du nouvel objet
# $v1 Position Y du nouvel objet
################################################################################
......@@ -387,7 +453,11 @@ addu $sp $sp 4
j newRandomObjectPosition
################################# getInputVal ##################################
<<<<<<< HEAD
# Param?tres: Aucun
=======
# Param�tres: Aucun
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: $v0 La valeur 0 (haut), 1 (droite), 2 (bas), 3 (gauche), 4 erreur
################################################################################
......@@ -424,7 +494,11 @@ GIend:
jr $ra
################################ sleepMillisec #################################
<<<<<<< HEAD
# Param?tres: $a0 Le temps en milli-secondes qu'il faut passer dans cette
=======
# Param�tres: $a0 Le temps en milli-secondes qu'il faut passer dans cette
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# fonction (approximatif)
# Retour: Aucun
################################################################################
......@@ -446,7 +520,11 @@ jr $ra
##################################### main #####################################
# Description: Boucle principal du jeu
<<<<<<< HEAD
# Param?tres: Aucun
=======
# Param�tres: Aucun
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: Aucun
################################################################################
......@@ -483,12 +561,17 @@ syscall
# Partie Projet #
################################################################################
<<<<<<< HEAD
# ? vous de jouer !
=======
# � vous de jouer !
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
.data
tailleGrille: .word 16 # Nombre de case du jeu dans une dimension.
<<<<<<< HEAD
# La t?te du serpent se trouve ? (snakePosX[0], snakePosY[0]) et la queue ?
# (snakePosX[tailleSnake - 1], snakePosY[tailleSnake - 1])
tailleSnake: .word 1 # Taille actuelle du serpent.
......@@ -501,6 +584,20 @@ snakeDir: .word 1 # Direction du serpent: 0 (haut), 1 (droite)
numObstacles: .word 0 # Nombre actuel d'obstacle pr?sent dans le jeu.
obstaclesPosX: .word 0 : 1024 # Coordonn?es X des obstacles
obstaclesPosY: .word 0 : 1024 # Coordonn?es Y des obstacles
=======
# La t�te du serpent se trouve � (snakePosX[0], snakePosY[0]) et la queue �
# (snakePosX[tailleSnake - 1], snakePosY[tailleSnake - 1])
tailleSnake: .word 1 # Taille actuelle du serpent.
snakePosX: .word 0 : 1024 # Coordonn�es X du serpent ordonn� de la t�te � la queue.
snakePosY: .word 0 : 1024 # Coordonn�es Y du serpent ordonn� de la t.
# Les directions sont repr�sent�s sous forme d'entier allant de 0 � 3:
snakeDir: .word 1 # Direction du serpent: 0 (haut), 1 (droite)
# 2 (bas), 3 (gauche)
numObstacles: .word 0 # Nombre actuel d'obstacle pr�sent dans le jeu.
obstaclesPosX: .word 0 : 1024 # Coordonn�es X des obstacles
obstaclesPosY: .word 0 : 1024 # Coordonn�es Y des obstacles
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
candy: .word 0, 0 # Position du bonbon (X,Y)
scoreJeu: .word 0 # Score obtenu par le joueur
Message: .asciiz "Votre score est : \n"
......@@ -562,6 +659,7 @@ drawNineRPosY: .word 8, 9, 10, 8, 10, 8, 9, 10, 10, 8, 9, 10
.text
################################# majDirection #################################
<<<<<<< HEAD
# Param?tres: $a0 La nouvelle position demand?e par l'utilisateur. La valeur
# ?tant le retour de la fonction getInputVal.
# Retour: Aucun
......@@ -570,16 +668,33 @@ drawNineRPosY: .word 8, 9, 10, 8, 10, 8, 9, 10, 10, 8, 9, 10
# est demand?e, i.e. le serpent ne peut pas faire de demi-tour
# en un unique tour de jeu. Cela s'apparente ? du cannibalisme
# et ? ?t? proscrit par la loi dans les soci?t?s reptiliennes.
=======
# Param�tres: $a0 La nouvelle position demand�e par l'utilisateur. La valeur
# �tant le retour de la fonction getInputVal.
# Retour: Aucun
# Effet de bord: La direction du serpent � �t� mise � jour.
# Post-condition: La valeur du serpent reste intacte si une commande ill�gale
# est demand�e, i.e. le serpent ne peut pas faire de demi-tour
# en un unique tour de jeu. Cela s'apparente � du cannibalisme
# et � �t� proscrit par la loi dans les soci�t�s reptiliennes.
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
################################################################################
majDirection:
#***-------------------------------------------------------------------------------------------------------------***
<<<<<<< HEAD
lw $s5 snakePosX #pour ne pas ecraser les anciennes cordonn?es de la tete !
lw $s6 snakePosY
#***-------------------------------------------------------------------------------------------------------------***
#recuperer le numero associ? a l'ancienne direction
=======
lw $s5 snakePosX #pour ne pas ecraser les anciennes cordonn�es de la tete !
lw $s6 snakePosY
#***-------------------------------------------------------------------------------------------------------------***
#recuperer le numero associ� a l'ancienne direction
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
lw $t4 snakeDir
case: #traiter les differents cas
beq $a0 0 haut #se diriger vers le haut
......@@ -627,12 +742,21 @@ jr $ra
#***-------------------------------------------------------------------------------------------------------------***
############################### updateGameStatus ###############################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: L'?tat du jeu est mis ? jour d'un pas de temps. Il faut donc :
# - Faire bouger le serpent
# - Tester si le serpent ? manger le bonbon
# - Si oui d?placer le bonbon et ajouter un nouvel obstacle
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: L'�tat du jeu est mis � jour d'un pas de temps. Il faut donc :
# - Faire bouger le serpent
# - Tester si le serpent � manger le bonbon
# - Si oui d�placer le bonbon et ajouter un nouvel obstacle
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
################################################################################
updateGameStatus:
......@@ -645,12 +769,20 @@ lw $t0 candy
#position de la tete
lw $t1 snakePosX($0)
lw $t2 snakePosY($0)
<<<<<<< HEAD
#comparer au cordonn?es de bonbon
=======
#comparer au cordonn�es de bonbon
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
bne $t0 $t1 finu #jump ves finu si on mange pas le bonbon
#position y de candy
lw $t0 candy + 4
bne $t0 $t2 finu #jump vers finu si on mange pas le bonbon
<<<<<<< HEAD
#sinon on cree un nouveau bonbon dont les cordonn?es sont aleatoires
=======
#sinon on crie un nouveau bonbon dont les cordonn�es sont aleatoires
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
#***-------------------------------------------------------------------------------------------------------------***
jal newRandomObjectPosition
sw $v0 candy
......@@ -662,7 +794,11 @@ sw $t0 tailleSnake
lw $t0 scoreJeu
add $t0 $t0 1
sw $t0 scoreJeu
<<<<<<< HEAD
#Generer un nouvel obstacle apres qu'on ait mang? le bonbon, on aime vous compliquer la vie meme en jeux !
=======
#Generer un nouveau obstacle apres qu'on a mang� le bonbon, on aime vous compliquer la vie meme en jeux !
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
jal newRandomObjectPosition
lw $t3 numObstacles
add $t3 $t3 1
......@@ -699,7 +835,11 @@ lw $ra ($sp)
jr $ra
#***-------------------------------------------------------------------------------------------------------------***
############################### conditionFinJeu ################################
<<<<<<< HEAD
# Param?tres: Aucun
=======
# Param�tres: Aucun
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Retour: $v0 La valeur 0 si le jeu doit continuer ou toute autre valeur sinon.
################################################################################
......@@ -754,10 +894,17 @@ finf:
jr $ra
#***-------------------------------------------------------------------------------------------------------------***
############################### affichageFinJeu ################################
<<<<<<< HEAD
# Param?tres: Aucun
# Retour: Aucun
# Effet de bord: Affiche le score du joueur dans le terminal suivi d'un petit
# mot gentil (Exemple : ?Quelle pitoyable prestation !?).
=======
# Param�tres: Aucun
# Retour: Aucun
# Effet de bord: Affiche le score du joueur dans le terminal suivi d'un petit
# mot gentil (Exemple : �Quelle pitoyable prestation !�).
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
# Bonus: Afficher le score en surimpression du jeu.
################################################################################
......@@ -780,6 +927,7 @@ syscall
#***-------------------------------------------------------------------------------------------------------------***
<<<<<<< HEAD
# Affichage de serpent
#***-------------------------------------------------------------------------------------------------------------***
lw $a0 colors + green # En vert
......@@ -799,10 +947,32 @@ li $s0 0
li $t1 8
loopEyes:
bge $s0 $t1 endLoopEyes
=======
#affichage de serpent
#***-------------------------------------------------------------------------------------------------------------***
lw $a0 colors + green
li $s0 0
li $t1 140
loopsnake:
bge $s0 $t1 endloopsnake
lw $a1 drawSnakePosX($s0)
lw $a2 drawSnakePosY($s0)
jal printColorAtPosition
addu $s0 $s0 4
j loopsnake
endloopsnake:
#***-------------------------------------------------------------------------------------------------------------***
lw $a0 colors + lightYellow
li $s0 0
li $t1 8
loopeyes:
bge $s0 $t1 endloopeyes
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
lw $a1 drawSnakeEyesPosX($s0)
lw $a2 drawSnakeEyesPosY($s0)
jal printColorAtPosition
addu $s0 $s0 4
<<<<<<< HEAD
j loopEyes
endLoopEyes:
#***-------------------------------------------------------------------------------------------------------------***
......@@ -811,12 +981,27 @@ li $s0 0
li $t1 28
loopRed:
bge $s0 $t1 endLoopRed
=======
j loopeyes
endloopeyes:
#***-------------------------------------------------------------------------------------------------------------***
lw $a0 colors + red
li $s0 0
li $t1 28
loopred:
bge $s0 $t1 endloopred
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
lw $a1 drawXPosX($s0)
lw $a2 drawYPosY($s0)
jal printColorAtPosition
addu $s0 $s0 4
<<<<<<< HEAD
j loopRed
endLoopRed:
=======
j loopred
endloopred:
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
#***-------------------------------------------------------------------------------------------------------------***
......@@ -879,6 +1064,7 @@ beq $s1 $t0 drawNineLeft
#***-------------------------------------------------------------------------------------------------------------***
drawZeroRight:
li $s2 0 #index qui commence de zero
<<<<<<< HEAD
li $s3 48 #index s'arrete une fois qu'on a parcouru tout le tableau (4*12)
lw $a0 colors + red #on met le pixel en rouge
#***-------------------------------------------------------------------------------------------------------------***
......@@ -888,6 +1074,17 @@ lw $a2 drawZeroRPosY($s2) # Les coorodonn
jal printColorAtPosition
addu $s2 $s2 4
j loopDrawZeroR
=======
li $s3 48 #index s'arrete une fois on parcours tout le tableau (4*12)
lw $a0 colors + red #on met le pixel en rouge
#***-------------------------------------------------------------------------------------------------------------***
loopdraw0R: bge $s2 $s3 left #apres avoir affiché le chiffre de droite, on passe au chiffre de gauche
lw $a1 drawZeroLRPosX($s2)
lw $a2 drawZeroRPosY($s2)
jal printColorAtPosition
addu $s2 $s2 4
j loopdraw0R
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
#***-------------------------------------------------------------------------------------------------------------***
drawOneRight:
li $s2 0
......@@ -986,6 +1183,7 @@ addu $s2 $s2 4
j loopDrawEightR
drawNineRight:
<<<<<<< HEAD
li $s2 0
li $s3 48
lw $a0 colors + red
......@@ -997,6 +1195,8 @@ jal printColorAtPosition
addu $s2 $s2 4
j loopDrawNineR
=======
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
#***-------------------------------------------------------------------------------------------------------------***
#***-------------------------------------------------------------------------------------------------------------***
#***-------------------------------------------------------------------------------------------------------------***
......@@ -1005,12 +1205,20 @@ li $s2 0
li $s3 48
lw $a0 colors + red
#***-------------------------------------------------------------------------------------------------------------***
<<<<<<< HEAD
loopDrawZeroL: bge $s2 $s3 finG #on en a fini avec l'hisoire des chiffres !
=======
loopdraw0L: bge $s2 $s3 finG #on a fini avec l'hisoire de chiffres !
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
lw $a1 drawZeroLRPosX($s2)
lw $a2 drawZeroLPosY($s2)
jal printColorAtPosition
addu $s2 $s2 4
<<<<<<< HEAD
j loopDrawZeroL
=======
j loopdraw0L
>>>>>>> 0c77ae8d19517d98e5787a87a0807f05318dffef
#***-------------------------------------------------------------------------------------------------------------***
drawOneLeft:
li $s2 0
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment