ChaosBasic [version 0.0.2.4]

Muu yhteisön välinen keskustelu.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Dibalo »

Eli tuo tekniikkademo on tietenkin vain grafiikkaenginen nopeudesta. Koodi on vielä C++:aa, mutta suunnittelemallani syntaksilla samainen demo hoituisi ChaosBasicilla suurin piirtein seuraavasti:

Code: Select all

# asetetaan näyttö
Screen.Set(800,600)


# muutamia muuttujia
Var screenw = 800
Var screenh = 600
Var delta_time As Float = 0.0
Var mapOp As Float = 0.5
Var textOp As Float = 1.0
Var cowOp As Float = 1.0


# lehmä-luokka
Class Cow

	# jäsenmuuttujat - julkisia
	Var pos, vel As Vector
	Var img As Image
	Var scale, tempScale, dScale As Float

	# alustusfunktio
	Function Init( Var _pos As Vector, Var _vel as Vector, Var i As Image, Var _rot As Float, Var _scale As Float ) As Void
		pos = _pos
		vel = _vel
		img = i
		scale = _scale
		tempScale = _scale
		dScale = 0.2
	EndFunction

	# päivitysfunktio
	Function Update() As Void
		pos += vel * delta_time
		If pos.x < 0 Or pos.x > screenw Then vel.x = -vel.x
		If pos.y < 0 Or pos.y > screenh Then vel.y = -vel.y

		tempScale += dScale * delta_time
		If tempScale < scale*0.7 Or tempScale > scale*1.3 Then dScale = -dScale
		rot += 180 * delta_time

		img.DrawRotated pos, rot, tempScale, tempScale
	EndFunction

EndClass


# ladataan karttakuva ja asetetaan sille läpinäkyvyys
Var map As Image = New Image
map.Load "map.bmp"
map.SetOpacity mapOp

Var cow As Image = New Image
cow.AddMask 0,0,0				# asetaan ladattavalle lehmälle maskiväri : tämä tulee olla ennen latausta!
cow.Load "cow.png"
cow.SetOpacity cowOp			# läpinäkyvyys

# luodaan tuhat lehmää
For i = 1 To 1000
	Var pos, vel As Vector
	pos.x = Random(0,screenw) : pos.y = Random(0,screenh)	# : tarkoittaa moniriveä
	vel.x = Random(-100,100) : vel.y = Random(-100,100)
	Var rot As Float = Random(0,360)
	Var scale As Float = Random(1,2)
	
	Var c As Cow = New Cow		# luoduille omille tyypeille luodaan automaattisesti linkitetty lista
	c.Init( pos, vel, rot, scale )	# funktion voi ympäröidä suluilla, vaikkei se palauttaisikaan arvoa
Next



# fontti
Var font As Font = New Font
font.Load "porky.ttf"
Screen.SetFont font
Screen.SetColor 255,0,0,255*textOp

# kartan paikka ja nopeus
Var a,b,c,d,va,vb,vc,vd As Vector
a.x = 10	: a.y = 40
b.x = 400	: b.y = 100
c.x = 500	: c.y = 450
d.x = 100	: d.y = 200
va.x = 150	: va.y = -80
vb.x = 200	: vb.y = 200
vc.x = -350	: vc.y = -50
vd.x = -110	: vd.y = 60




