begin process at 2012 05 24 03:13:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU DE CASSE-BRIQUE EN EMU 8086

JEU DE CASSE-BRIQUE EN EMU 8086


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :casse-briques assembleur, pong, casse-briques Niveau :Initié Date de création :06/09/2010 Vu / téléchargé :4 064 / 155

Auteur : abdelmalek12

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Pour le jeu que je propose, c’est un jeu de casse-briques aussi. Vous devez, à l’aide d’une raquette, dirigeable de gauche à droite et de droite à gauche que vous pourrez contrôler à l’aide des touches « W » et « X », orienter une balle qui rebondit depuis la raquette vers les briques présentées sous forme de croix (représentant ainsi des obstacles) en les faisant disparaître jusqu’à la dernière pour remporter la manche. je l'est programmer en EMU 8086 . n'hésitez pas de me laisser des commentaires ou des suggestions et merci!!

Source

  • ORG 100h
  • CALL lancement
  • CALL cadre
  • CALL briques
  • CALL raquette
  • game:
  • ; On se positionne en haut de l'ecran a gauche
  • MOV BX, 0
  • MOV CH, 1
  • MOV CL, 2
  • MOV AX, 142h ; 142h = 322d
  • MOV DX, 142h
  • ;ici rebond1, rebond2, rebond3 ,
  • ; rebond4 sont les 4 directions possibles de la balle apres une collision
  • rebond1: CALL deplacement
  • MOV BX, AX ; AX represente l'ancienne position
  • MOV [00h+BX], 0x0F20h ;Couleur de fond
  • MOV BX, DX ; DX represente la position actuelle
  • MOV AX, [00H + BX]
  • MOV [00H + BX], 0xF020h ;On utilise AX pour stocker temporairement
  • CMP AH, 0x0Bh ; couleur de l'obstacle balle
  • JNZ test_raquette_rebond1
  • ; traitement de l'obstacle
  • MOV BX, AX ;la couleur de la case pour effectuer un test ulterieurement
  • MOV AX, DX
  • CALL score
  • CMP BL, 0x2Dh ; on teste le symbole present 2D
  • JZ rebond2
  • JMP rebond4
  • test_raquette_rebond1: MOV BX, [0A0h+BX] ; vers haut gauche
  • MOV AX, DX
  • CMP BL, 58h
  • JZ rebond2
  • suite_rebond1:
  • ADD DX,0xA2h
  • INC CL
  • INC CH
  • CMP CL,26
  • JGE fin_de_jeu
  • CMP CH,79
  • JGE rebond4
  • JMP rebond1
  • rebond2: CALL deplacement
  • MOV BX, AX
  • MOV [00h+BX], 0x0F20 ;Couleur de fond DE LA balle
  • MOV BX, DX
  • MOV AX, [00H + BX]
  • MOV [00H + BX], 0xF020h
  • CMP AH, 0x0Bh ; couleur de l'obstacle ??
  • JNZ test_raquette_rebond2
  • ; traitement de l'obstacle
  • MOV BX, AX
  • MOV AX, DX
  • CALL score
  • CMP BL, 0x2Dh ;on teste le symbole present 2D= '-'
  • JZ rebond1
  • JMP rebond3
  • test_raquette_rebond2: MOV BX, [0A0h+BX] ; vers haut droite
  • MOV AX, DX
  • CMP BL, 3Dh ; 3Dh destination balle apres collision raquette
  • JZ rebond2
  • suite_rebond2:
  • SUB DX,0x9Eh
  • DEC CL
  • INC CH
  • CMP CL,2
  • JLE rebond1
  • CMP CH,79
  • JGE rebond3
  • JMP rebond2
  • rebond3: CALL deplacement
  • MOV BX, AX
  • MOV [00h+BX], 0x0F20 ;Couleur de fond
  • MOV BX, DX
  • MOV AX, [00H + BX]
  • MOV [00H + BX], 0xF020h
  • CMP AH, 0x0Bh ; couleur de l'obstacle ??
  • JNZ test_raquette_rebond3
  • ; traitement de l'obstacle
  • MOV BX, AX
  • MOV AX, DX
  • CMP BH, 0x0Ah
  • JNZ suite_rebond3
  • CALL score
  • CMP BL, 0x2Dh ; on teste le symbole present
  • JZ rebond4
  • JMP rebond2
  • test_raquette_rebond3: MOV BX, [0A0h+BX] ; vers haut droite
  • MOV AX, DX
  • CMP BL, 3Dh ; 3Dh destination balle apres collision raquette
  • JZ rebond4
  • Suite_rebond3:
  • SUB DX,0xA2h
  • DEC CL
  • DEC CH
  • CMP CL,2
  • JLE rebond4
  • CMP CH,1
  • JLE rebond2
  • JMP rebond3
  • rebond4: CALL deplacement
  • MOV BX, AX
  • MOV [00h+BX], 0x0F20 ;Couleur de fond
  • MOV BX, DX
  • MOV AX, [00H + BX]
  • MOV [00H + BX], 0xF020h
  • CMP AH, 0x0Bh ; couleur de l'obstacle ??
  • JNZ test_raquette_rebond4
  • ; traitement de l'obstacle
  • MOV BX, AX
  • MOV AX, DX
  • CMP BH, 0x0Ah
  • JNZ suite_rebond4
  • CALL score
  • CMP BL, 0x2Dh ;on teste le symbole present
  • JZ rebond3
  • JMP rebond1
  • test_raquette_rebond4: MOV BX, [0A0h+BX] ; vers haut droite
  • MOV AX, DX
  • CMP BL, 58h ; 3Dh destination balle apres collision raquette
  • JZ rebond3
  • Suite_rebond4:
  • ADD DX,0x9eh
  • INC CL
  • DEC CH
  • CMP CL,26
  • JGE fin_de_jeu
  • CMP CH,1
  • JLE rebond1
  • JMP rebond4
  • fin_de_jeu:
  • CALL vie
  • CMP ES:[2], 0 ; compare ES:[2] (nbr de vies) avec 0 si = 0 jump at procedure perdue
  • JNZ game
  • CALL perdue ; appelle procedure perdu
  • RET ; FIN DU PROGRAMME PRINCIPAL, ON REND LA MAIN AU DOS
  • ;!!!!!!!!!!!!!!!!!!!! PROCEDURE LANCEMENT !!!!!!!!!!!!!!!!!!!!!!!!!
  • lancement PROC
  • MOV AX, 0B800h ; On initialise le registre DS a B800h qui correspond au debut de la memoire video
  • MOV DS, AX
  • MOV AX, 02000h ; On initialise le registre ES a 2000h pour stocker des valeurs necessaires au fonctionnement du jeu
  • MOV ES, AX
  • MOV ES:[0], 0 ; score a 0
  • MOV ES:[2], 3 ; nombre de point de vie a 3
  • MOV ES:[4], 50 ; position raquette a l'ecran 50 / 160
  • MOV [00h], 'S'
  • MOV [02h], 'c'
  • MOV [04h], 'o'
  • MOV [06h], 'r'
  • MOV [08h], 'e'
  • MOV [0Ah], ':'
  • MOV [0Eh], '0'
  • MOV [10h], '0'
  • MOV [12h], '0'
  • MOV [14h], '0'
  • MOV [16h], '0'
  • MOV [32h], 'V'
  • MOV [34h], 'i'
  • MOV [36h], 'e'
  • MOV [38h], 's'
  • MOV [3Ch], ':'
  • MOV [3Eh], '3'
  • RET
  • lancement ENDP
  • ; !!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE CADRE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • cadre PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • ; On trace la partie gauche et droite du cadre
  • MOV AX, 02h
  • MOV BX, 00h
  • MOV CX, 23 ; On a 23 lignes
  • MOV DX, 0A0h
  • cadre2:
  • MOV [0140h + BX], 0x0F49h
  • MOV [01DEh + BX], 0x0F49h
  • ADD BX, 0A0h
  • LOOP cadre2 ; Si CX != 0, on reboucle
  • ; On trace le haut du cadre
  • MOV BX, 00h
  • MOV CX, 80 ; On a 80 colonnes
  • cadre1:
  • MOV [0A0h + BX], 0x0F5Fh
  • ADD BX, 2
  • LOOP cadre1 ; Si CX != 0, on reboucle
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • cadre ENDP
  • ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE BRIQUE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • briques PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • MOV DX, 0A0h
  • MOV BX, 00h
  • MOV AX, 02h
  • MOV CX, 10
  • MOV [7D0h + BX], 0x0B2Bh ; Equivaut A MOV [7D0h], '+'(creation symbole milieu)
  • boucle:
  • ADD BX, AX
  • MOV [7D0h + BX], 0x0B2Dh
  • SUB BX, AX
  • SUB BX, AX
  • MOV [7D0h + BX], 0x0B2Dh ; Equivaut à MOV [7D0h], '-' 2D = '-' (symbole brique)
  • ADD BX, AX
  • ADD BX, DX
  • MOV [7D0h + BX], 0x0B7Ch ; Equivaut à MOV [7D0h], '|' 7C = '|'(symbole brique)
  • SUB BX, DX
  • SUB BX, DX
  • MOV [7D0h + BX], 0x0B7Ch
  • ADD BX, DX
  • ADD AX, 2
  • ADD DX, 0A0h
  • LOOP boucle ; Si CX != 0, on reboucle
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • briques ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE SCORE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • score PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • INC ES:[0]
  • MOV AX, ES:[0]
  • MOV DX, 0
  • MOV BX, 10000
  • DIV BX
  • ADD AX, 48
  • ; affichage de ax
  • MOV [0Eh], AL
  • MOV AX, DX
  • MOV DX, 0
  • MOV BX, 1000
  • DIV BX
  • ADD AX, 48
  • ; affichage de ax
  • MOV [10h], AL
  • MOV AX, DX
  • MOV DX, 0
  • MOV BX, 100
  • DIV BX
  • ADD AX, 48
  • ; affichage de ax
  • MOV [12h], AL
  • MOV AX, DX
  • MOV DX, 0
  • MOV BX, 10
  • DIV BX
  • ADD AX, 48
  • ; affichage de ax
  • MOV [14h], AL
  • ADD DX, 48
  • ; affichage de ax
  • MOV [16h], DL
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • score ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE VIE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • vie PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • DEC ES:[2]
  • ; decremente le nombre de point de vie
  • MOV AX, ES:[2]
  • ADD AX, 48
  • ; affichage de ax
  • MOV [3Eh], AL ; 3CH position de l'affichage des points de vie
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • vie ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PROCEDURE PERDUE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • perdue PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • PUSH DS
  • ; Ecriture de la premiere barre (du haut)
  • MOV DH, 11
  • MOV DL, 30
  • MOV BH, 0
  • MOV AH, 2
  • int 10h
  • MOV AX, SEG msg2
  • MOV DS, AX
  • MOV DX, OFFSET msg2
  • MOV AH, 9
  • int 21h
  • ; Ecriture du texte
  • MOV DH, 12
  • MOV DL, 30
  • MOV BH, 0
  • MOV AH, 2
  • int 10h
  • MOV AX, SEG msg
  • MOV DS, AX
  • MOV DX, OFFSET msg
  • MOV AH, 9
  • int 21h
  • ; Ecriture de la seconde barre (du bas)
  • MOV DH, 13
  • MOV DL, 30
  • MOV BH, 0
  • MOV AH, 2
  • int 10h
  • MOV AX, SEG msg1
  • MOV DS, AX
  • MOV DX, OFFSET msg1
  • MOV AH, 9
  • int 21h
  • msg1 db " +-----------------+ $"
  • msg db " | Manche Perdue | $"
  • msg2 db " +-----------------+ $"
  • POP DS
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • perdue ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE RAQUETTE !!!!!!!!!!!!!!!!!!!!!!!
  • raquette PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • MOV BX, ES:[4] ; On recupere la position (la colonne) du centre de la raquette
  • ; On ajoute F00h (24eme ligne)pour se trouver sur la derniere ligne
  • MOV [0EFCh + BX], 'X' ; centre - 4
  • MOV [0EFEh + BX], 'X' ; centre - 2
  • MOV [0F00h + BX], 'X' ; centre +BX pour connaitre la position que le joueur a ajoute
  • MOV [0F02h + BX], 'X' ; centre + 2
  • MOV [0F04h + BX], 'X' ; centre + 4
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • raquette ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE EFFACE RAQUETTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • dropraquette PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • MOV BX, ES:[4] ; On recupere la position (la colonne) du centre de la raquette
  • ; On ajoute F00h pour se trouver sur la derniere ligne
  • MOV [0EFCh + BX], ' ' ; centre - 4
  • MOV [0EFEh + BX], ' ' ; centre - 2
  • MOV [0F00h + BX], ' ' ; centre
  • MOV [0F02h + BX], ' ' ; centre + 2
  • MOV [0F04h + BX], ' ' ; centre + 4
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • dropraquette ENDP
  • ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE DEPLACEMENT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • deplacement PROC
  • PUSH AX
  • PUSH BX
  • PUSH CX
  • PUSH DX
  • MOV DX, 0
  • MOV AX, 0
  • MOV AH, 6
  • MOV DL, 255
  • int 21h
  • CMP AL, 119
  • JZ vers_la_gauche
  • CMP AL, 120
  • JZ vers_la_droite
  • JMP fin
  • vers_la_gauche:
  • CMP B.ES:[4], 4
  • JLE fin
  • CALL dropraquette
  • SUB B.ES:[4], 2
  • JMP suite
  • vers_la_droite:
  • CMP B.ES:[4], 160
  • JZ fin
  • CALL dropraquette
  • ADD B.ES:[4], 2 ; ES:[4] POSITION RAQUETTE
  • JMP suite
  • suite:
  • CALL raquette
  • fin:
  • POP DX
  • POP CX
  • POP BX
  • POP AX
  • RET
  • deplacement ENDP
