Welcome, Guest. Please login or register.


Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Pgyuri

Pages: [1] 2 3 4 5 6 7 8 9
1
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.13. 16:17:51 »
Üdv,

Megérte még egy kis időt rászánni a dologra tesztelés céljából, mert végülis 12 byte lett a megoldás. Sajnos ZX Spectrum és Juggernaut kazetta tulajdonosok számára nem tudtam megoldást kidolgozni, mivel a gyári betöltő rutin a teljes memóriát tölti tele, ami így nem ad lehetőséget egyszerű POKE-olásra.

Mivel a térkép generálás hibája nem alapvető, játékot akadályozó tényező, így valószínűleg senki nem fog javított változatot készíteni, mert ha hibás zsákutcás térképes kap, egyszerűen kilép a menetből és újrakezdi a játékot, ami várhatóan már nem fog ismételten hibát véteni (bár néha előfordul).

Nem maradt más értelme a kutakodásnak, mint a működés megértése, az öröm és ha már megvan, akkor a javítás, ami inkább programozóknak szól, mint játékosoknak.

Tehát kell egy Multiface (vagy emulátor) és be kell tölteni a játékot. A menüben állva az alábbi címektől kell felülírni a  memóriát a következő értékekkel:

$64AC  $7C, $CD, $E0, $89
$89E0  $FE, $03, $D0, $E1, $E1, $C3, $E4, $63

Ezzel a hiba elhárítva, mehet a játék!

Még egy pici magyarázat a térkép generáláshoz:

A nemlétező zsákutca hiba bárhol előfordulhat, akár a térkép közepén is, bár ennek kicsi az esélye az (ál)véletlenszámok miatt.

Az üres térképre első lépésben "felszórt" elemek olyanok, amelyek kötelezőek a játékhoz, azaz például a kiindulási pont, a benzinkút, az árufelvevő helyek, a szerelőüzem, stb.

Az összekötő utak kitöltése "tehetetlen" a nem megrajzolt zsákutcákkal, neki azokat oda kell tennie. A javítás annyit csinál mindössze, hogy ha egy ilyen elemet kell letennie a térképre, azonnal újrakezdi a térkép generálását, így elhárítja a hiba lehetőségét. Előfordulhat, hogy kétszer is neki kell futnia a térkép megtervezésének, de végül mindig sikerül egy jót készítenie.

Érdekesség, hogy a mini térképhez minden útvonal elem meg van rajzolva, ezért is nem vette észre a programozó, hogy hiba is előállhat. Ebből következik, hogy ezt a részt írta-rajzolta meg először, majd aztán kezdett bíbelődni a térkép tervezővel. Tény és való, hogy szabad memória szinte nincs - jó, azért akad még majdnem 100 byte - de nem ez befolyásolta a meg nem rajzolt zsákutcákat.

További furcsasága a játéknak, hogy ha a füvön átgázolva a térképről kimegyünk, akkor az a pályaelem ismétlődik meg újra és újra. Itt felmerült a gondolat, hogy a nemlétező zsákutca helyére utat teszek, ami a semmibe vezet, de ez nem lett volna méltó megoldás. Jobb a hibátlan térkép.

Ezzel véget ért ez a feladat. Nincs értelme javítani a játékot, mert így is tökéletesen élvezhető.

Pgyuri