Repeat

	delta_time = GetFrameTime()		# aika sekunteina ( tarkempi kuin yksi millisekunti )

	# kartan liikutus
	a += va*delta_time
	b += vb*delta_time
	c += vc*delta_time
	d += vd*delta_time

	# koordinaattien tarkistus
	If a.x < 0 Or a.x > screenw Then a.x = -a.x
	If a.y < 0 Or a.y > screenh Then a.y = -a.y
	If b.x < 0 Or b.x > screenw Then b.x = -b.x
	If b.y < 0 Or b.y > screenh Then b.y = -b.y
	If c.x < 0 Or c.x > screenw Then c.x = -c.x
	If c.y < 0 Or c.y > screenh Then c.y = -c.y
	If d.x < 0 Or d.x > screenw Then d.x = -d.x
	If d.y < 0 Or d.y > screenh Then d.y = -d.y

	# päivitetään ja piirretään lehmät
	For c As Cow = Each Cow
		c.Update
	Next

	# piirretään kartta
	map.Distort a,b,c,d

	Screen.Text 10,10, "FPS: "+FPS()
	Screen.Text 10,30, "Press Y/H to adjust cows' opacity.\nPress U/J to adjust text's opacity.\nPress I/K to adjust map's opacity."

	# läpinäkyvyyden säätö
	If Keyboard.Down( KEY_Y ) Then cowOp += delta_time
	If Keyboard.Down( KEY_H ) Then cowOp -= delta_time
	If Keyboard.Down( KEY_U ) Then textOp += delta_time
	If Keyboard.Down( KEY_J ) Then textOp -= delta_time
	If Keyboard.Down( KEY_I ) Then mapOp += delta_time
	If Keyboard.Down( KEY_K ) Then mapOp -= delta_time
	If cowOp < 0 Then cowOp = 0
	If cowOp > 1 Then cowOp = 1
	If textOp < 0 Then textOp = 0
	If textOp > 1 Then textOp = 1
	If mapOp < 0 Then mapOp = 0
	If mapOp > 1 Then mapOp = 1

	cow.SetOpacity cowOp
	map.SetOpacity mapOp
	Screen.SetColor 255,0,0,255*textOp

	# piirretään näyttö
	Screen.Draw
Forever
Sama koodi löytyy myös täältä: http://mureakuha.com/paste/?5f1244cc79d ... b5b5a73bd5
Koodissa saattaa olla typoja, mutta pääpiirteittäin asia tulee varmasti selväksi.

Mitä mieltä olette? Muutosehdotuksia? Ruusuja ja risuja?
The darkest spells can be found from
http://tunkkaus.blogspot.fi
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by SPuntte »

Jeppa jee! En Tosissaan uskonut, että tästä kuuluisi jotain näin hyvää, näin pian.

En ehdi (lue: jaksa) koodia tarkemmin tutkiskella, mutta tekniikkademo näyttää suhteellisen kivalta. Alla on > 5 vuotta vanha läppäri, Compaq Presario 900, CPU Athlon XP 1800+ @ 1.53 GHz; 768Mt RAM @ 266 MHz; GPU Ati IGP 320M aka Mobility U1, jossa muistia dynaamisesti 16-64 Mt. Loki antoi FPS:ksi 34.4497.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic [techdemo02]

Post by Jare »

Dude. Fps oli aluksi 60. Poistin vsyncin käytöstä (nvidian control panelista kohta Manage 3D settings ja sieltä Global settings ja listan viimeiseen valintaan Off). Fps nousii 444:een. Sitten otin pois päältä BOINC:n. Fps nousi 774:ään. :)

Edit:

Njuu, mietikin että jotain unohtui kun postasin.

Intel Core 2 Duo E6400 @ 2.14 GHz
NVIDIA GeForce 7600GT 256Mb
WinXp
Nabixy
Member
Posts: 51
Joined: Mon Aug 27, 2007 10:22 pm

Re: ChaosBasic [techdemo02]

Post by Nabixy »

Fps.log kertoilee, että keskiarvo(ko) oli jotain tälläistä: 966.777. Siinä se heitteli aika tasaisesti n. 880-1050 välilllä. Mitään muita ihmeellisempiä toimintoja ei samaan aikaan ollut käynnissä. Täytyy myöntää, että olen yllättynyt tuloksista...

Teknisiä tietoja:
-AMD 64 3000+
-Gigabyte Radeon X800 XL
ja luonnollisesti:
-Win XP pro sp2
Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Astigma »

Dibalo wrote:Eli tuo tekniikkademo on tietenkin vain grafiikkaenginen nopeudesta. Koodi on vielä C++:aa, mutta suunnittelemallani syntaksilla samainen demo hoituisi ChaosBasicilla suurin piirtein seuraavasti:
Sama koodi löytyy myös täältä: http://mureakuha.com/paste/?5f1244cc79d ... b5b5a73bd5
Koodissa saattaa olla typoja, mutta pääpiirteittäin asia tulee varmasti selväksi.