ORG 100h

CALL lancement
CALL cadre
CALL briques
CALL raquette



game:
; On se positionne en haut de l'ecran a gauche


MOV BX, 0
MOV CH, 1
MOV CL, 2

MOV AX, 142h        ; 142h = 322d
MOV DX, 142h


;ici rebond1, rebond2, rebond3 ,
; rebond4 sont les 4 directions possibles de la balle apres une collision



rebond1:	CALL deplacement
	MOV BX, AX			; AX represente l'ancienne position
	MOV [00h+BX], 0x0F20h    ;Couleur de fond
	
	MOV BX, DX			; DX represente la position actuelle
	MOV AX, [00H + BX]
	MOV [00H + BX], 0xF020h		;On utilise AX pour stocker temporairement 


	CMP AH, 0x0Bh              ; couleur de l'obstacle balle
	JNZ test_raquette_rebond1
	         ; traitement de l'obstacle

	MOV BX, AX				;la couleur de la case pour effectuer un test ulterieurement
	MOV AX, DX


	CALL score
	
	CMP BL, 0x2Dh			; on teste le symbole present       2D
	JZ rebond2
	JMP rebond4

test_raquette_rebond1: MOV BX, [0A0h+BX]                           ; vers haut gauche
                  MOV AX, DX
                  CMP BL, 58h
                  JZ rebond2 

