Welcome, Guest. Please login or register.


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

Online gflorez

  • EP addict
  • *
  • Posts: 3381
  • Country: es
    • Támogató Támogató
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 95.0 Firefox 95.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1560 on: 2022.January.14. 00:04:46 »
Ezt a paraméterátadást sosem értettem. Az a baj, nem mutatták be gyakorlati példán, hogy a meghívott program mit tud csinálni azokkal a dolgokkal, amiket megadunk neki az egyik programból. A PROGRAM utasítás után a programnév után is meg lehetett adni zárójelben valamiket, de erre se láttam még példát, hogy hogyan lehet aztán felhasználni.

Oké, adnak egy egyszerű példát:

------

Ok, they are already giving you an easy example:







Offline Tomato77

  • EP user
  • *
  • Posts: 381
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 97.0.4692.71 Chrome 97.0.4692.71
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1561 on: 2022.January.14. 09:44:18 »
Ezt a paraméterátadást sosem értettem.
Dióhéjban kb. ugyanaz, mint amikor DEF szubrutinok hívják egymást, és paraméterekben adnak át egymásnak értékeket, mert egymás változóit nem látják. A programoknál is hasonlóan működik, ők is értékeket adnak át egymásnak. Más környezetben is létezik ez, pl. DOS batch parancsfájlok és .EXE programok is adhatnak át egymásnak paramétereket.

Pl. ha írsz egy MIDI lejátszót, akkor lehet a bemenő paramétere egy fájlnév, és akkor azt tölti be.
Kotasoft

Offline szipucsu

  • EP addict
  • *
  • Posts: 9455
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1562 on: 2022.March.26. 10:14:27 »
Biztos nagyon egyszerű a válasz, de ezt hogy lehet megcsinálni rövidebben, valamilyen FOR-ciklussal?

Code: [Select]
6510   SET #2:PALETTE COLT(A,1),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7)
 6520   SET #2:PALETTE COLT(A,1),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2)
 6530   SET #2:PALETTE COLT(A,1),COLT(A,4),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3)
 6540   SET #2:PALETTE COLT(A,1),COLT(A,5),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4)
 6550   SET #2:PALETTE COLT(A,1),COLT(A,6),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5)
 6560   SET #2:PALETTE COLT(A,1),COLT(A,7),COLT(A,2),COLT(A,3),COLT(A,4),COLT(A,5),COLT(A,6)

Annyi a lényege, hogy (az első paraméter kivételével) mindig 1-et adjon hozzá a függvény második tömbjéhez, de ha ez valamikor nagyobb lenne, mint 7, akkor kezdje 2-től. Akkor csak egyetlen SET PALETTE lenne, de az cikluson belül.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1563 on: 2022.March.26. 10:53:49 »
Code: Text
  1. 10 FOR I=0 TO 5                      
  2. 20   PRINT "1";MOD(I,6)+2;MOD(I+1,
  3.      6)+2;MOD(I+2,6)+2;MOD(I+3,6)+
  4.      2;MOD(I+4,6)+2;MOD(I+5,6)+2    
  5. 30 NEXT I                          
  6.  

Offline szipucsu

  • EP addict
  • *
  • Posts: 9455
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1564 on: 2022.March.26. 13:12:24 »
Köszi! Sejtettem, hogy valami turpisság lesz a dologban. Azt hittem, valami band, bor műveletek jók erre.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 859
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1565 on: 2022.March.26. 19:49:13 »
Code: [Select]
 
  200   LET A=1:LET B=2:LET C=3:LET D=4:LET E=5:LET F=6:LET G=7
  210   FOR I=0 TO 5
  220     PRINT A;B;C;D;E;F;G
  230     LET BB=B:LET B=C:LET C=D:LET D=E:LET E=F:LET F=G:LET G=BB
  240   NEXT I
Ez sem egy utolsó megoldás.

Offline Povi

  • EP addict
  • *
  • Posts: 2191
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Chrome 99.0.4844.82 Chrome 99.0.4844.82
    • View Profile
    • http://povi.fw.hu