Mitä mieltä olette? Muutosehdotuksia? Ruusuja ja risuja?
Pari ajatusta poksahteli aivoistani koodia lukiessa:
- Onko integer "oletustietotyyppi"? Koska koodissa esimerkiksi Var screenw = 800 ja Var screenh = 600 eivät saa mitään tietotyyppiä?
- Kai syntaksissa on muitakin kommenttimerkkejä kuin #? // ja /* */ mahdollisesti?
- Saako olioiden metodeja kutsua myös sulkujen kanssa? Esim. cow.Load("cow.png")
- Josta tulikin mieleen, missä on Load-metodi cow-luokasta? Vai olitko jotenkin ajatellut, että cow-luokka on jonkinlainen implikaatio Image-luokasta?
- Onko perintä ja abstraktit luokat mahdollisia?
- Hiukan ristiriitaista tuo, että joissakin kutsuissa on sulut kirjoitettuna, mutta joissakin ei. Järkevää olla sama linja koko syntaksissa?
- Eipä muuta.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: ChaosBasic [techdemo02]

Post by anttipanda »

Josta tulikin mieleen, missä on Load-metodi cow-luokasta? Vai olitko jotenkin ajatellut, että cow-luokka on jonkinlainen implikaatio Image-luokasta?
No tuossa koodissa rivillä 53 luodaan Image-tyypin olio cow, eli sieltähän se Load putkahtaa: Var cow As Image = New Image
Ei Cow-luokalle tarvitan omaa load-metodia, sillä Initissä annetaan kuva parametrina.
c.Init( pos, vel, rot, scale ) # funktion voi ympäröidä suluilla, vaikkei se palauttaisikaan arvoa
Ps, onko tuossa pastebinin koodissa virhe? Cow.Init:in parametrilista on "Var _pos As Vector, Var _vel as Vector, Var i As Image, Var _rot As Float, Var _scale As Float "
ja tuossa kutsussa ikäänkuin uupuu se Image-parametri :)
Hiukan ristiriitaista tuo, että joissakin kutsuissa on sulut kirjoitettuna, mutta joissakin ei. Järkevää olla sama linja koko syntaksissa?
Noudattaa Basic-tyyliä, muissakaan VB-kielissä sulkuja ei ole pakko käyttää kaikissa tapauksissa.

itse jotenkin karsastan basiceja, koska globaalille alueelle voidaan pistää sekaisin kaikkea mahdollista tyyppimäärittelyistä ajettavaan koodiin. Ja kaiken lisäksi tuossakin esimerkkikoodissa luokan toimintaa, periaatteessa täysin, ohjaavat globaalit muuttujat. Huhhuh. No jokainen koodaa sillä minkä näkee hyväksi.
OoO
Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Astigma »

anttipanda wrote:
Josta tulikin mieleen, missä on Load-metodi cow-luokasta? Vai olitko jotenkin ajatellut, että cow-luokka on jonkinlainen implikaatio Image-luokasta?
No tuossa koodissa rivillä 53 luodaan Image-tyypin olio cow, eli sieltähän se Load putkahtaa: Var cow As Image = New Image
Ei Cow-luokalle tarvitan omaa load-metodia, sillä Initissä annetaan kuva parametrina.
Ai, totta... en kattonut koodia tarpeeksi tarkkaan. Katsoin vain, että on cow-luokka ja sitten luulin että cow muuttuja sisältää siitä luokasta luodun olion, mutta eipä asia näin ollutkaan.
anttipanda wrote:
Hiukan ristiriitaista tuo, että joissakin kutsuissa on sulut kirjoitettuna, mutta joissakin ei. Järkevää olla sama linja koko syntaksissa?
Noudattaa Basic-tyyliä, muissakaan VB-kielissä sulkuja ei ole pakko käyttää kaikissa tapauksissa.
Onko aina järkevää noudattaa perinteisiä tyylejä, jos niitä rikkomalla päästään parempaan lopputulokseen?
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: ChaosBasic [techdemo02]

Post by anttipanda »

Astigma wrote:Onko aina järkevää noudattaa perinteisiä tyylejä, jos niitä rikkomalla päästään parempaan lopputulokseen?
No ei omasta mielestänikään, mutta tuo asia ei ole minun päätettävissäni :)
OoO
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Dibalo »

Kiitoksia palautteesta! Tässä vastauksia muutamaan kysymykseen:
- Onko integer "oletustietotyyppi"? Koska koodissa esimerkiksi Var screenw = 800 ja Var screenh = 600 eivät saa mitään tietotyyppiä?
Kyllä. Integer on oletuksena muuttujien määrittelyssä. Toisinsanoen seuraavat rivit vastaavat täysin samaa asiaa:

