2,12 → 2,14 |
; Author: Alexei Ershov aka ealex |
; E-mail: e-al[at]yandex[dot]ru |
; Fidonet: 2:469/335.38 |
; slightly updated by leency and renamed to Lights |
; https://en.wikipedia.org/wiki/Lights_Out_(game) |
; slightly optimized by diamond |
; english translation by diamond (two strings in end of source) |
|
|
BtnSize equ 32 ; à §¬¥à ª®¯ª¨ |
BtnSpace equ 10 ; ¯à®¬¥¦ã⮪ ¬¥¦¤ã ª®¯ª ¬¨ |
BtnSize equ 36 ; à §¬¥à ª®¯ª¨ |
BtnSpace equ 0 ; ¯à®¬¥¦ã⮪ ¬¥¦¤ã ª®¯ª ¬¨ |
NofBtn equ 4 ; à §¬¥à ¯®«ï (3-15) |
Color1 equ 0xcc0000 |
Color2 equ 0x00cc00 |
14,6 → 16,7 |
|
FieldSize = (BtnSize+BtnSpace)*NofBtn + BtnSpace*3 |
center = FieldSize / 2 |
margin = 20 |
|
|
use32 ; ¢ª«îç¨âì 32-¡¨âë© à¥¦¨¬ áᥬ¡«¥à |
28,7 → 31,7 |
dd 0x0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ (¥ ¨á¯®«ì§ã¥âáï) |
dd 0x0 ; § १¥à¢¨à®¢ ® |
|
include 'macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢! |
include '../../../macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢! |
|
|
START: |
130,16 → 133,16 |
Draw_Window: |
|
mcall 12, 1 |
mcall 0, 200*65536+FieldSize,\ |
200*65536+FieldSize+20+20+20,\ |
0x14AABBCC, 0x805080D0, header |
mcall 0, 200*65536+FieldSize+margin*2,\ |
200*65536+FieldSize+28+margin*3,\ |
0x14DDD7CF, 0x805080D0, header |
|
mcall 8, BtnSpace*2*65536 + 83,\ |
(FieldSize+BtnSpace+20)*65536+ 15, 2 |
mcall 4, (BtnSpace*2+3)*65536+(BtnSize+BtnSpace)*NofBtn+BtnSpace*4+20+4,\ |
0x10DDEEFF, strNew, strNew_e - strNew |
mcall 4, (center - 25) * 65536 + 30, 0, strMovs, strMovs_e - strMovs |
mcall 47, 4*65536+1, moves, (center + 2 ) * 65536 + 30, 0 |
mcall 8, (BtnSpace*2+margin)*65536 + 83,\ |
(FieldSize+BtnSpace+margin*2+10)*65536+ 22, 2 |
mcall 4, (BtnSpace*2+3+margin)*65536+(FieldSize+BtnSpace+margin*2)+14,\ |
0x90DDEEFF, strNew |
mcall 4, (center - 25+margin) * 65536 + 30, 0x80000000, strMovs |
mcall 47, 4*65536+1, moves, (center + 2+margin ) * 65536 + 30, 0 |
|
|
|
155,7 → 158,7 |
test ah, ah ; ¥á«¨ ah = 0, ç¨ ¥¬ ®¢ë© àï¤ |
jnz @f |
add ecx, (BtnSize+BtnSpace)*65536 |
mov ebx, BtnSpace*2*65536+BtnSize |
mov ebx, (BtnSpace*2+margin)*65536+BtnSize+1 |
@@: |
mov esi, Color1 ; ¡ ©â ¯® ¤à¥áã |
cmp byte [field-NofBtn+edx], 0 ; field-NofBtn+®¬¥à_ª®¯ª¨ |
223,20 → 226,14 |
moves dd 0 |
generator dd 0 |
|
header db 'Lights',0 |
|
if lang eq ru |
header db 'CQ game',0 |
header_e: |
strMovs db '' ; '' |
strMovs_e: |
strNew db '®¢ ï ¨£à ' ; '®¢ ï ¨£à ' |
strNew_e: |
strMovs db '',0 |
strNew db '®¢ ï ¨£à ',0 |
else |
header db 'CQ game',0 |
header_e: |
strMovs db 'MOVE' |
strMovs_e: |
strNew db ' New game' |
strNew_e: |
strMovs db 'MOVE',0 |
strNew db ' New game',0 |
end if |
|
|