-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscore.asm
160 lines (129 loc) · 1.77 KB
/
score.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
; On passe ici lorsqu'on pose un tuyau
; Il s'agit de tester si l'emplacement est deja pris et de perdre des points si c'est le cas
UPDATE_SCORE:
push hl
push de
push bc
push af
ld a, (xcoord)
ld d,0 ; Do x/8
ld e,a
srl e
srl e
srl e
ld b, e
push bc
ld a, (ycoord)
ld d, 0
ld e, a
srl e
srl e
srl e
ld b, a
ld a, e
sub 1
pop bc
ld c, a
lecturematrice3:
ld a,c ;\
add a,a ; |
add a,a ; |a=c*16
add a,a ; |
add a,a ;/
sub c
sub c
sub c
sub c
sub c
sub c
add a,b ; ajouter le x
ld e,a
ld d,0
ld hl, map
add hl,de
ld a,(hl)
; Tester si la case est libre
cp 0
jp z, inc_score
jp dec_score
inc_score:
;call INCREASE_SCORE
jp fin_update_score
dec_score:
call DECREASE_SCORE
fin_update_score:
;ld hl, 0
;ld (CURROW),hl
;ld hl, 0
;ld (CURCOL),hl
;ld h, 0
;ld l, a
;call _dispHL
;call WAITKEY
;call WAITKEY
;call WAITKEY
pop af
pop bc
pop de
pop hl
ret
; Incrementer le score du joueur
INCREASE_SCORE:
push hl
push de
push af
push bc
ld hl, score
ld a, (hl)
cp 255
jp z, ne_pas_augmenter
inc a
inc a
ld (hl), a
ne_pas_augmenter:
pop bc
pop af
pop de
pop hl
ret
; decrementer le score de 2 si on pose un tuyau sur un case prise
DECREASE_SCORE:
push hl
push de
push af
push bc
ld hl, score
ld a, (hl)
cp 3
jp m, ne_pas_decrementer
dec a
ld (hl), a
ne_pas_decrementer:
pop bc
pop af
pop de
pop hl
ret
PRINT_SCORE:
push hl
push de
push af
push bc
ld hl, 0
ld (CURROW),hl
ld hl, 0
ld (CURCOL),hl
ld hl, (score)
ld h, 0
call _dispHL
pop bc
pop af
pop de
pop hl
ret
score:
.db 100
pointeur_sur_score_a_battre:
.dw 0
score_a_battre:
.db 90, 95, 100, 105