Random

Eagle LIONHEART -  
Eagle LIONHEART Messages postés 4 Statut Membre -
Salut!!
Dans le cadre de la création d'un jeu de hasard, il me faudrait simuler le lancé d'un dé. Pour cela j'ai besoin d'une fonction random. Bien que connaissant un peu la méthode suivie pour créer un nombre aléatoire, je ne sais pas le faire dans la pratique.
A voir également:

5 réponses

Eagle LIONHEART Messages postés 4 Statut Membre
 
J'ai oublié de présiser que je programme en assembleur.
0
christel2000 Messages postés 18 Statut Membre 1
 
veuillez preciser le langage dans lequel vous evoluer.
neanmoins je m'y connait un peu en pascal.
donc si c'est le cas, faites moi signe et je pourrais vous aider
0
Bobinours Messages postés 2903 Statut Membre 504
 
Moi je sais le faire en JavaScript, en JAVA, en PHP et en PERL... (en ADA j'me rappelle pu trop).
Ca peut aider ?
:)

-= Bobinours =-
0
Eagle LIONHEART Messages postés 4 Statut Membre
 
il fallait juste lire la première "réponse", qui disait que j'évoluais en assembleur. Sinon, y'a-t-il quelqu'un de plus futé qui pourrait vraiment m'aider?
0
brandade
 
Un moyen trés facile d'utiliser la fonction random et d'en voir le résultat est d'aller dans l'aide d'excel et de saisir aléatoire, l'exemple donné est justement un dé électronique (6 faces) utilisant dans le code la fameuse fonction random. En plus nombreux sont ceux qui ont ce soft. Pardon pour l'assembleur, mais pour les nouveaux venus en informatique cette remarque peut être intéressante.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bobinours Messages postés 2903 Statut Membre 504
 
Jete un oeil sur ce site...
http://www.programmersheaven.com/zone5/cat20/index.htm
Tu devrais trouver ton bonheur (plein de script assembler)
cherche "random+assembler" y'a un fichier RANDOMGN.ZIP.

Voici une partie du code qui correspond, mais je ne lis pas trop l'assembler donc...

page ,132
;
;This TSR maintains a circular buffer of random numbers. After the TSR is
; loaded, it hooks to the multiplex interrupt. To obtain n random numbers,
; set al=n ; ah=aeh ; dx = 726eh ; es:di=buffer address for the numbers
; INT 2F
; Returns with al=ffh (success) or al=00 (not all n values returned)
; dx = number of values returned
; all other registers unchanged
;
;The TSR stores one random byte every time the keyboard interrupt (INT9)
; is activated. The byte is bits 9-2 of the current Timer 0 value.
;Note that n=0 can be used to determine whether or not the TSR has been
; loaded
;
;Written by Joseph R Ahlgren, BBS 703-241-7980, CompuServe 70461,2340
; This program is freeware. It may be used without restriction, provided
; the original source is acknowledged.
; 91/06/28
;
assume cs:cseg,ds:cseg,ss:cseg
cseg segment para public 'code'
FirstCode:
org 100h
TableBase label byte
LoadTSR:
jmp cs:[Last]
Last dw LastCode
org 200h
ByteLoc dw TableBase+00ffh
LastByte dw Tablebase+00ffh
Continue9 dd ?
Continue2F dd ?
INT9:
push ax
push bx
mov bx,cs:[ByteLoc]
inc bl
cmp bx,cs:[LastByte]
je exit
xor ax,ax
out 43h,al
in al,40h
mov ah,al
in al,40h
xchg al,ah
shr ax,1
shr ax,1
mov cs:[ByteLoc],bx
mov cs:[bx],al
exit:
pop bx
pop ax
jmp cs:[continue9]
INT2F:
cmp ah,0aeh
jne exit2f
cmp dx,726eh ;'rn'
jne exit2f
push bx
push cx
mov dx,di
or al,al
jz DoneOK
mov cl,al
xor ch,ch
Loop1:
cli
mov bx,cs:[LastByte]
cmp bx,cs:[ByteLoc]
je DoneShort
inc bl
mov al,cs:[bx]
mov cs:[LastByte],bx
sti
stosb
loop loop1
DoneOK:
mov al,0ffh
DoneDone:
sub di,dx
xchg dx,di
pop cx
pop bx
iret
DoneShort:
xor al,al
jmp DoneDone
exit2f:
jmp cs:[continue2f]
LastCode:
mov ax,0ae00h
mov dx,0726eh
int 2fh
cmp al,0ffh
jnz NotLoaded
or dx,dx
jz AlreadyLoaded
NotLoaded:
mov ax,3509h
int 21h ;get int 9
mov [word ptr Continue9],bx
mov [word ptr Continue9+2],es
mov ax,2509h
mov dx,offset INT9
int 21h ;link to INT9
mov ax,352Fh
int 21h ;get int 2F
mov [word ptr Continue2F],bx
mov [word ptr Continue2F+2],es
mov ax,252Fh
mov dx,offset INT2F
int 21h ;link to INT2F
mov dx,offset Success
mov ah,9
int 21h
mov ax,3100h ;TSR
mov dx,(LastCode+15-FirstCode)/16
int 21h ;TSR
AlreadyLoaded:
mov dx,offset Already
mov ah,9
int 21h
mov ax,4c01h
int 21h
Success db 0dh,0ah,0ah,'RANTSR loaded and linked to INT 2F',0ah,0dh
db ' Joseph R Ahlgren, BBS 703-241-2661',0ah,0dh,0ah,'$'
Already db 0dh,0ah,0ah,'RANTSR already loaded',0ah,0dh,0ah,'$'
cseg ends
end LoadTSR

J'espere que tu pourras en faire qqchoz

-= Bobinours =-
0
Eagle LIONHEART Messages postés 4 Statut Membre
 
je te remercie pour ton aide. Du fait que je commence l'assembleur, j'ai moi aussi du mal à lire l'assembleur, mais je vais faire en sorte que ta recherche ne serve pas a rien.
0