2
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.12. 20:38:58 »
Megvan, most már csak azt kellene megoldani, hogy ne csak Multiface-val lehessen bevinni a POKE értékeket, de mivel sajnos egyedi betöltője van Spectrumon, így ez elég bonyolult :(  Még töprengek egy kört.

3
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.12. 20:18:39 »
Már csak 11 darab POKE kell, de fránya 8 szabad byte nem jön szembe.

4
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.12. 17:25:00 »
16 darab POKE és meg van oldva a feladat ...

5
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.12. 17:03:43 »
Üdv,

Sajna ehhez szabad memória kell, amit egyelőre kerülnék használni, még ha csak pár byte-ról is van szó. Izgalmasabb megfejteni, hogy miképp lehetne javítani ilyen utólagos ellenőrzés nélkül. Az a baj, hogy a belső "énem" is azt jelzi, nem lesz más biztos megoldás, hanem az újratervezés, de egyelőre még nyitott a kérdés.

Pgyuri

6
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.July.12. 16:24:28 »
Üdv,

Köszönöm geco, szívesen elolvasgatok errefelé. Nem felejtettem el, sőt dolgozom is a problémán. A gond nagyon egyszerű, de még nem látom, hogyan tudom megoldani.

Lényeg:

Nem memória-spórolás okán hiányzik a jobbra és lefelé irányuló zsákutca, hanem ezek nem jöhetnének létre, de sajnos az algoritmus ezt jelenleg magában hordozza.

A programozó szerette volna, ha a város térképe nem egy sima mindenhonnan-mindenhova vezető úthálózat, hanem lennének benne elágazások, zsákutcák is, sőt ezekre kifejezetten szükség is van a kiindulási pont vagy az árufelvevő helyek miatt. Egyben azt is meg akarta valósítani, hogy ne előre letárolt térképek legyenek, hanem legyen bennük véletlenszerűség. És itt elkövetett egy kis hibát.

Arra gondolt, hogy először is vesz egy üres térképet.

Aztán beleszór "találomra" néhány zsákutcát, egyenes utat és kanyart.

Utána végighalad és az üresen maradt helyekre kanyarokat, 3-as vagy 4-es kereszteződéseket tesz véletlenszerűen, de közben figyelve az összekötésekre, ha pedig más kiút nincs, zsákutca kerül az adott helyre.

Ezzel már dörzsölte is kezét, kész a szuper térkép.


No, ha a Fred labirintus-tervezője így állt volna a kérdéshez, akkor bizony sokszor ragadtunk volna a piramis belsejében, de ő okosabb és jobb algoritmust alkotott.


Hol a hiba ?

Elvben bárhol létrejöhet, de legegyszerűbb, ha arra gondolunk, tegyünk egy felfelé zsákutcát a 2. sor végére. E fölé nem lehet semmit tenni, kizárólag egy jobbra zsákutcát, vagyis azt, ami nincs. Puff neki, ennyi. Ugyanígy járhatunk a bal alsó saroknál is.


Mivel nem minden kanyar, kereszteződés, zsákutca tartozik az eszköztárba - például fentről-jobbra kanyarodó kanyar nincs - így elképzelhető, hogy ha úgy módosítom az algoritmust, hogy ne jöhessen létre beszoruló, nemlétező zsákutca, akkor megoldható a baj.  Ha ezt nem tudom matematikailag - vagy algoritmusilag - bizonyítani, akkor csak úgy lehet javítani, ha megrajzolom a 2 hiányzó zsákutcát. Ez jelenleg azért nehéz, mert a térképelemek kódjaiból számítja ki a memóriában az elem felépítését és a szükséges helyen lehet, hogy más pihen. Ha csak ez maradna a megoldás, sok munka lesz, tehát drukkolok, hogy megtaláljam a zsákutca feloldó átjáróházat :)
Megoldás, hogy a tervezés végén egy sima ellenőrzés kell és ha hiba van, akkor újratervezés, de ehhez pedig szabad memória kell - igaz csak kevés byte. Ezt nem szeretem csak úgy betenni a programba, mert soha nem lehet tudni, hogy egy üresnek látszó rész mikor és mire kell. Ehhez a teljes visszafejtés szükséges, ami ....

Jelentkezem később.

Pgyuri

7
Programozás / Re: Tegyük rendbe az EP programokat!
« on: 2022.June.23. 13:13:19 »
Üdv,

Ha más jelentkező nincs, akkor ezt vállalom, mivel a WoS-on is felvetették már. A térkép generáló rutin a $63E4 címtől indul, ki kell elemezni a működését és utána lehet a javításon elmélkedni. Az algoritmus szerint ezek a zsákutcák nem szabadna, hogy létrejöjjenek, de hát magam is láttam,. hogy 5-10 próbálkozás után lett egy-egy darab. Nekem eddig a jobb felső és bal alsó sarokban jött ilyen létre, de nem kizárt, hogy máshova is kerülhet. Tehát vagy algoritmus hiba vagy csak egy apróság. Meglátjuk.

Pgyuri