Code: Select all

Var i = 2
Var i As Integer = 2
- Kai syntaksissa on muitakin kommenttimerkkejä kuin #? // ja /* */ mahdollisesti?
Kyllä. // on ainakin. Multirivikommentti-merkki saattaa olla erilainen kuin /* */, mutta sekin on mukana.
- Saako olioiden metodeja kutsua myös sulkujen kanssa? Esim. cow.Load("cow.png")
Kyllä. Pääsääntö on, että ne funktiot jotka palauttavat arvon, täytyy kutsua sulkujen kanssa. Niistä funktioista, jotka eivät palauta arvoa (määritetty As Void), voidaan halutessa jättää sulut pois. Sulkujen käyttö on kuitenkin sallittua syntaksissa. Käyttö on makuasia
- Josta tulikin mieleen, missä on Load-metodi cow-luokasta? Vai olitko jotenkin ajatellut, että cow-luokka on jonkinlainen implikaatio Image-luokasta?
Kieli on ns. case sensitive eli "cow" ja "Cow" ovat eri asia. "Cow" on luokka, "cow" on taas muuttuja joka on tyyppiä Image (josta tuo Load-metodi tulee). Täytyy myöntää, ettei ollut järkevin tapa nimetä muuttujat minulta.
- Onko perintä ja abstraktit luokat mahdollisia?
Perintä on. Abstaktit eivät ole. Harkitsen kuitenkin polymorfismia (virtuaalifunktiot voivat olla tekemättä mitään). Polymorfismia voi harrastaa myös ilman puhtaita virtuaalifunktioita. ;)
- Hiukan ristiriitaista tuo, että joissakin kutsuissa on sulut kirjoitettuna, mutta joissakin ei. Järkevää olla sama linja koko syntaksissa?
Selitinkin asian jo tuossa aikaisemmin.
Ps, onko tuossa pastebinin koodissa virhe? Cow.Init:in parametrilista on "Var _pos As Vector, Var _vel as Vector, Var i As Image, Var _rot As Float, Var _scale As Float "ja tuossa kutsussa ikäänkuin uupuu se Image-parametri
Hyvä huomio. Unohtunuthan tuo on sieltä... 8-)
itse jotenkin karsastan basiceja, koska globaalille alueelle voidaan pistää sekaisin kaikkea mahdollista tyyppimäärittelyistä ajettavaan koodiin. Ja kaiken lisäksi tuossakin esimerkkikoodissa luokan toimintaa, periaatteessa täysin, ohjaavat globaalit muuttujat. Huhhuh. No jokainen koodaa sillä minkä näkee hyväksi.
Taas hyvä huomio! Itseasiassa tuosta minulta uupuu taas pari asiaa. Globaalien muuttujien eteen tulee ehdottomasti laittaa Global-avainsana. Muuttujien määrittely menisi siis näin:

Code: Select all

Global Var screenw = 800
Global Var screenh = 600
Global Var delta_time As Float = 0.0
Var mapOp As Float = 0.5                  # näitä ei tarvitse määrittää globaaleiksi koska ei käytetä funktiossa
Var textOp As Float = 1.0
Var cowOp As Float = 1.0
ChaosBasic on scope-riippuvainen. Et voi siis luodan jossain looppien kiemuroissa muuttujaa ja sen jälkeen pyytää saman muuttujan arvoa aivan toisessa kohtaa koodia. Globaalit muuttujat on sen sijaan pieni outolintu, sillä ChaosBasic-kääntäjä käy koodin kahdesti läpi. Tällöin luetaan luokat, niiden funktioiden ja muttujien määrittely, funktioiden määrittely ja globaalit muuttujat. Tämän takia globaali muuttuja voidaan "määrittää" vaikka koodin viimeisellä rivillä, mutta sitä voidaan käyttää koodin ensimmäisellä rivillä. Globaalin muuttujan saama arvo ei kuitenkaan astu voimaan kuin vasta kun koodi tulee "alustuskohtaan". Tämän vuoksi Globaalit olisi hyvä määrittää koodin alussa. Tarkoitan tätä:

Code: Select all