Re: Általános BASIC Kérdések
« Reply #1566 on: 2022.March.26. 20:10:21 »
De egyébként Szipucsu megoldása lesz a leggyorsabb mind közül :-) Cserébe az foglalja a legtöbb helyet.
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6711
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1567 on: 2022.March.27. 08:30:21 »
A helyfoglalásban se vagyok 100%-ig biztos, mert ugyan a Ferroé és az enyém rövidebb, az a kérdés, hogy a Basic hogy tárolja a tömböket, ha teljes nevén, akkor mi nyertünk :D
Sebességre meg sztem az enyém a leglassabb a sok számolás miatt, majd Ferroé, és a leggyorsabb Szipucsué.

Offline szipucsu

  • EP addict
  • *
  • Posts: 9455
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1568 on: 2022.March.27. 09:07:20 »
De egyébként Szipucsu megoldása lesz a leggyorsabb mind közül :-) Cserébe az foglalja a legtöbb helyet.
Zzzippel úgyis le lesz fordítva, a sebesség mindegy, mindenképpen még lassítani is kell rajta. A lassításhoz célszerű, ha csak egyszer kell betenni lassító FOR-NEXT ciklust az egészbe, ebből a szempontból az enyém a legrosszabb. De nem Zzzippel fordított basic programhoz talán tényleg az a legjobb.

Közben így oldottam meg:
Code: [Select]
6531 LET A=RND(10)+1
 6532 FOR CKL=2 TO 7
 6533   LET COLV(CKL),COLV(CKL+6)=COLT(A,CKL)
 6534 NEXT
 6535 FOR CIKL=1 TO 15
 6536   FOR CKL=2 TO 7
 6537     FOR A1=1 TO 900
 6538     NEXT
 6539     SET #2:PALETTE COLT(A,1),COLV(CKL),COLV(CKL+1),COLV(CKL+2),COLV(CKL+3),COLV(CKL+4),COLV(CKL+5)
 6540   NEXT
 6541 NEXT

Annyi a lényege, hogy attribútum videolapon az alsó 7 (vagy 8?) színt cserélgesse egymással, tehát a paletta következő színe megkapja az előző színkódját, ha pedig nincs következő, akkor az elsőnek adja át a botot, persze a háttérszínt kihagyva a dologból, így jó kis vizuális effektet lehet elérni. Lehet, rosszul emlékszem, de mintha Geco is használna ilyet néhány játékban, ahol lent az Enterprise felirat alatti vonalak színei "hullámzanak" (a következő vonal színe megkapja az előző vonal színét), de lehet, hogy annak más az elve, már nem emlékszem.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 859
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1569 on: 2022.March.27. 10:01:20 »
Sima BASIC-ban azonos változó nevekkel:
szipucs:    660
geco:        236
ferro73:     260

100 szor ismételve:
szipucs:    00:01:00
geco:        00:02:50
ferro73:     00:00:54

mellékelem a tesztet


Offline szipucsu

  • EP addict
  • *
  • Posts: 9455
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 101.0 Firefox 101.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1570 on: 2022.June.03. 19:27:55 »
Be lehet valahogy állítani a botkormányokra olyasmit, ami a billentyűzeten a KEY DELAY? Az lenne a lényege, hogy ha pl. jobbra döntjük a botkormányt, ne menjen a krapek folyamatosan jobbra, hanem csak egyet lépjen jobbra. Csak akkor lépjen újra egyet, ha a botit elengedjük, majd újra megdöntjük.
A JOY() függvény teljesen figyelmen kívül hagyja a KEY DELAY-t, még belső joynál is. Hiába nem szól a click, de ha meg van döntve a botkormány, a JOY() függvény értéke már nem nulla.
De így belegondolva, lehet, kellene a programba egy rész, ami figyelni, volt-e 0 a JOY függvény értéke, és ha igen, akkor átállít egy változóértéket, és ezt a változóértéket figyelembe véve lépteti vagy nem lépteti a krapekot a léptetőeljárás.
Most mindjárt meg is válaszoltam a kérdésem, de azért már elküldöm ezt, ha begépeltem.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 859
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 100.0 Firefox 100.0
    • View Profile
Re: Általános BASIC Kérdések
« Reply #1571 on: 2022.June.03. 21:22:46 »
És ha ügyesen  írod a progit akkor akár többet is léphetne körönként.