Juggernaut - a térképgenerálás hibás. A lefelé és jobbra mutató zsákutcák - gondolom, memóriaspórolásból - nem lettek megrajzolva, ezért a térképen ilyeneknek nem is kéne létezniük, de néha mégis lesznek. Ilyenkor ezekbe behajtva teleszemetelt képernyőt és game over-t kapunk.


8
Játékok / Re: Airwolf
« on: 2022.January.24. 14:32:10 »
Üdv,

Aktív nem vagyok, de olvasom a fórumot rendszeresen, így nagyjából képben vagyok, mi történik, ki-kicsoda, kit-miért érdemes olvasni vagy csak egyszerűen a humorért, amelyben szipucsu nagyon ott van :)   A műanyag alkatrészek körüli leírások meg egyszerűen lenyűgöztek.

Airwolf témában csak arra emlékszem, ami a fórumon is megjelent, de mivel semmit nem dobok ki, így a gépemen megvan még  minden.

Pgyuri

9
Játékok / Re: Szenzációs bejelentés!
« on: 2014.July.30. 12:16:44 »
Üdv,

Pedig még sokat kellene javítani rajta. Egyrészt átmentem 4-szer, de a végén adott összesen 97 pontot, pedig volt, hogy egyszeri próbálkozásnál 1927 pontot írt ki. Közben mindig 0 jelent meg a SUCCEED mellett és a hibákat is törölte. Másrészt a hang borzasztó, de még sípolva is marad, ha újrarajzol. Nehezen is látható a feketén ez a sötétpiros.

Tesztelni, tesztelni, tesztelni .... javítani, javítani, javítani.

Pgyuri

10
Assembly / Re: Assembly programozás
« on: 2014.April.08. 16:25:41 »
Üdv,

Ha definiálod az "átlagos Z80 program"-ot, akkor megválaszolom. Kérdésed szerintem nem megfelelő, hiszen programozási technikától függ ki milyen módon építi fel programját.

Utasítások hossza 4T és 23T tartományban van. 486 különböző utasítás van, átlag T értékük ~10,4.

Ha a programod minden utasításból egyet tartalmaz, akkor ez az átlag. Normális programozási elv mentén szerintem kb. 8 körül mozoghat az érték, míg IX és egyéb hosszú utasítások alkalmazásánál 12-14 körül lehet.

De mint említettem, kellene tudni az általad átlagosnak titulált program specifikációját, mert ha csak 8 bites műveleteket kell végezni, akkor gyors utasításokkal lehet dolgozni, de ha rengeteg nagy táblázatra gondolsz és átláthatóbb program a cél, akkor lassú utasítások tolonghatnak. Nézzek meg egy játékot esetleg ?  De akkor melyiket ?

Hiába, nincs klub :)  pedig ott jókat töprenghettünk...

Pgyuri

11
Speccyalista Nap / Re: Speccyalista Nap 2013
« on: 2013.November.12. 12:03:53 »
Üdv,

Szívesen őrzöm a gépet tovább is, csak úgy gondoltam, hogy mivel nincs klub idén és nem tudni, mit hoz a jövő, ezért visszaadnám, ami nem az enyém. Temészetesen maradhat akármeddig, de hogy akkor mikor jut vissza hozzád, hááááát, ki tudja.

Lacikát sajnálom, hogy nem ér rá.

Pgyuri

12
Speccyalista Nap / Re: Speccyalista Nap 2013
« on: 2013.November.11. 08:54:48 »
Üdv,

Változás nincs, szépen közeledik a nap. Ahogy Zozo-nak ígértem a másik fórumon, a klubban megszokott Enterprise konfigurációt elviszem, amit vissza is adnék akkor tulajdonosának további őrzésre.

Én is megyek és - bár nincs regisztráció - a várható létszám olyan 20-25 fő körül fog alakulni, de lehet ennél több is, meg kevesebb is. Mindenesetre jó lesz újra találkozni a legutolsó klubnap óta!

Pgyuri

13
Történelem / Re: Az örök vita: EP vs C64
« on: 2013.October.22. 16:22:32 »
Üdv,

Késve sikerült csak megírni, amit gondoltam akkor, mikor fellángolt ez a téma, de ha már gombokat koptattam, akkor nem törlöm.


Minden gépben azt kell keresni és nézni, hogy mi az, ami JÓ.

