Fejtörő (2010-2011)

Mókás, de direkt dögnehéz programozási feladványok Spectrumra...
Lezárt
Avatar
Pgyuri
Speccyalista
Hozzászólások: 485
Csatlakozott: 2012.01.06. 13:34

Fejtörő (2010-2011)

Hozzászólás Szerző: Pgyuri » 2012.01.07. 22:22

Kandalló mellett egy kényelmes hintaszékben, puha meleg pokrócba takarózva
elevenítsük fel az 83-84-es évek újságjaiban fellelhető, apró BASIC
programok izgalmát, amelyeket sorról-sorra lassan beírtunk, majd vártuk,
hogy vajon milyen ajándékot kapunk türelmes munkánkért.

10 CLS : BEEP 1,0: PRINT "3-2-1-PUKK": PAUSE 50
20 RESTORE 100
30 READ AKTEV
40 LPRINT "* BUEK ";AKTEV;" ";
50 IF 2012>AKTEV THEN GO TO 20
100 DATA 2005,2006,2007,2008,2009,2010,2011,2012
110 REM 2010/2011-ES FEJTORO

És ha valaki ezután azt mondja, hogy nem azt kapta, amit kellene, bizony
ellenőrizze le újra programját !

Pgyuri

Avatar
MailMiner
LLIST Archiváló
Hozzászólások: 219
Csatlakozott: 2012.01.07. 23:12

Re: Fejtörő (2010-2011)

Hozzászólás Szerző: MailMiner » 2012.01.10. 12:05

Nos... begépeltem. Megszenvedtem vele emulátoron, mondom -Pgyuri írta, biztosan valami jópofa dolog lehet! Persze olyan parancsokat használ, melyeket még az életemben nem használtam (pl. RESTORE (ez mit csinálhat??)), ezért lila fogalmam sem volt arról, hogy a fekete dobozon hol találhatóak meg, tehát folyamatosan a Keyboard Map-et kellett silabizálnom. Figyeltem minden egyes beütött karakter külalakjára, színére-szagára, rajtam ne múljon a siker. Beepel egy ocsmányat majd kiírja, hogy 3-2-1-PUKK.

Megszívtam?

Azért BUÉK mindenkinek!

Kiki
***********************************
restore a data sorok elejére állítja a pointert. mivel mindig lefut, sosem fog eljutni a buékig.

üdvözlettel/best regards: Varga Viktor
***********************************
A RESTORE be-/visszaallitja a "pointer"-t ahonnan a kovetkezo READ olvas (ami ugye a DATA adataibol szedi).
***********************************
Oh, eljut az... csak van egy kis bibi... A Speccyre kapcsolt printert bekapcsoltad-e? :D
(LPRINT utasítás - a nyomtatóra küldi a kiírandó sztringet)

Viszont a "50 IF 2012>AKTEV THEN GO TO 20" helyett "50 IF 2012>AKTEV THEN GO TO 30" kellene, hogy ne mindig 2005-öt írjon ki - végtelenítve, a RESTORE miatt :D
( Ejnye-bejnye Pgyuri ;) )

Üdv: Gábor (BetelGeuse)

PS: Nem írtam be a progit...
***********************************
Sziasztok!

A program törli a képernyőt, kiírja a "3-2-1-PUKK" feliratot. Vár egy keveset, majd nyomtatóra küldi a "* BUEK 2005 feliratot. Mivel az 50-es sor GO TO 20 és nem 30 ezért állandóan 2005-t fog a nyomtatóra küldeni és sose fejeződik be. (ha go to 30 lett volna, akkor a * BUEK 2011 lenne az utolsó, amit nyomtatóra küld)

Itt gondolhatnám, hogy ez egy elütés, de mivel a programot Gyuri írta, ezért nem valószínű, hogy hibázott volna. Sokkal precízebb ő ennél. Valószínű, hogy a rejtély megoldásában ez is szerepet játszik. Vagy nem. Ám biztos fontos jelentősége van a szövegnek: Pl. "sorról-sorra lassan" vagy "várunk, hogy milyen ajándékot kapunk"
stb...

Szóval nem meglepő módon én az idén se jutok semmire sem a feladvány megoldásában, de talán ti igen!

Boldog új évet mindenkinek!

Péter
***********************************
Üdv,

Nem "ejnye-bejnye", a program tökéletes! Csak nem gondoljátok, hogy nem egy többször átnézett, ellenőrzött programot adnék közre ?

Pgyuri
***********************************
Hali!

Nah igen, erről van szó! :D

Péter
***********************************
Dehogy!

Gyuri ezt elcseszte. Látszik, hogy lövése sincs a programozáshoz. Az egy dolog, hogy már a második 500-as köteg A4-es lapot teszem be a lézernyomtatómba és még mindig ugyan azt az egy üzenetet kapom vissza -még reménykedem a meglepetésben-, de az én programozói kvalitásommal ezt egy BASIC sorban megírtam volna. Majd tartok BASIC oktatást Gyurinak.

Kiki
***********************************
Sziasztok,

Kijavítottam Gyuri "programhibá"-ját, bár neki ez nem fog tetszeni. :-)

Utasításként kiadni:
POKE 23832,245
(Ez csak átírja a LPRINT 224-es kódját sima PRINT-re.

Beírni még egy sort:
25 FOR n=1 TO 6:READ a: NEXT n

Fontos a sorrend, mert ha előbb írjuk be a 25-ös sort, a LPRINT kódja elkerül a 23832-es címről.

És már jó is. (Félek, Gyuri nem erre a megoldásra gondolt, talán a rendszerváltozókkal variált valamit, de ez csak tipp)

A lényeg: BÚÉK!!!

Üdv,

Csaba (makranc)
***********************************
Gyurikám, Te hivatkoztál erre:

"elevenítsük fel az 83-84-es évek újságjaiban fellelhető, apró BASIC programok izgalmát, amelyeket sorról-sorra lassan beírtunk, majd vártuk, hogy vajon milyen ajándékot kapunk türelmes munkánkért."

Nos, nagyon (meglehetősen?) sok olyan progi jelent meg akkoriban, ami bizony nem volt "többször átnézett, ellenőrzött" :D

BUÉK ismételten, immár abból az évből, ami még kissebb, mint 2012. ;)

Üdv: Gábor (BetelGeuse)

PS: Ami az LPRINT után idézőjeleken belül található, bármi lehet, a gép küldi a nyomtatónak. Hogy a nyomtató hogy értékeli, az egy másik dolog, de pl. így lehetett ESC szekvenciával vezérelni őket...

PS2: Mint írtam volt, nem írtam be gépbe... csak a még meglevő(?) elméleti tudásomra(?) hagyatkozom... :)
***********************************
Üdv,

Bár a levéláradat elmaradt, de örülök, hogy eltöprengtetek páran, vajon mi lehet a fejtörő megoldása. Tulajdonképpen csak egyikőtöknek volt esélye a megfejtésére ... bizony-bizony, Kiki megoldhatta volna, de egy apró, icike-picike dolog elválasztotta tőle.

Jól láttátok, hogy ez a program azontúl, hogy 2005-re kíván BUEK-ot, mást nagyon nem tudna csinálni. De miért éppen 2005 és vajon mit jelent, hogy "sorról-sorra lassan beírtuk" és "bizony ellenőrizze le újra programját!" ? A szöveges feladat minden mondatának, szavának jelentősége van ....

Megoldás következik:

Ha begépeled a programot kedvenc ZX Spectrum gépedbe és alaposan megnézed, akkor feltűnhet, hogy a BEEP parancstól függőlegesen olvasva a betűk BUEK 2011 kívánnak Neked!

Gábor "indoklása" tetszett, bizony az is illett a korhoz. Köszönöm a töprengést (Kikinek külön is) ! :))

Pgyuri
***********************************
Zseniális! :)
stp
***********************************
És valóban! :D
Zseniális!
P.
***********************************
hát legközelebb screenshotot küldj. :) akkor hamarabb meglesz.

üdvözlettel/best regards: Varga Viktor
***********************************
Nem ilyen körmönfont módon, de BÚÉK neked is!

Talán ha a "sorról-sorra lassan beírtuk" után azt írtad volna, hogy "Ellenőrizze le a programot oszlopról oszlopra!" :-))

Üdv,
Csaba (makranc)
***********************************
Ez nagyon tetszik :-)

Üdv, Cözi
***********************************
Hali!

Erősen illuminált állapotban kellett volna néznünk a progit FF TV-re kötött spectrumon, na akkor rögtön bevillant volna a BUÉK! :)

üdv,
Bali
***********************************
Huu.. uazze!

Pedig esküszöm direkt ilyen módon is szemléltem vagy 5 percig a beírt programot, ismervén téged hunyorítottam, elfordítottam a fejem, stb., elég mókás dolgokat műveltem, de erre nem jöttem volna rá! Azért valljuk be ez övön aluli ütés volt. Emulátoron ennyit gépelni...

(Azért utólag elismerem, hogy frappáns volt és megoldható lett volna.)

Köszönjük!

Kiki
***********************************
Hogy?..
Naneee...
És mégis...
Hogyazaa...
...

Gyurikám, előre elnézésedet kérem, mindamellett, hogy teljesen igazad van!

(Egy ici-picit káromkodásízűen...) "A Szentségedet!" :D :D :D :D ... és gratula! :D :D (És egy apró kérdés: mennyi ideig töred a fejed, amíg ez összejött? :) )

Üdv: Gábor (BetelGeuse)

Lezárt

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég