Ecco il codice del giochino che ho fatto sul numero casuale se nn capisci qualcosa chiedi pure..
title gioco
; gioco indovina un numero da 0 a 9 casuale
.model small
.stack 100h
.data
benv db ":-)...Benvenuto nel programma Indovina...",13,10,"$"
benv0 db "-------------------------------------------",13,10,"$"
benv1 db " Prova a indovinare!",13,10,"$"
benv2 db" Scegli il tuo livello di difficolt…!!",13,10,"$"
benv3 db" Premi 1. per Facile",13,10,"$"
benv4 db" Premi 2. per Medio",13,10,"$"
benv5 db" Premi 3. per Difficile",13,10,"$"
benv6 db" ESC per uscire dall'applicazione",13,10,"$"
scegli db" Cosa scegli:","$"
vite db " OK HAI TENTATIVI A DISPOSIZIONE:","$"
mess1 db "Prova.. Inserisci un carattere da tastiera!:",13,10,"$"
mess2 db ":-)...Hai Vinto...sei riuscito ad indovinare il carattere!!!:","$"
mess3 db ":-( tentativo fallito...!",13,10,"$"
mess4 db " GAME OVER try again!",13,10,"$"
mess5 db " Vuoi iniziare una nuova partita? s/n:","$"
mess6 db "Scelta nn valida!...",13,10,"$"
mess7 db "Il carattere da indovinare Š minore!...",13,10,"$"
mess8 db "Il carattere da indovinare Š maggiore!...",13,10,"$"
capo db " ",13,10,"$"
var1 db(?)
var2 db(?)
tent db(?)
i db(0)
k db(0)
s db(115)
scelta db(?)
.code
mov ax,@data
mov ds,ax
mov dx, offset benv
mov ah,09h
int 21h
mov dx, offset benv0
mov ah,09h
int 21h
jmp x
inizio1:
;generazione numero casuale
mov ah,2ch
int 21h
mov ah,0
mov al, dl
mov dl, 10
div dl
mov var1,ah
add var1,48
mov dx,offset capo
mov ah,09h
int 21h
x:
mov dx, offset benv1
mov ah,09h
int 21h
mov dx, offset benv2
mov ah,09h
int 21h
mov dx, offset benv3
mov ah,09h
int 21h
mov dx, offset benv4
mov ah,09h
int 21h
mov dx, offset benv5
mov ah,09h
int 21h
mov dx, offset benv6
mov ah,09h
int 21h
vaiascelta:
mov dx, offset scegli
mov ah,09h
int 21h
mov ah,01h
int 21h
mov scelta,al
cmp scelta,49
je facile
cmp scelta,50
je medio
cmp scelta,51
je difficile
cmp scelta,27
je exit
mov dx,offset capo
mov ah,09h
int 21h
mov dx,offset mess6
mov ah,09h
int 21h
mov dx,offset capo
mov ah,09h
int 21h
jmp vaiascelta
exit:jmp chiudi
facile: mov tent,5
jmp a
medio: mov tent,3
jmp b
difficile:mov tent,1
jmp c
a:
b:
c:
mov dx,offset vite
mov ah,09h
int 21h
mov al,tent
add al,48
mov dl,al
mov ah,02h
int 21h
ricontrolla:
mov dx,offset capo
mov ah,09h
int 21h
mov cl,tent
cmp i,cl
jae perdi
jmp qui
perdi:jmp perdi1
qui:
;visualizzazione messaggio inserimento primo carattere
mov dx, offset mess1
mov ah,09h
int 21h
;acqusizione primo carattere da tastiera
mov ah,01h
int 21h
mov var2,al; carica il carattere in memoria
;visualizzazione a capo
mov dx,offset capo
mov ah,09h
int 21h
mov bl,var1
cmp var2,bl ;ciclo
je vinci
;visualizzazione messaggio output caratteri nn uguali
mov dx,offset mess3
mov ah,09h
int 21h
cmp var2,bl
ja stampamax
mov dx,offset mess8
mov ah,09h
int 21h
jmp www
stampamax:jmp stampamax1
stampamax1:
mov dx,offset mess7
mov ah,09h
int 21h
www:
add i,1
jmp ricontrolla
vinci:
mov k,0
testaciclo:
cmp k,10
jae fineciclo
jmp xxx
fineciclo: jmp domanda
xxx:
mov dx,offset capo
mov ah,09h
int 21h
mov dx,offset mess2
mov ah,09h
int 21h
;visualizza carattere
mov dl,var1
mov ah,02h
int 21h
mov dl,7h
mov ah,02h
int 21h
add k,1
jmp testaciclo
domanda:
mov dx,offset capo
mov ah,09h
int 21h
mov dx,offset mess5
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,s
je inizio
cmp al,110
jne altrimenti
jmp escape
altrimenti: jmp altrimenti1
altrimenti1:
mov dx,offset capo
mov ah,09h
int 21h
mov dx,offset mess6
mov ah,09h
int 21h
jmp domanda
escape: jmp chiudi
inizio:
mov i,0
jmp inizio1
perdi1:
mov dx,offset mess4
mov ah,09h
int 21h
mov dx,offset mess5
mov ah,09h
int 21h
mov dx,offset capo
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,s
je vai
cmp al,110
je escii
mov dx,offset capo
mov ah,09h
int 21h
mov dx,offset mess6
mov ah,09h
int 21h
jmp domanda
escii:
jmp chiudi
vai:
mov i,0
jmp inizio1
chiudi:
mov ah,04ch
int 21h
end