Kyselisin tässä teidän mielipiteitä oman ohjelmointikieleni järkevimmistä toteutuksista.
1. Mikä olisi järkevin tapa toteuttaa käskyt ajo-tilassa? Eli ohjelma ei heti alkaisi toteuttaa käskyä, vaan odottaisi "<aja>" -komentoa?
2. Järkevin virheenkorjaustapa? Rivinumerotko? Olisiko muita ehdotuksia?
Rivinumerot ja ajokomennot... Alkaa muistuttaa 80-luvun basicceja tyyliin:
LET a = 1 PRINT a RUN
EDIT: En taida kirjoittaa lisää, joten muokkaan viimeisen kerran edellistä viestiäni.
Riippuu vähän siitä, kuinka tosissasi tuota kieltä teet.
No aika tosissani... Kaveri ihmettelee, miten mä voin tehdä jotain noin hienoa... ja kyseessä oli pelkkä herätyskello. :) QB:n INPUT-komentoja olen sille koittanut opettaa, mutta ei näytä oikein oppivan, joten rimaa täytyy pudottaa vähän alemmas. :)
Ainiinmuuten vohveli... Sen mielestä The Linkku3d ja Optica3d on ollu siistejä.
Se tosiasia sinun on ainakin hyväksyttävä, että kielestä tulee aikalailla hidas. Mutta ohjelmien, jotka eivät vaadi nopeutta, toteutus voi QB:llä tehdyllä kielellä onnistuakin. Kerropas vähän, minkälaista syntaksia olet noille käskyille ajatellut, niin voisin vähän auttaa toteutuksessa.
3D-moottoreistani:
No se on kiva, jos on tykännyt niistä. :) Ajattelin tässä joku päivä tehdä niistä kirjastoversion, jota voi käskyttää tyyliin: LuoKuutio, PyöritäKuutiota, PiirräKappaleet tms. niin voisi käyttää niitä omiin tarkoituksiin.
Sellaisen purkkakielen nyt voi aina helposti väsäillä mutta jos jotain kunnon parseria meinaa väsäillä niin kannattanee perehtyä webistä löytyviin dokumentteihin :) Millaista syntaksia ajattelit?
Eli kielen rakenne olisi tämmöinen:
<ympyrä> 30 30 25 <siirräkursori> 4 6 <sininenväri> <teksti> Hello world! <tallenna> YMPYHELLO.LSD <aja>
Eli tämä piirtää ensin ympyrän jonka lävistäjä on 25 kohtaan 30,30. Sitten siirtää osoittimen riville 4 ja sarekkeeseen 6. Sitten muuttaa väriksi sinisen ja kirjoittaa "Hello world!" Sitten tallentaa tämän nimellä "YMPYHELLO" Joka on LateScrip tiedosto.
Jos aivan yksinkertainen tulkki pitäisi tehdä, niin minä tekisin näin:
INPUT #1, Rivi$ 'luetaan seuraava rivi koodia IF Rivi$ = "<ympyrä>" THEN INPUT #1, x INPUT #1, y INPUT #1, Sade CIRCLE (x, y), Sade END IF
Jotenkin tuohon tapaan.
Juu... Tuolla ylempänä olevalla ohjeella pääsen varmaan eteenpäin.
Ja sitten sain myös kolmannen ongelman:
Miten saisin tallennuksessa katoamaan kaikki täytesanat kuten <avaa>, <tallenna> ja <aja>?
En oikein ymmärrä, mitä tarkoitat tallennuksella. Mutta etkö siis voi erotella komennoista vain parametrit merkkijonofunktioilla?
Aihe on jo aika vanha, joten et voi enää vastata siihen.