suite_rebond1:

	ADD DX,0xA2h
	
	INC CL
	INC CH
	
	CMP CL,26
	JGE fin_de_jeu

	CMP CH,79
	JGE rebond4
	
	JMP rebond1
	


	
rebond2:	CALL deplacement
	MOV BX, AX
	MOV [00h+BX], 0x0F20    	;Couleur de fond DE LA balle
	
	MOV BX, DX
	MOV AX, [00H + BX]
	MOV [00H + BX], 0xF020h
	
	CMP AH, 0x0Bh              ; couleur de l'obstacle ??
	JNZ test_raquette_rebond2
	         ; traitement de l'obstacle
	         
	MOV BX, AX
	MOV AX, DX
	
	CALL score
	
	CMP BL, 0x2Dh			;on teste le symbole present 2D= '-'
	JZ rebond1
	JMP rebond3
	
test_raquette_rebond2: MOV BX, [0A0h+BX]                   ; vers haut droite
               MOV AX, DX
               CMP BL, 3Dh                       ; 3Dh destination balle apres collision raquette
               JZ rebond2 
	
suite_rebond2:
	SUB DX,0x9Eh
	
	DEC CL
	INC CH
	
	CMP CL,2
	JLE rebond1

	CMP CH,79
	JGE rebond3
	
	JMP rebond2






