Na ebben nem vagyok biztos, de mintha pl spectrumon igen hosszu sorokat is lehetne irni, viszont EP-n azert annyira nem ... Szal ha adott egy gep amin erosen limitalva van egy basic sor hossza, akkor nem lesz fair egeszen :)254 karakter lehet nálunk is egy sor, azzal nincs gond. Spectrumon talán 255 karakter?
Spectrumon talán 255 karakter?Megnézve egy Gyuri által elkövetett ilyen programot, (http://www.worldofspectrum.org/infoseekid.cgi?id=0027767)
254 karakter lehet nálunk is egy sor, azzal nincs gond. Spectrumon talán 255 karakter?
Arra celoztam h mintha spectrumon akar tobb ezer karakter is lehet egy sor. Viszont ez csak 1 emlekfoszlany, mintha valahol olvastam volna, de nem biztos.A sor hossz 2 bájton van tárolva, és 1 utasítás 1 bájt.
IF, ami szintén nem fogad el több utasítást a THEN után, az ELSE ága pedig még meglepőbb eredményt ad (egy példa, még nem egysoros: 10 LET X=1 20 IF X=1 THEN PRINT "HELLO" ELSE PRINT "JOCO" nekem fura üzenetet ad futtatáskor).Az üzenet oka, hogy keres egy ELSE nevű változót, amit szintén ki akarna printelni.
Végül összedobtam egy egysoros "játékot". Bár tényleg játék, lehet versenyezni, ki ér el nagyobb pontszámot.Eddig 255 pont a rekordom :-)
Eddig 255 pont a rekordom :-)Megdöntöttem, 267 pontot sikerült elérnem. :D
Megdöntöttem, 267 pontot sikerült elérnem. :D342 :-)
*** KIÍRÁS TÖRÖLVE ***Ha netán mégse, akkor van egy baromi primitív Kő-papír-ollóm, ami a játék összes alapvető funkcióját megvalósítja:
Ha netán mégse, akkor van egy baromi primitív Kő-papír-ollóm, ami a játék összes alapvető funkcióját megvalósítja:Benevezek a "versenybe" ezzel a 951 byte-os szösszenettel. Azért ez is 22 sor. (Azért angol, mert Rosetta Code-ra csináltam, ez ide pont jó, mert tömörebb nyelv.)
-begyűjti a géptől, és a játékostól, hogy mit választottak
-eldönti, hogy a játékos nyert, vesztett vagy döntetlen
-kiírja az eredményt
Statisztika nélkül csak 757 byte.Az enyém 247 :-)
18 sor és 742 byte az utolsó licitem.A felhasználó felületben tuti vezetsz, de te nem az egysoros kategóriában indultál :-)
Az interaktivitás nem számít az elbírálásnál? :ds_icon_cheesygrin:
18 sor és 742 byte az utolsó licitem.Ezen lehetne rövidíteni, kettővel kevesebb sor lenne.
Az interaktivitás nem számít az elbírálásnál? :ds_icon_cheesygrin:
4 FOR I=1 TO 3
5 LET S(I)=0
6 NEXT
Erre: 4 LET S(1),S(2),S(3)=0
9 DO
10 LET K$=INKEY$
11 LOOP UNTIL K$>="1" AND K$<="3" OR K$=CHR$(27)
9 LET K$=INKEY$
10 IF ........... THEN GOTO 9
Bár lehet, erre írtad, hogy az ilyen piszkos munkára nem vagy kapható. :D
Talán jobb lett volna, ha az 1 sor/1 utasítás elvét követték volna a struktúrált programozás lehetőségéhez.
Ez a POKE bumm bele a memória közepébe pont az a dolog amit nagyon nem illik EP-n csinálni :oops:
1 POKE 40000,0: POKE 40001,0:
de nem volt képes értelmezni a GOTO 5+x utasítást sem.Igen GOTO után csak fix sorszám lehet. ON kifejezés GOTO sorszámlista van az ilyen paraméteres Gotozásra kitalálva.
Egyelőre nagyon szűkösek a keretek az egysoros programkészítésre, szerintem versenyen kívül publikáljunk.Akkor hiába hajtottam a nyereményre? :twisted:
Új leszállópálya, gravitációs vihar és leszállás-értékelés.
Megvizsgálva az új szintaktikai lehetőségeket, elkészült a nehezített Lander-2 :) Új leszállópálya, gravitációs vihar és leszállás-értékelés.iNálam csak egyszer futtatható a program, második futáskor egyből lent van már a zűrhajó. De annyi baj legyen, így is egyedülálló program az EP történelmében.
Egy sorba vajon elférne-e hogy:Elférni elfér, de mi értelme ennek a kódnak? Azon kívül, hogy jól elszáll :-)
100 ALLOCATE 100: CODE B=HEX("A3,02,24,21,fa,66,33,23,12,4,21,21,C9"): CALL USR(b,0)
Egyébként honnan tudtad, hogy nem érvényes utasítások vannak benne?Begépeltem, és megnéztem az emulátor debugerében, hogy mi ez :-) mondjuk a sok 21 eleve gyanús volt.
Szerintem alapvetően nem ilyen poke-os képernyőírás meg hasonló gányolásokban kéne gondolkodni, ha már EP. Bár én szeretem az ilyeneket, de egy ilyen versenyben pont nem erre kéne menni. Hanem legyen 5 vagy 10 sor, és legyen szépen, kompatibilisan megírva.Egyetértek!
Szerintem alapvetően nem ilyen poke-os képernyőírás meg hasonló gányolásokban kéne gondolkodni, ha már EP. Bár én szeretem az ilyeneket, de egy ilyen versenyben pont nem erre kéne menni. Hanem legyen 5 vagy 10 sor, és legyen szépen, kompatibilisan megírva.Hát akkor mutass egy ilyen programot! :D
Itt egy emberkét lehet mozgatni a képernyőn a belső joystick segítségével.Ez durva. Nem gondoltam, hogy meg lehet csinálni, hogy még a képernyőről se lehessen kivezetni. Látom, a LET utáni egyenlőségjel után is van még egyenlőségjel vagy >, < jel. Ez nekem új, hogy ilyet is lehet. Akkor az IF utasítást sokszor ki lehet váltani ezzel. Én egy kb. ugyanilyen programot régebben 10-20 sorral oldottam meg, és még csak azt sem figyelte, hogy kimegy-e a képernyőről. Ebből a szempontból is van tanulsága, sok dolgot rövidebben meg lehet oldani, mintsem hogy pl. 10 soron keresztül CASE ágakat vagy IF utasításokat írjunk. Nem is tudom, minek írtam régebben ilyen terjedelmesen:
Kicsit finomítva, és póktalanítva :-)Ez már nagyon durva! :ds_icon_cheesygrin:
Látom, a LET utáni egyenlőségjel után is van még egyenlőségjel vagy >, < jel. Ez nekem új, hogy ilyet is lehet.Ez az, amit a programomból lesett el Gyuri :-)
Egyszer próbálgattam abból a könyvből azt a POKE-ot, de nekem nem működött...Ez a baj az ilyen pókolgatásokkal, hogy nagyon konfiguráció függő, hogy hol is van az amit át akarunk írni.
A 24-es és 25-ös rendszerváltozó egyébként mit csinál ettől függetlenül?Video X, Y, amit videólap megnyitása előtt kell beállítani, azaz jelen esetben a 22,23-asokkal együtt büntetlenül felhasználható.
Beeee... nem lestem elÚgy értem, hogy azt, hogy hogyan működik EP-n a dolog :-)
Ott nem tudom, milyen határok vannak, de talán lehet olyan hosszú sort is előállítani, ami az egész képernyőt betölti, és amit nem is lehetne BASIC-ből szerkeszteni egyáltalán.Ilyet sajnos nem lehet, az elején ki lett tárgyalva, hogy az IS-BASIC egy bájton tárolja a sor hosszát (míg a Spectrum 2 bájton), és ez szab határt a fantáziának.
irányítást úgy lehetne csinálni kevés sorral hogy egy tömbben letároljunk a joy értékeihez tartozó x és y elmozdulásokatNagyjából talán értem az elvet, de tudnád ezt példával szemléltetni? Mindig szerettem basicben ilyen karakteres képernyőn futó játékokat próbálni írni, talán még hasznosíthatnám az ötletet.
ezután a joy lekérdezése után csak a tömbből elő kell szedni hogy mennyit adjunk hozzá a koordinátákhoz
de 256 asm-ban nehéz már versenyezni a létező dolgokkal... yutubon érdemes rákeresni milyen demókat, játékokat csináltakEP-re talán még nem túl sokat. :) Más gépeken (pl. C64) előnyt jelent, hogy rövidebb a "minimális" program, tehát ami már inicializálta a képernyőt (EP-n létre kell hozni az LPT-t), van működő irányítás, stb. EP-n a ROM rutinok közvetlen hívása sem túl elegáns megoldás (a fenti egyszerű példában sincs ilyen) az EXOS és IS-BASIC különböző verziói miatt, pedig azzal is lehet helyet megtakarítani.
EP-n létre kell hozni az LPT-tA jelen egyszerű esetben egy videólap EXOS LPT-jvel nem lenne használható?
A nagyon rövid gépi kódú "játékok" is érdekesek lehetnek, ez például 256 byte fejléccel, bár a játéknak sok értelme nincsen, és ennél bizotosan jobbat is lehet írni:Ezzel eddig 41 pont a rekordom. :D
A jelen egyszerű esetben egy videólap EXOS LPT-jvel nem lenne használható?Lehet, hogy érdemes megpróbálni, a jelenlegi megoldás 38 byte méretű, az eredeti EXOS LPT-t írja felül a státuszsortól kezdődően, feltételezi, hogy az LPT első 25 sorában karakteres mód van érvényes LD2 címmel (a margókat a program beállítja), és az EXOS veremben tárolja a képernyőt fix AC00h kezdőcímen. EXOS hívások és VIDEO: csatorna használata elegánsabb megoldás lenne, de nem tudom, elférne-e ugyanakkora helyen, és elveszne a fix képernyő memória cím is.
Továbbfejlesztett verzió (EP64 kompatibilitás nélkül lehetne valamivel kisebb is): :)Ez az a játék, hogy ha az összes cuccot összeszedjük, akkor kijön egy húszezres a gépből? :D