Projet Casse-briques [Résolu]

psgkiki 43 Messages postés mercredi 9 juin 2004Date d'inscription 17 août 2010 Dernière intervention - 29 mars 2007 à 22:49 - Dernière réponse : gnoirzox 3 Messages postés lundi 17 mai 2010Date d'inscription 26 mai 2010 Dernière intervention
- 26 mai 2010 à 22:52
Bonjour à tous,

Je suis nouveau sur le site. Je me suis inscrit car je viens de recevoir mon projet en assembleur à faire.

J'ai commencé l'assembleur depuis 2 mois et notre prof et tout jeune et donc explique pas très bien. On a eu qu'un seul cours d'assembleur traitant du graphisme (affichage d'une palette de couleurs) et là il nous demande de faire un casse-brique (Arkanoid). Tout le monde connaît le jeu.

Voila mon probleme, je n'ai aucune idée pour commencer ce projet. Je ne vois pas comment diriger avec la souris la barre, comment faire rebondir la balle, comment casser les briques...

J'ai absolument besoin d'aide svp.

Si vous avez un cours bien expliqué sur le graphisme en assembleur 8086, je suis prenant car je n'en ai pas trouvé ou si quelqu'un l'a deja fait et peut m'aider.

Merci beaucoup

Julien
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 3 avril 2007 à 14:43
3
Merci
salut,

ton OS n'est pas Windows mais DOS.
ils n'ont pas internet tes profs pour encore apprendre le 16 bits aux élèves ou c'est qu'ils ont peut etre des bibles du PC à refourguer ? ;-)

@++

Merci cs_patatalo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_patatalo
Meilleure réponse
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 9 avril 2007 à 06:02
3
Merci
salut,

tu as de la chance, quelqu'un vient de poster un code qui pourrait t'interesser.
http://www.asmfr.com/infomsg_BOOT-PONG_917733.aspx

@++

Merci cs_patatalo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de cs_patatalo
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 31 mars 2007 à 07:33
0
Merci
salut,

la premiere question a se poser c'est sous quel systeme d'exploitation tu va le creer.
ensuite, tu te documente sur les api fournies par ce systeme d'exploitation.

pour faire rebondir ta balle, tu dois connaitre sa direction et la projeter a l'angle opposé de la perpendiculaire a son point de contact.

      \    |    /
ping  \  |  / pong
_____\|/______

@++
Commenter la réponse de cs_patatalo
psgkiki 43 Messages postés mercredi 9 juin 2004Date d'inscription 17 août 2010 Dernière intervention - 31 mars 2007 à 11:28
0
Merci
Bonjour,

Je développe sur Windows grâce à MASM ( ce que l'on utilise en cours).

Je ne vois vraiment pas comment coder les rebonds de la balle. Faire le rectangle c'est bon je sais; deplacer la barre à l'aide de la souris cela devrait aller mais les rebonds de la balle et quand elle touche une brique, la supprimer, ça je ne sais pas.

Personne ne l'a deja fait ou a quelques petits bouts de codes concernant un sujet qui ressemble aux casse-briques ?

Merci
Commenter la réponse de psgkiki
psgkiki 43 Messages postés mercredi 9 juin 2004Date d'inscription 17 août 2010 Dernière intervention - 2 avril 2007 à 16:31
0
Merci
Bonjour


Voila, on a deja reussi à afficher le rectangle plus la "raquette".
Mais maintenant, j'aimerais savoir comment gérer la raquette avec la
souris.


Voici mon programme qui affiche le rectangle et la "raquette" :


Data segment


data ends


Code segment

Assume CS : Code , DS : data


Deb :


MOV AX, data

MOV DS, AX


MOV AH, 0 ;mode VGA

MOV AL, 13h

INT 10h


MOV AX, 0A000h ;Segment écran

MOV ES, AX


MOV AX, 30

MOV BX, 50

MOV CX, 100

mov dx,0

call droite


MOV AX, 30

MOV BX, 50

MOV cX, 120

mov dx,1

call droite


;MOV AX, 30

;MOV BX, 170

;MOV cX, 101

;mov dx,0

;call droite


MOV AX, 130

MOV BX, 50

MOV cX, 120

mov dx,1

call droite


mov AX, 85

mov BX, 165

mov CX, 20

mov dx, 0

call droite


MOV AH,8

INT 21h


MOV AH, 0

MOV AL, 3

INT 10h


MOV AH, 4Ch

INT 21h


droite proc


mov si,bx

mov di,ax

mov ax,320

push dx

mul bx

add di,ax

pop dx

cmp dx,0

je boucle2

boucle:

inc si

mov es:byte ptr[di],95

add di , 320

cmp si,200

jge fin

loop boucle


jmp fin

boucle2:

inc si

mov es:byte ptr[di],95

inc di

cmp si , 320

jge fin

loop boucle2


fin:

ret

droite endp


efface_ecran PROC


MOV DI, 0

MOV CX,320

bigboucle2:

PUSH CX

MOV CX,200

boucle3:

MOV AL, 0

MOV ES:[DI], AL

INC DI

LOOP boucle3

POP CX

LOOP bigboucle2

RET

efface_ecran ENDP


Code ends

END deb


Merci pour votre aide
Commenter la réponse de psgkiki
Guilou34 142 Messages postés mercredi 5 avril 2006Date d'inscription 29 janvier 2016 Dernière intervention - 2 avril 2007 à 23:02
0
Merci
Salut<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>





Le  tracé du billard  et de la palette est assez maladroit et le manque de commentaire manifeste.






 
 







Il te  faut d’abord écrire une  procédure qui trace une ligne horizontale  partant d’un point x ,y et d’une longueur L. Cette procédure sera utilisée non seulement pour le bord supérieur et la palette mais aussi pour toutes les briques.





Note que pour tracer une ligne horizontale, si DI contient l’origine, CX la taille  et AL la couleur, il suffit d’écrire :







Boucle : Stosb





<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??>
<st1:place>
Loop
</st1:place>
boucle     






 





Parce que : Stosb= Mov  ES: byte ptr  [DI],AL  suivi de inc DI.



 




Pour rester fidèle au modèle original, il faut utiliser les flèches horizontales du clavier et non pas la souris. Pour cela l’int 16h avec ah=1 est l’idéal


Dans le segment Data il te faudra loger les constantes : taille de la raquette, hauteur et largeur des briques, hauteur et largeur de la balle ( = pavé) et comme variable l’origine de la  raquette.


Quand tu auras réalisé tout ça, il ne restera plus qu’à programmer le mouvement de la balle.


Une piste : la balle progresse par  pas de  dx et dy. Quand elle rencontre un bord vertical on change le signe de dx et quand elle rencontre une ligne horizontale c’est dy qui doit changer de signe. Elle ne pourra tracer que des parallélogrammes, il faut donc modifier dx et dy en fonction de l’endroit où elle touche la raquette       


Bonne chance et n'oublie pas de prévoir des boucles de délais: on est loin d'un  8080.
Commenter la réponse de Guilou34
psgkiki 43 Messages postés mercredi 9 juin 2004Date d'inscription 17 août 2010 Dernière intervention - 3 avril 2007 à 16:40
0
Merci
Ah désolé pour l'erreur !!!

En fait, c'est un prof qui débute donc ses cours ne sont pas clairs. Donc je ne vois pas trop comment faire le projet enfin toute la classe est dans mon cas. En fait, on a appris vaguement les boucles (suites de fibonacci) affichage de phrases ... mais en ce qui concerne le graphique on n'a rien fait à part l'affichage d'une palette de couleurs.

Donc, la je suis entrain de me prendre la tête avec les conseils de [auteurdetail.aspx?ID=740129 Guilou34]le résultat ne suit pas. J'ai quand meme reussi a faire le cadre avec la raquette mais maintenant pour diriger la raquette avec la souris et gérer les rebonds de la balle, c'est mission impossible pour un débutant comme moi.

Je compte vraiment sur votre aide.

Merci beaucoup
Commenter la réponse de psgkiki
psgkiki 43 Messages postés mercredi 9 juin 2004Date d'inscription 17 août 2010 Dernière intervention - 13 avril 2007 à 11:55
0
Merci
Le lien ne marche plus. Est-ce que quelqu'un l'a pris le code, ou le pseudo du membre du forum qui l'a posté, cela m'interesserait car là je galère de trop.

Merci beaucoup
Commenter la réponse de psgkiki
Guilou34 142 Messages postés mercredi 5 avril 2006Date d'inscription 29 janvier 2016 Dernière intervention - 13 avril 2007 à 23:06
0
Merci
Le code est  sur  http://www.asmfr.com/codes/BOOT-PONG_32086.aspx, il s'assemble avec Tasm.
et fonctionne très bien
Patatalo a raison: je ne vois pas l'intérêt d'un tel projet, d'autant plus qu'étant en mode graphique, il est difficile de le tracer avec debug.
Il te reste  à comprendre boot-pong   et à l'adapter à ton travail
Bonne chance
Commenter la réponse de Guilou34
Rotsycs 15 Messages postés vendredi 19 septembre 2008Date d'inscription 10 janvier 2012 Dernière intervention - 13 janv. 2010 à 06:41
0
Merci
slt! je veux savoir comment faire un petit rond sous nasm et comment l'animer de haut en bas.
et pour le jeu casse brique, comment déplacer la raquette horizontalement.
merci de répondre.
Commenter la réponse de Rotsycs
SloMotoR 1 Messages postés jeudi 4 mars 2004Date d'inscription 17 mai 2010 Dernière intervention - 17 mai 2010 à 12:26
0
Merci
Slo|M|otoR

Bonjour,

Je débute en assembleur et j'ai déjà un projet à réaliser ! Il s'agit d'un casse brique ! J'ai lu des tutoriels mais cela ne m'a pas beaucoup aidé , auriez-vous des bons tutoriels à me proposer !

Merci d'avance.
Commenter la réponse de SloMotoR
gnoirzox 3 Messages postés lundi 17 mai 2010Date d'inscription 26 mai 2010 Dernière intervention - 17 mai 2010 à 20:40
0
Merci
Bonjour à tous. J'ai également ce même projet à faire. Cependant je suis bloqué dès le début concernant l'affichage d'une ligne droite oblique partant de l'origine x, y (0; 0) et devant descendre, la ligne droite doit être faite d'espaces colorés. Voici le peu de production que j'ai fait:
name 'jalon1'
include 'emu8086.inc'
org 100h

cursor_position:
mov dl, 1       ;position X du curseur
mov dh, 1       ;position Y du curseur
mov bh, 0       ;la page active ou se trouve
                ;la position (X;Y) du curseur
                
cursor_character:
mov al, ' '     ;caractere a afficher (' ')
mov bh, 0       ;la page active ou afficher
mov bl, 0001b   ;couleur du caractere (blanc)
mov cx, 25      ;nombre de fois a afficher le caractere 

deplacement PROC
    inc dl      ;incrementation position X
    inc dh      ;incrementation position Y
    
    mov ah, 6   ;affichage du caractere sur 
    int 21h     ;la position du curseur
    
    cmp dh, 25  ;comparaison dh et valeur immediate 25
    jne deplacement   
endp
ret


Pouvez vous m'aider s'il vous plait ?

Cordialement,
Commenter la réponse de gnoirzox
gnoirzox 3 Messages postés lundi 17 mai 2010Date d'inscription 26 mai 2010 Dernière intervention - 17 mai 2010 à 20:51
0
Merci
@ SloMotoR

Pour ma part, voici les différents tutos qui m'ont servi:
cours asm devloppez.com
cours asm loria
cours asm librecours
cours asm esi


J'espère t'avoir aidé.
Commenter la réponse de gnoirzox
gnoirzox 3 Messages postés lundi 17 mai 2010Date d'inscription 26 mai 2010 Dernière intervention - 26 mai 2010 à 22:52
0
Merci
Bonjour à tous,

Pour le casse brique, je dois utiliser la mêmoire video directement (sans utiliser les interruptions) pour mener à bien mon projet. J'arrive à afficher un caractère, cependant je ne sais pas comment faire changer la position de ce caractère. Pouvez vous m'aider ?

Voici ma petite contribution (veuillez m'excuser pour le manque cruel de commentaire):
name "test video"
org 100h
    
    mov cx, 1
video_memory:
    mov ax, 0B800h
    mov es, ax 
    xor di, di
    mov ah, 1
    mov al, 178
    mov bx, 0
    mov es:[di], al
    mov es:[di], ah
    stosw
    
    
    
    inc cl
    inc ch
    
    cmp cl, 23
    jne video_memory 
    
    ret
Commenter la réponse de gnoirzox

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.