rebond3:	CALL deplacement
	MOV BX, AX
	MOV [00h+BX], 0x0F20    	;Couleur de fond
	
	MOV BX, DX
	MOV AX, [00H + BX]
	MOV [00H + BX], 0xF020h     
	
	CMP AH, 0x0Bh              ; couleur de l'obstacle ??
	JNZ test_raquette_rebond3
	         ; traitement de l'obstacle
	
	MOV BX, AX
	MOV AX, DX
	
	CMP BH, 0x0Ah
	JNZ suite_rebond3
	CALL score
	
	CMP BL, 0x2Dh			; on teste le symbole present
	JZ rebond4
	
	JMP rebond2 
	
	test_raquette_rebond3: MOV BX, [0A0h+BX]                   ; vers haut droite
               MOV AX, DX
               CMP BL, 3Dh                       ; 3Dh destination balle apres collision raquette
               JZ rebond4 
	
Suite_rebond3:
	SUB DX,0xA2h
	
	
	DEC CL
	DEC CH
	
	
	CMP CL,2
	JLE rebond4

	CMP CH,1
	JLE rebond2
	
	JMP rebond3
	





rebond4:	CALL deplacement
	MOV BX, AX
	MOV [00h+BX], 0x0F20    	;Couleur de fond
	
	MOV BX, DX
	MOV AX, [00H + BX]
	MOV [00H + BX], 0xF020h 
	
	CMP AH, 0x0Bh              ; couleur de l'obstacle ??
	JNZ test_raquette_rebond4
	         ; traitement de l'obstacle
	
	MOV BX, AX
	MOV AX, DX
	
	CMP BH, 0x0Ah
	JNZ suite_rebond4
	CALL score
	
	
	CMP BL, 0x2Dh			;on teste le symbole present
	JZ rebond3
	JMP rebond1         
	
	test_raquette_rebond4: MOV BX, [0A0h+BX]                   ; vers haut droite
               MOV AX, DX
               CMP BL, 58h                       ; 3Dh destination balle apres collision raquette
               JZ rebond3

	
