djsepi wrote:
okei, testasin tota sun laitoista, ekalla pelillä ei näyttäny mitään, tokalla pelillä osuin ekalla kerralla miinaan, jotein tuo sinun logiikkasi miinojen toiminnasta ei päde, eikä muuten päde tuo ohjelmakaan. winampin näytti ihan hyvin ja niin, omasta mielestä olisi kätevää että tuota ikkunaa voisi liikuttaa. noh siinä vähän ideaa pohdittavaksi.
Kyllä tuon pitäisi jokaisella koneella toimia, käytätkö varmasti suomenkielistä XP:tä? Vistan kanssa en osaa sanoa mitään.
Ekalla kerralla miinaan ei pitäisi osua, sillä miinaharava on ohjelmoitu arpomaan miinat vasta 1. klikkauksen jälkeen (ellei alkuperäistä koodia manipuloi/ohjelma muokaa sitä vahigossa/epäsuorasti). Tai sitten ohjelman toiminnon voi (kaiketi) saada bugaamaan jos miinaharava ei löydä enää uutta paikkaa miinalle (miina sijoitetaan uudelleen 1. vapaaseen ruutuun aloittamalla vasemmasta ylänurkasta).
Yhteenveto: miinaharava laskee miinojen paikat ennen kuin aloittaa pelin, mutta jos sattuu klikkaamaan ensimmäisellä kerralla miinaa, niin peli siirtää miinan ensimmäiseen mahdolliseen ruutuun, aloittaen vasemmasta ylänurkasta.
Tässä on oman ymmärryksen mukaan todiste:
Quote:
01003144 8b442408 mov eax,[esp+0x8] ss:0023:0006fdb8=00000003
01003148 53 push ebx
01003149 55 push ebp
0100314a 8bc8 mov ecx,eax
0100314c 56 push esi
0100314d 8b742410 mov esi,[esp+0x10]
01003151 c1e105 shl ecx,0x5
01003154 f684310057000180 test byte ptr [ecx+esi+0x1005700],0x80
0100315c 8d943100570001 lea edx,[ecx+esi+0x1005700]
01003163 57 push edi
01003164 746b jz winmine!StepSquare+0x8d (010031d1)
01003166 833df456000100 cmp dword ptr [winmine!cBoxVisit (010056f4)],0x0
0100316d 7555 jnz winmine!StepSquare+0x80 (010031c4)
0100316f 8b2d685a0001 mov ebp,[winmine!yBoxMac (01005a68)]
01003175 6a01 push 0x1
01003177 58 pop eax
01003178 3be8 cmp ebp,eax
0100317a 7e70 jle winmine!StepSquare+0xa8 (010031ec)
0100317c 8b1df8560001 mov ebx,[winmine!xBoxMac (010056f8)]
01003182 bf20570001 mov edi,0x1005720
01003187 6a01 push 0x1
01003189 59 pop ecx
0100318a 3bd9 cmp ebx,ecx
0100318c 7e0b jle winmine!StepSquare+0x55 (01003199)
0100318e f6043980 test byte ptr [ecx+edi],0x80
01003192 740f jz winmine!StepSquare+0x5f (010031a3)
01003194 41 inc ecx
01003195 3bcb cmp ecx,ebx
01003197 7cf5 jl winmine!StepSquare+0x4a (0100318e)
01003199 40 inc eax
0100319a 83c720 add edi,0x20
0100319d 3bc5 cmp eax,ebp
0100319f 7ce6 jl winmine!StepSquare+0x43 (01003187)
010031a1 eb49 jmp winmine!StepSquare+0xa8 (010031ec)
010031a3 ff742418 push dword ptr [esp+0x18]
010031a7 c6020f mov byte ptr [edx],0xf
010031aa c1e005 shl eax,0x5
010031ad 56 push esi
010031ae 808c080057000180 or byte ptr [eax+ecx+0x1005700],0x80
010031b6 8d840800570001 lea eax,[eax+ecx+0x1005700]
010031bd e8edfeffff call winmine!StepBox (010030af)
010031c2 eb28 jmp winmine!StepSquare+0
Tai näin ymmärsin itse pikaisen tutkimisen jälkeen. Jos jollain on jotain painavia todisteita miksei näin ole, niin kuuntelen mielelläni.
Jos ohjelma ei näytä pelistä mitään tietoa, niin se tarkoittaa yleensä sitä, että käytätte väärää versiota (miinaharava käyttää samoja universaaleja osoitteita, joten muussa ei voi oikein olla vikaa). Eli toisin sanoen ohjelma ei löydä miinaharavaa, eikä näin ollen pysty lukemaan mitään siitä. Käynnistäkää ensin miinaharava ja sitten vasta ohjelma (ei pitäisi olla omasta mielestä käytännön merkitystä). Testasin vielä ohjelmaa ja kyllä se ainakin omalla koneella toimii moitteetta.
Niin ja ikkuna on tuollainen *****mainen siksi, että se on tarkoitettu peittävän koko tuon pienen 8" näytön (tuollainen tyyli näyttää tällöin paremmalta kuin normaali ikkuna), enkä jaksanut enää väsätä kokonaan uutta ohjelmaa sen takia (lisäsin vain sulje nappulan). Ja tuskin kenelläkään on mitenkään jatkuva tarve kusettaa miinaharavaa (voin kyllä tehdä uuden ohjelman yhdelle näytölle jos tarvis on)? Ohjelmaa ei ole tarkoitettu käytettävän vain yhdellä ruudulla, mutta ajattelin jos kiinnostaa niin kokeilkaa.