Attól, mert igazi spectrumos vagyok, itt is szívesen olvasok, sőt szórakozok, mert az Enterprise-ban is találok szépséget, de közben nagyra becsülöm a C64-et is, mert szerintem programozás és memória-használhatósági szempontból jó, tetszik a gépi kódjának Z80-tól teljesen eltérő, de nagyon okos logikája (tudom ez nem a C64 érdeme), a sprite-okért mit nem adtam volna és a hangja is nekem, mint CSAK rajongó, csodajó, az AY számomra sokkal vacakabb.

Meg is kell dícsérnem az Enterprise-t, ami nem nehéz:

Memória kezelés, és az LPT tábla megoldása. Ez önmagában annyira zseniális, hogy csak szerethetővé teszi a gépet egy játék vagy demo programozó számára.

Amiért nagyon "haragszom" az Enterprise-ra és amiért nem szívesen programozom:

* 64/128 gép közti különbség
* Az OS rendszerek ezernyi verziója, felépítése, stb.

Persze, erre Zozo mindjárt megfedd, hogy csak egy egyszerű, buta programozó szeret a gépben szabadon garázdálkodni, tessék megtanulni kérni és lekérdezni memóriát a rendszertől, aztán úgy programozni, hogy a két különböző sebességű gépen ugyanúgy fusson a program, de ezek nem érvek egy spectrumos számára. Ott is volt Interface-I meg lemezkezelés, ami szerintem csak elrontotta a zseniális alapgépet, de legalább a tömegeknek egyforma gépe volt (na persze ott is a 128-as gép eltért a 48-astól, de legalább nem észrevehetően és nem érintette a régi programok használatát).

Folytassátok a vitát :)   A konzolok magasan a legjobb játékgépek maradnak örökre, azokhoz a C64 állt a legközelebb, árban a legjobb a Spectrum volt. Az Enterprise erről a versenyről és ranglistáról sajna örökre lecsúszott (én is nagyon sajnálom ám).

Pgyuri

14
Történelem / Re: Mire gondolhattak az EP tervezői?
« on: 2013.October.22. 16:13:38 »
Ej-ej, hány évnek kell eltelnie, hogy beugorjon:  Ha Spectrum, akkor Pgyuri :)

A USR xxxxx a mai kor szemével nézve egy függvény, amely meghív egy gépi kódú eljárást és visszatéréskor visszaadja a BC regiszterpár értéket, vagyis 0-65535 közötti értéket.

Mivel szigorúan értve függvény, így csak ott lehet meghívni, ahol az értékére van szükség, tehát nincs más, mint keresni egy olyan utasítást, amiben van szám paraméter. Erre szinte minden megfelel, ha nem célunk, hogy a gépi kódú programból valaha is kilépjünk, tehát lehetett volna

GOTO USR 32768, PRINT USR 40000, de az értelmetlenségek is jöhettek volna, mint CIRCLE USR 42000,0,0, tehát szabad a vásár.

Hogy miért épp a RANDOMIZE USR 32768 féle hívás terjedt el ?  Mert az első programozó leírta és utána mindenki másolta :)

A tréfa kedvéért pedig PRINT USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR USR xxxxx    érdekes feladat írni egy "hasznos" programot, ami ennél a hívásnál értelmesen lefut :)

Pgyuri

15
Történelem / Re: Az átlag EP tulaj véleménye...
« on: 2013.October.22. 16:12:00 »
Üdv,

Bár nem voltam Enterprise gép tulajdonos sosem, de ismerőseim közt kettőnek is volt. Az egyikük tényleg nem tudott vele semmi értelmeset kezdeni, játék meg kevés volt, így Amiga lett belőle, a másik Spectrum mellé szerezte be, dícsérte is lelkesen eleinte, hogy mi mindent tud és milyen jó, de aztán szép lassan csend lett a vége, ment tovább a Spectrum minden nap.

Mára egyiküket se érdekli még annyira se, hogy beszélgessenek róla.

Ha nekem lett volna, bizony csalódott lettem volna, főleg a játékok miatt. És ezt nem a mai fejem mondatja, hanem a régi ...

Pgyuri

Pages: [1] 2 3 4 5 6 7 8 9