Suite_rebond4:
	ADD DX,0x9eh
	
	INC CL
	DEC CH
	
	CMP CL,26
	JGE fin_de_jeu

	CMP CH,1
	JLE rebond1
	
	JMP rebond4
	
	
	
fin_de_jeu:

CALL vie

CMP ES:[2], 0       ; compare ES:[2] (nbr de vies) avec 0 si = 0 jump at procedure perdue 
	  
JNZ game 

CALL perdue	           ; appelle procedure perdu

RET   ; FIN DU PROGRAMME PRINCIPAL, ON REND LA MAIN AU DOS




;!!!!!!!!!!!!!!!!!!!!   PROCEDURE LANCEMENT  !!!!!!!!!!!!!!!!!!!!!!!!!



lancement PROC

MOV AX, 0B800h  ; On initialise le registre DS a B800h qui correspond au debut de la memoire video
MOV DS, AX

MOV AX, 02000h  ; On initialise le registre ES a 2000h pour stocker des valeurs necessaires au fonctionnement du jeu
MOV ES, AX 

MOV ES:[0], 0   ; score a 0
MOV ES:[2], 3   ; nombre de point de vie a 3
MOV ES:[4], 50  ; position raquette a l'ecran 50 / 160

MOV [00h], 'S'
MOV [02h], 'c'
MOV [04h], 'o'
MOV [06h], 'r'
MOV [08h], 'e'
MOV [0Ah], ':'
MOV [0Eh], '0'
MOV [10h], '0'
MOV [12h], '0'
MOV [14h], '0'
MOV [16h], '0'

MOV [32h], 'V'
MOV [34h], 'i'
MOV [36h], 'e'
MOV [38h], 's'
MOV [3Ch], ':'
MOV [3Eh], '3'




RET

lancement ENDP



; !!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE CADRE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



cadre PROC

PUSH AX
PUSH BX 
PUSH CX
PUSH DX

; On trace la partie gauche et droite du cadre

MOV AX, 02h
MOV BX, 00h
MOV CX, 23   ; On a 23 lignes
MOV DX, 0A0h

cadre2:
         MOV [0140h + BX], 0x0F49h
         MOV [01DEh + BX], 0x0F49h	
	     ADD BX, 0A0h
	
         LOOP cadre2  ; Si CX != 0, on reboucle
         
         
         

; On trace le haut du cadre

MOV BX, 00h
MOV CX, 80    ; On a 80 colonnes

cadre1: 
         MOV [0A0h + BX], 0x0F5Fh
         ADD BX, 2

         LOOP cadre1  ; Si CX != 0, on reboucle


POP DX
POP CX
POP BX
POP AX  

RET

cadre ENDP




; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  PROCEDURE BRIQUE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



briques PROC

PUSH AX
PUSH BX 
PUSH CX
PUSH DX

MOV DX, 0A0h
MOV BX, 00h
MOV AX, 02h
MOV CX, 10