Print glb #tulostaa 0
Global Var glb = 4
Print glb #tulostaa 4
Hieman monimutkaista, täytyy myöntää, ja olen siitä pahoillani. Systeemi kuitenkin pysyy tuollaisena, ainakin jonkun aikaa.
The darkest spells can be found from
http://tunkkaus.blogspot.fi
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: ChaosBasic [techdemo02]

Post by anttipanda »

Perintä on. Abstaktit eivät ole. Harkitsen kuitenkin polymorfismia (virtuaalifunktiot voivat olla tekemättä mitään). Polymorfismia voi harrastaa myös ilman puhtaita virtuaalifunktioita.
No periaatteessa jonkinasteiseen polymorfismiin riittää rajapintojen käyttö. Eli tyyppien pitäisi voida toteuttaa yhteinen rajapintamäärittely, käytännössä periä yhteisestä rajapintatyypistä.
Jos perintä on mahdollista, metodien override on ilmeisesti kuitenkin mahdollista, vaikka virtuaaleja ei olekaan (vai oliko kyse vain puhtaasti virtuaalisista eli abstrakteista metodeista)?
ChaosBasic on scope-riippuvainen. Et voi siis luodan jossain looppien kiemuroissa muuttujaa ja sen jälkeen pyytää saman muuttujan arvoa aivan toisessa kohtaa koodia. Globaalit muuttujat on sen sijaan pieni outolintu, sillä ChaosBasic-kääntäjä käy koodin kahdesti läpi. Tällöin luetaan luokat, niiden funktioiden ja muttujien määrittely, funktioiden määrittely ja globaalit muuttujat. Tämän takia globaali muuttuja voidaan "määrittää" vaikka koodin viimeisellä rivillä, mutta sitä voidaan käyttää koodin ensimmäisellä rivillä. Globaalin muuttujan saama arvo ei kuitenkaan astu voimaan kuin vasta kun koodi tulee "alustuskohtaan". Tämän vuoksi Globaalit olisi hyvä määrittää koodin alussa. Tarkoitan tätä:
Tuollainen lähetymistapa on aika vaarallinen. Muuttujaa ei ole mitään järkeä käyttää ennenkuin se on alustettu, joten periaatteessa kääntäjän ei tarvisi päästää tuollaista lävitse. Muuttuja on kuitenkin ennen alustustaan periaatteessa tilassa jota ohjelmoija ei halua eikä odota (nolla, null?).
OoO
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: ChaosBasic [techdemo02]

Post by vilQuri »

Kaikki testit toimivat minulla niin kuin kuvailitkin. Toivottavasti päästään pian näkemään ensimmäinen ChaosBasic :mrgreen:
atomimalli
Moderator
Moderator
Posts: 227
Joined: Wed Aug 29, 2007 3:55 pm

Re: ChaosBasic [techdemo02]

Post by atomimalli »

Eikös globaalien kanssa cbssäkin menetellä noin? ainakin minun muistaakseni...

ps. tälle integroidulle näyttikselle ei oikein meinaa löytyä kunnon ajureita.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Dibalo »

anttipanda wrote:No periaatteessa jonkinasteiseen polymorfismiin riittää rajapintojen käyttö. Eli tyyppien pitäisi voida toteuttaa yhteinen rajapintamäärittely, käytännössä periä yhteisestä rajapintatyypistä.
Jos perintä on mahdollista, metodien override on ilmeisesti kuitenkin mahdollista, vaikka virtuaaleja ei olekaan (vai oliko kyse vain puhtaasti virtuaalisista eli abstrakteista metodeista)?
Override on mahdollista. Jos toteutan polymorfismin, kaikki funktiot ovat automaattisesti "virtuaalisia". En halua käydä sotkemaan aloittelevia koodaajia niin monimutkaisilla asioilla. Puhtaista virtuaalifunktioista en vielä tiedä, toteuttaisiko niitä ollenkaan... Pitänee vielä tutkailla asiaa.

Minulla on myös sekä hyviä että huonoja asioita.
Huonot: Itselläni on melkoinen rahapula (opiskelija kun olen), joten pieni lisätienesti olisi poikaa. Siksi ajattelin tehdä Kaaoksesta maksullisen. Hinta tulisi olemaan noin kympin luokkaa. Jos maksua ei halua maksaa, voi Kaaoksella koodata siitä huolimatta. Ruudun yläkulmassa on vain ChaosBasic-logo ja (tulevan) kotisivun osoite.
Hyvät: Tulkin logiikkapuolen koodaus sujuu todella hyvin. Uskoisin, että lähiaikoina (noin parin viikon sisällä) saadaan jo grafiikkaa itse ChaosBasic-koodilla! 8-)
The darkest spells can be found from
http://tunkkaus.blogspot.fi
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: ChaosBasic [techdemo02]

Post by koodaaja »

Hyvin toimi techdemo, 300 pintaan oli FPS. Koneessa on Pentium III ja Ati Radeon 1600XT.

Tuon kartan piirtojärjestys vähän venkoili välillä. Ei siis piirtynyt aivan oikein. Vika näkyi parhaiten laittamalla se täysin näkyväksi.
Jalmari91
Newcomer
Posts: 2
Joined: Thu Nov 15, 2007 6:47 pm

ChaosBasic [techdemo02]

Post by Jalmari91 »

diablo wrote:Itselläni on melkoinen rahapula (opiskelija kun olen), joten pieni lisätienesti olisi poikaa. Siksi ajattelin tehdä Kaaoksesta maksullisen. Hinta tulisi olemaan noin kympin luokkaa.
Miksi kukaan siitä maksaisi 10 euroa, kun tuskin se on sen parempi kuin muutkaan kielet. Mutta eihän se ole tyhmä, joka pyytää vaan se joka maksaa.
m1c
Member
Posts: 65
Joined: Tue Aug 28, 2007 5:10 pm
Location: \o

Re: ChaosBasic [techdemo02]

Post by m1c »

Jalmari91 wrote:
diablo wrote:Itselläni on melkoinen rahapula (opiskelija kun olen), joten pieni lisätienesti olisi poikaa. Siksi ajattelin tehdä Kaaoksesta maksullisen. Hinta tulisi olemaan noin kympin luokkaa.
Miksi kukaan siitä maksaisi 10 euroa, kun tuskin se on sen parempi kuin muutkaan kielet. Mutta eihän se ole tyhmä, joka pyytää vaan se joka maksaa.
Vai niin? Itse ainakin olisin valmis maksamaan 3D-kiihdytetystä grafiikasta, jota ohjataan yhtä helpolla (viittaan Dibalon esimerkkiin, jossa näytetään miltä tuon esimerkin koodi tulisi näyttämään) ja tehokkaammalla kielellä kuin CoolBasic. Tuo kymppi on aika nimellinen korvaus moisesta.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: ChaosBasic [techdemo02]

Post by koodaaja »

Pyytää vaikka joululahjaksi, niin siirtyy raha vanhuksilta nuorisolle. Sitäpaitsi on aivan ymmärrettävää, että joku haluaa suuren urakan jälkeen pienoisen palkinnon. ( ja onhan näitä ilmaisia kieliä, mutta ChB vaikuttaisi tähtäävän CB-tyyppisesti helppoon ja tehokkaaseen kieleen, mikä on aika voittamaton yhdistelmä. olisihan CB:kin basiccien joukossa aikalailla omaa luokkaansa, jos vain tehoja saataisiin lisää )
Jalmari91
Newcomer
Posts: 2
Joined: Thu Nov 15, 2007 6:47 pm

ChaosBasic [techdemo02]

Post by Jalmari91 »

Miten toi kääntäminen muuten tapahtuu? eli käännetäänkö se suoraan konekielelle vai käännetäänkö se jollakin muulla tavalla.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: ChaosBasic [techdemo02]

Post by koodaaja »

Jalmari91 wrote:Miten toi kääntäminen muuten tapahtuu? eli käännetäänkö se suoraan konekielelle vai käännetäänkö se jollakin muulla tavalla.
Eikös se näin ollut, että ChB tulkataan C++:lle, josta se sitten käännetään? Eli se ei varsinaisesti ole oma kieli, vaan "wrapperi" tai jotain siihen suuntaan.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic [techdemo02]

Post by Dibalo »

ChB on oikea tulkattava ohjelmointikieli. Toisin sanoen sen koodi käännetään omassa kääntäjässä, joka luo uniikin tavukoodin. Tätä vain ChaosBasic:in exet osaavat käyttää. Täysin samalla tavalla kuin esimerkiksi CB.
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Post Reply