Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423675 times)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #690 on: 2015.February.09. 00:52:22 »
hm ahogy nézem a pixel scroll eltűnt belőle a zzzippelés során
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #691 on: 2015.February.09. 13:11:55 »
hm ahogy nézem a pixel scroll eltűnt belőle a zzzippelés során
Vagy csak a sebesség miatt nem tűnik már fel, de szerintem azért más így. Már a basic programban sem lehetett mindig érzékelni.

Furcsa, hogy bugos a pálya. Nem használsz esetleg lokális változót, amit a Zzzip nem szeret? Nekem a DEF(BE,FINE) gyanús.
Ha a pixeles scrollt kiveszed, akkor is bugos lesz zzzippelés után? Hátha amiatt kerül bele.

Még a basic változatban érzékeltem, hogy ha lefele mész a pályán, akkor nem olyan jó a scroll. Nem abból a pozícióból scrollozik a képernyő, ahol éppen van, hanem kicsit előtte lejjebb ugrik. Ha fölfelé megyünk, akkor ez nem jön elő.
« Last Edit: 2015.February.09. 15:28:24 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #692 on: 2015.February.09. 13:47:44 »
Na, megtaláltam egy kazettán végre a labirintus programot, amiről írtam. Rosszul emlékeztem, nincs oldalirányú scroll benne, csak függőleges. Endiéhez képest eléggé egyszerű, de a maga nemében eléggé különleges basic program! Eddig még nem láttam sem az ep128.hu, sem más oldalon.
Indulás után egyből 4 perc türelmet kér, ekkor generálja a labirintust. Ha jól láttam, véletlenszerűen mindig más labirintust generál. A snapshotban, amit betettem, már csak 5 másodperc van hátra a 4 percből, hogy senkinek ne kelljen várnia.

Ezt tovább lehetne fejleszteni, mondjuk úgy, hogy nem induláskor generálja a labirintust, hanem előre már egy rakat labirintust generálunk, elmentjük, és véletlenszerűen ezek közül tölt be induláskor. Meg egy kis zzzippelés is jól jönne. Igaz, akkor már inkább Endi programját kéne továbbfejleszteni, de miért ne fejlesszük ezt is? :D

Endi, a labirintust generáló eljárást át tudnád ebből rakni a te programodba? A bal felső sarokból kéne eljutni a jobb alsóba.

Ez a tapeedit az EP128emu csomagban nagyon jó! Kétszer CRC erroroztam igazi magnóval és géppel, ez meg egyből megette a wav fájlt.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #693 on: 2015.February.09. 15:46:10 »
Kicsit belepiszkáltam a programba, most már nem kell 4 percet várni az elején, csak 1 percet. Az out 191,12 és a poke 56,201 csodákra képes. :D

Hát még ha Zzzippel lefordítanánk, még gyorsabb lenne, gondolom. A Zzzippel fordításhoz viszont pár apró dolgot módosítani kéne, mert akad benne 2 hely, ahol nem egész számokat kezel.
Az egyik:
Code: [Select]
610 IF RND>.5 THENA szakikat kérdezem: Ezt mivel lehetne helyettesíteni, aminek pontosan ugyanez lenne a hatása? IF RND(10)>5 THEN egyenértékű lenne vele?

A másik, a páros számok felismerése. Páros számra van szüksége valahol a programnak, és ezt a páros számot is RND-ből állítja elő. Először megvizsgálja, páros-e, úgy, hogy elosztja kettővel, és ha az INT függvénnyel megvizsgálva nem páros, újra generál, amíg páros nem lesz. Páros szám generálásához hogyan lehetne kikerülni az INT függvényt?
Code: [Select]
620 LET Q=RND(39)
630 IF Q/2<>INT(Q/2) THEN GOTO 620
Ha jól értem, itt 0 és 38 közötti véletlenszerű páros számot kell generálni. Ha jól számolom, ugyanaz, mint ez:

620 LET Q=RND(20)*2

Jól számolom? Mert ez lehet 0 is és max. 19 is, és ha ezt megszorozzuk 2-vel pont ugyanaz jön ki, mint az előbb.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #694 on: 2015.February.09. 16:00:19 »
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #695 on: 2015.February.09. 16:03:35 »
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Szórakozásból. Miért ne? Úgyse használja senki, de milyen poén, hogy ilyen is van, eddig nem volt. Kísérletezés, sikerélmény. Megörültem, hogy előkerült a szekrény mélyéről és most kicsit elvagyok vele. Értelme nem sok van, az nem baj.
Majd ha a tied kész lesz, azzal is lehet szórakozni.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #696 on: 2015.February.09. 23:35:17 »
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása, így lefordított programnál nem működne.
Code: [Select]
840 IF YY/2=INT(YY/2) THENEhelyett mit lehetne beírni?

Favágó módszer:
Code: [Select]
831 LET YY$=STR$(YY)
832 LET LENYY=LEN(YY$)
833 LET LY$=YY$(LENYY:LENYY)
840 IF LY$="0" OR LY$="2" OR LY$="4" OR LY$="6" OR LY$="8" THEN

Gondolom, ez működne, de nincs valami más módszer? Mert ha ez sokszor lefut egymás után, jelentősen megnöveli a futásidőt.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #697 on: 2015.February.10. 02:07:40 »
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása,

IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

Amugy a vicc az egeszben, hogy ez a paros/paratlan kb a vilag legegyszerubb dolga, megis mennyi problemat vet fel. hat hiaba, BASIC, asm-ban egyszeru lenne :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Általános BASIC Kérdések
« Reply #698 on: 2015.February.10. 09:19:17 »
IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

print 12 band 1

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #699 on: 2015.February.10. 09:23:29 »
print 12 band 1

Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #700 on: 2015.February.10. 09:45:16 »
Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...

Jobb ötletem nincs, mint a Referencia Kézikönyv, bár erre a "kimerítő" jelző azért túlzás. Sajnos néhány helyen pontatlan (volt eredetileg) és hiányos. Én már javítgattam, kiegészítettem. De ha van még észrevétel, beleírhatom.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #701 on: 2015.February.10. 10:09:33 »
sőt, van BOR is :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #702 on: 2015.February.10. 10:41:52 »
sőt, van BOR is :)
A SÖR jobb.

Értem amúgy, mire gondoltok a bináris 0-1 dologgal, de ezt hogyan lehetne megcsinálni BASIC-ben páros szám "detektáláshoz"? Tudja valaki?
Mit kéne a következővel csinálni?
Code: [Select]
840 IF YY/2=INT(YY/2) THENMár gondolkodtam sok mindenen, pl. megszorozzuk kettővel, aztán elosztjuk néggyel. biztos van valami olyan egyszerű műveletsorozat, amire mindig tipikusan eltérő eredmény jön ki páros és páratlan számoknál.
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...


100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #703 on: 2015.February.10. 10:52:03 »
hát if x band 1 (mivel az utolsó bit jelzi hogy páros-e ügyebár)

mondjuk az az érdekes hogy most rájöttem hogy én az or és and műveleteket nem értem a basic-ben :) mármint a tizedesjegyes számábrázolásban

de a legszomorúbb hogy én annak idején nem is tudtam hogy van ez a band és bor :( (joy-nál használtam csak, de nem is gondoltam rá hogy máshol is lehet, vagy hogy mi az igazából...)
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #704 on: 2015.February.10. 11:02:37 »
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...

Miert ne egyszerusitene le? Kettes szamrendszerben megkapjuk az utolso szamjegyet, ha egy binaris AND muveletet vegzunk a kerdeses szam es az 1 kozott. Az eredmeny az utolso szamjegy lesz pont. Nekem csak az nem volt vilagos, hogy IS-BASIC-ben erre milyen operator valo, ezek szerint a BAND :)