MOV [7D0h + BX], 0x0B2Bh			; Equivaut A MOV [7D0h], '+'(creation symbole milieu)

boucle: 
         ADD BX, AX
         MOV [7D0h + BX], 0x0B2Dh		
         SUB BX, AX
	
         SUB BX, AX
         MOV [7D0h + BX], 0x0B2Dh		; Equivaut à MOV [7D0h], '-' 2D = '-' (symbole brique)
         ADD BX, AX
	
         ADD BX, DX
         MOV [7D0h + BX], 0x0B7Ch		; Equivaut à MOV [7D0h], '|'  7C = '|'(symbole brique)
         SUB BX, DX
	
         SUB BX, DX
         MOV [7D0h + BX], 0x0B7Ch
         ADD BX, DX
	
         ADD AX, 2
         ADD DX, 0A0h

         LOOP boucle  ; Si CX != 0, on reboucle

POP DX
POP CX
POP BX
POP AX  

RET

briques ENDP




;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE SCORE   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



score PROC

PUSH AX
PUSH BX 
PUSH CX
PUSH DX

       
INC ES:[0]
          
MOV AX, ES:[0]  

MOV DX, 0  
MOV BX, 10000

DIV BX  

ADD AX, 48 

; affichage de ax

MOV [0Eh], AL

MOV AX, DX
MOV DX, 0 
MOV BX, 1000
 
DIV BX  

ADD AX, 48 

; affichage de ax
MOV [10h], AL

MOV AX, DX
MOV DX, 0 
MOV BX, 100
 
DIV BX  

ADD AX, 48 

; affichage de ax
MOV [12h], AL 

MOV AX, DX
MOV DX, 0 
MOV BX, 10
 
DIV BX  

ADD AX, 48 

; affichage de ax
MOV [14h], AL  

ADD DX, 48

; affichage de ax
MOV [16h], DL

POP DX
POP CX
POP BX
POP AX    

RET            
       
score ENDP





;!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE VIE  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



vie PROC

PUSH AX
PUSH BX 
PUSH CX
PUSH DX
 
DEC ES:[2]
                       ; decremente le nombre de point de vie
MOV AX, ES:[2]  

ADD AX, 48

; affichage de ax
MOV [3Eh], AL                ; 3CH position de l'affichage des points de vie

POP DX
POP CX
POP BX
POP AX    

RET            

vie ENDP





;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PROCEDURE PERDUE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



perdue PROC

PUSH AX
PUSH BX 
PUSH CX
PUSH DX
PUSH DS

; Ecriture de la premiere barre (du haut)

MOV DH, 11
MOV DL, 30
MOV BH, 0
MOV AH, 2
int 10h


MOV AX, SEG msg2
MOV DS, AX
MOV DX, OFFSET msg2
MOV AH, 9
int 21h

; Ecriture du texte

MOV DH, 12
MOV DL, 30
MOV BH, 0
MOV AH, 2
int 10h


MOV AX, SEG msg
MOV DS, AX
MOV DX, OFFSET msg
MOV AH, 9
int 21h




; Ecriture de la seconde barre (du bas)
MOV DH, 13
MOV DL, 30
MOV BH, 0
MOV AH, 2
int 10h


MOV AX, SEG msg1
MOV DS, AX
MOV DX, OFFSET msg1
MOV AH, 9
int 21h
                
                
msg1 db " +-----------------+ $"
msg db " |  Manche Perdue  | $"
msg2 db " +-----------------+ $"


POP DS
POP DX 
POP CX
POP BX 
POP AX


RET

perdue ENDP





;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE RAQUETTE  !!!!!!!!!!!!!!!!!!!!!!!



raquette PROC 
    
PUSH AX    
PUSH BX
PUSH CX
PUSH DX
   
MOV BX, ES:[4] ; On recupere la position (la colonne) du centre de la raquette
               ; On ajoute F00h (24eme ligne)pour se trouver sur la derniere ligne

MOV [0EFCh + BX], 'X' ; centre - 4
MOV [0EFEh + BX], 'X' ; centre - 2
MOV [0F00h + BX], 'X' ; centre      +BX pour connaitre la position que le joueur a ajoute
MOV [0F02h + BX], 'X' ; centre + 2
MOV [0F04h + BX], 'X' ; centre + 4  

POP DX
POP CX
POP BX
POP AX

RET 
raquette ENDP






;!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE EFFACE RAQUETTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


dropraquette PROC 
    
PUSH AX    
PUSH BX
PUSH CX
PUSH DX
   
MOV BX, ES:[4] ; On recupere la position (la colonne) du centre de la raquette
               ; On ajoute F00h pour se trouver sur la derniere ligne

MOV [0EFCh + BX], ' ' ; centre - 4
MOV [0EFEh + BX], ' ' ; centre - 2
MOV [0F00h + BX], ' ' ; centre 
MOV [0F02h + BX], ' ' ; centre + 2
MOV [0F04h + BX], ' ' ; centre + 4  

POP DX
POP CX
POP BX
POP AX

RET 
dropraquette ENDP








                                            
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE DEPLACEMENT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


deplacement PROC

PUSH AX    
PUSH BX
PUSH CX
PUSH DX
 
MOV DX, 0
MOV AX, 0

MOV AH, 6
MOV DL, 255
int 21h






CMP AL, 119
JZ vers_la_gauche

CMP AL, 120
JZ vers_la_droite

JMP fin



vers_la_gauche:
CMP B.ES:[4], 4
JLE fin
CALL dropraquette 
SUB B.ES:[4], 2
JMP suite


vers_la_droite:
CMP B.ES:[4], 160
JZ fin
CALL dropraquette
ADD B.ES:[4], 2         ; ES:[4] POSITION RAQUETTE
JMP suite


suite:	
 CALL raquette


fin:
POP DX
POP CX
POP BX
POP AX

RET 
deplacement ENDP


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip TEXTURE AVEC DIRECTX9 par quoi
Source avec Zip Source avec une capture AUTOMATE CELLULAIRE EN ASSEMBLEUR ( JEU DE LA VIE ) par ratala
Source avec Zip Source avec une capture MES MODIFICATIONS SUR LE JEU DE SNAKE DE ASMGGES par ChaperonNoir
Source avec Zip LE JEU DES 24 BOÎTES DE L'HOMME MYSTÉRIEUX [MASM] par grandvizir
Source avec Zip SCREENMATE BOULINATOR par jjeeaanncchhrriisstt

 Sources en rapport avec celle ci

Source avec Zip BOOT PONG par barbichette

Commentaires et avis

Commentaire de abdelmalek12 le 10/09/2010 21:02:39

hey les gens un commentaire ou une notation serait la bienvenue et MERCI!

Commentaire de abdelmalek12 le 10/09/2010 21:27:58

Ah j'ai oublié pour lire les fichiers faut avoir l'emulateur EMU8086 (pour les gens qui s'y connaisse pas)

Commentaire de Sportposition le 14/09/2010 09:01:32

Hey c'est le TP des B1 2009-2010 de Supinfo ça !

Commentaire de HirOinEvOl le 21/09/2010 15:22:28

carrément oué, sauf que moi j'doit passé le projet au ratrappage -_-

Commentaire de Sportposition le 21/09/2010 15:56:14

Ouaiiis moi aussi je suis de Supinfo (Orléans) et actuellement en stage.
Bon courage pour les rattrapages ;)

Commentaire de HirOinEvOl le 21/09/2010 16:04:50

moi à Reims ^^ sauf que jsuis bloqué sur le projet ca fait 2 jour que je me prend la tete :)

Commentaire de Sportposition le 21/09/2010 17:07:12

Tu bloque sur quoi ?
Parce que ton projet n'est pas terminé ?
Et pour qu'il tourne plus vite je te conseille de le faire tourner sous DosBox si c'est autorisé ;)

Commentaire de HirOinEvOl le 21/09/2010 17:17:08

bah en fait va voir dans les dernieres questions posées "pb de int 21h et recup de touche entrée" mon probleme est là.
et en fait en projet de rattrapage (individuel) on doit faire une animation d'intro pour le jeu break warrior (éléments dynamiques, statiques, collisions...).
Mon projet casse brique est terminé mais on a eu 9 :\.
Je connais pas dosbox... mais pour le moment ca tourne pas trop mal le peu que j'ai fait

Commentaire de Sportposition le 21/09/2010 18:54:51

Heu je suis pas un habitué de ce site, tu peux me filer un lien stp ?

Commentaire de Sportposition le 21/09/2010 19:14:17

C'est bon, j'ai trouvé !
J'ai donné une réponse à ta question (en espérant qu'elle fonctionne ^^)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales