CoolBasic V3: Esittely

CoolBasiciin yleisesti liittyvä keskustelu.
Locked
User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: CoolBasic? kuollut? eheei ole...

Post by KillBurn » Tue Aug 19, 2008 5:05 pm

Zero wrote:
Grandi wrote:Heh, et varmaan korjaa tätä, mutta löysin melko kriittisen bugin: CoolBasic hyväksyy seuraavanlaisen rivin koodia:

Code: Select all

If 1 Then a=0 Then a=1 Then a=2 Then a=3 Then a=4 Then a=5 Then a=6 Else a=0 Else a=1 Else a=2 Else a=3 Else a=4
Eli 7 then:iä ja 5 elseä O_o'
Mielenkiintoista ;) Korjattu versiossa 3.
Toi "Bugi" on toisinaan ollut käytössä. :D
Sumu Games: Sam, Ur eye!

Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Astigma » Tue Aug 19, 2008 6:00 pm

KillBurn wrote:
Zero wrote:
Grandi wrote:Heh, et varmaan korjaa tätä, mutta löysin melko kriittisen bugin: CoolBasic hyväksyy seuraavanlaisen rivin koodia:

Code: Select all

If 1 Then a=0 Then a=1 Then a=2 Then a=3 Then a=4 Then a=5 Then a=6 Else a=0 Else a=1 Else a=2 Else a=3 Else a=4
Eli 7 then:iä ja 5 elseä O_o'
Mielenkiintoista ;) Korjattu versiossa 3.
Toi "Bugi" on toisinaan ollut käytössä. :D
Hmm, ei ainakaan äkkiseltään tule mieleen, missä tuota bugia voisi hyödyntää? Eli en usko, että kannattaa käyttää, koska saman asian voi aina tehdä jotenkin muuten - jopa helpommin.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Koodiapina » Tue Aug 19, 2008 6:23 pm

Näin voi hyödyttää:

Code: Select all

    If 1 Then a = 5 Then b = 8 then c = 2
    Print a+", "+b+", "+c
    WaitKey 
Saman saa tietenkin selkeämminkin.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

Astigma
Moderator
Moderator
Posts: 195
Joined: Sun Aug 26, 2007 5:56 pm
Location: Kuopio, Finland
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Astigma » Tue Aug 19, 2008 6:37 pm

Niin siis, tuohan on sama kuin

Code: Select all

If 1 Then a = 5 : b = 8 : c = 2
Print a+", "+b+", "+c
WaitKey 
tai

Code: Select all

If 1 Then
a = 5
b = 8
c = 2 
EndIf
Print a+", "+b+", "+c
WaitKey

User avatar
Myst!c
Advanced Member
Posts: 259
Joined: Fri Dec 21, 2007 12:49 pm
Location: Kemi

Re: CoolBasic? kuollut? eheei ole...

Post by Myst!c » Tue Aug 19, 2008 8:39 pm

Astigma wrote:Niin siis, tuohan on sama kuin

Code: Select all

If 1 Then a = 5 : b = 8 : c = 2
Print a+", "+b+", "+c
WaitKey 
tai

Code: Select all

If 1 Then
a = 5
b = 8
c = 2 
EndIf
Print a+", "+b+", "+c
WaitKey
Ei, siinä ei ole ":" merkkejä
Every Legend Has A Start!

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: CoolBasic? kuollut? eheei ole...

Post by koodaaja » Tue Aug 19, 2008 8:45 pm

Jos sen yhdelle riville tunkee niin toki on.

Semmoista ajattelin sanoa, että CB:hen olisi kiva saada += -tyyppiset operaattorit, tuskin ovat kovin vaikeita toteuttaa (?) mutta yksinkertaistaisivat koodia kummasti.

User avatar
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by temu92 » Tue Aug 19, 2008 8:47 pm

Joo ja ++ ja -- jos lisätään/vähennetään vain 1

User avatar
Alligaattori
Active Member
Posts: 135
Joined: Fri Mar 07, 2008 9:49 pm

Re: CoolBasic? kuollut? eheei ole...

Post by Alligaattori » Tue Aug 19, 2008 9:58 pm

C++:ssa on mahdollista antaa 8-bittiselle kokonaisluvulle arvo laittamalla heittomerkkien väliin merkki, jonka ASCII-arvo syötetään muuttujaan. Tällä tavalla:

Code: Select all

char x = 'h'; // x-muuttujan arvoksi tulee 104
Voisiko CoolBasiciin laittaa samanlaisen ominaisuuden?

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Koodiapina » Tue Aug 19, 2008 11:23 pm

Eikös tää riitä?

Code: Select all

x = asc("h")
Sitä paitsi charit sukkaa.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
Zero
Lead Developer
Lead Developer
Posts: 725
Joined: Sun Aug 26, 2007 2:30 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Zero » Wed Aug 20, 2008 10:42 am

bool cppNerd=!false; wrote:C++:ssa on mahdollista antaa 8-bittiselle kokonaisluvulle arvo laittamalla heittomerkkien väliin merkki, jonka ASCII-arvo syötetään muuttujaan. Tällä tavalla:

Code: Select all

char x = 'h'; // x-muuttujan arvoksi tulee 104
Voisiko CoolBasiciin laittaa samanlaisen ominaisuuden?
Harkinnassa. Heittomerkki ei ole enää kommentti, joten se "vapautuu" muuhun käyttöön. Vaihtoehtoja on muutama:

Code: Select all

"j".Asc()
'j'
String.Asc("j")
...joista tod. näk vaihtoehto 1 ainakin toteutuu. Nykyisen kääntäjän runkoon on lisäksi hyvin hyvin helppo pultata tuo 2. tapa kiinni. Kysymys onkin nyt siitä halaunko tällaisen ominaisuuden CoolBasicin syntaksiin vai en.
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic

http://www.coolbasic.com/blog

User avatar
Alligaattori
Active Member
Posts: 135
Joined: Fri Mar 07, 2008 9:49 pm

Re: CoolBasic? kuollut? eheei ole...

Post by Alligaattori » Wed Aug 20, 2008 4:10 pm

Grandi wrote:Eikös tää riitä?

Code: Select all

x = asc("h")
Sitä paitsi charit sukkaa.
Kyllähän se riittää, mutta esittelemäni tapa ajaa saman asian, ja (mielestäni) se on selkeämpi tapa.

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: CoolBasic? kuollut? eheei ole...

Post by MaGetzUb » Wed Aug 20, 2008 6:45 pm

Anteeksi, että tällä tavalla kirjoottelen offia, mutta puhutteko te nyt uudesta cb versiosta, vai cb v3:sta? :) En ole ollut oikein hereillä tällä alueella... :roll:
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: CoolBasic? kuollut? eheei ole...

Post by TheDuck » Wed Aug 20, 2008 6:49 pm

Uusi cb versio = CBv3
^^

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Koodiapina » Wed Aug 20, 2008 6:56 pm

Tulevasta versiosta puhumme. Nykyistä ei muistaakseni enää kehitetä.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: CoolBasic? kuollut? eheei ole...

Post by jabanii » Wed Aug 20, 2008 7:38 pm

koodaaja wrote:Jos sen yhdelle riville tunkee niin toki on.

Semmoista ajattelin sanoa, että CB:hen olisi kiva saada += -tyyppiset operaattorit, tuskin ovat kovin vaikeita toteuttaa (?) mutta yksinkertaistaisivat koodia kummasti.
Tämä on jo mahdollista + -operaattorilla.

Esim.

Code: Select all

var = 5    'var on 5
var + 1    'var on 5+1=6

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Koodiapina » Wed Aug 20, 2008 7:42 pm

jabanii wrote:Tämä on jo mahdollista + -operaattorilla.
Mutta se ei suoriudu esim. tästä:

Code: Select all

a + (a*4)
Tuo += tukisi käsittääkseni myös tuon näköisiä ratkaisuja.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by SPuntte » Wed Aug 20, 2008 8:50 pm

jabanii wrote:
koodaaja wrote:Jos sen yhdelle riville tunkee niin toki on.
Semmoista ajattelin sanoa, että CB:hen olisi kiva saada += -tyyppiset operaattorit, tuskin ovat kovin vaikeita toteuttaa (?) mutta yksinkertaistaisivat koodia kummasti.
Tämä on jo mahdollista + -operaattorilla.
Esim.

Code: Select all

...
Minusta tuo nykyisen CBn +-operaattorin erikoiskäytäntöö on typerä, koska se on ristiriitainen. Eräissä muissa kielissä kyseinen lauseke olisi ilmaus, joka vain palauttaisi arvon (tässä tapauksessa 6). On selvempää kirjoittaa a = a + 1 (ajattelematta sitä matemaattisena yhtälönä, sehän on sijoitus, ei yhtäsuuruus!) tai (tulevaisuudessa) a += 1. Lisäksi Zeron bloqin mukaan tuo esitetty koodi optimoituisi uudella kääntäjällä seuraavasti:

Code: Select all

var = 5    'var on 5
var + 1    'var on 5+1=6
=>

Code: Select all

var = 5    'var on 5
6    'var on 5+1=6
EDIT:

Zerolle:

Tulinpas sitten uteliaaksi.. >8B

Onko v3:een tulossa mahdollisesti esimerkiksi seuraavia:
- mahdollisuus luoda olioita suoraan kekoon osoittimien avulla
- funktio-osoittimet
- operaattorien ylikuormitus luokkiin

CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX

caje
Tech Developer
Tech Developer
Posts: 16
Joined: Wed Jul 16, 2008 2:04 pm
Location: Stadi

Re: CoolBasic? kuollut? eheei ole...

Post by caje » Thu Aug 21, 2008 9:19 am

Grandi wrote:Tulevasta versiosta puhumme. Nykyistä ei muistaakseni enää kehitetä.
Eihän nykyisen lähdekoodia taida olla enää olemassakaan :)
CoolBasic henkilökuntaa
Tech-kehittäjä
Cool Developer

User avatar
Zero
Lead Developer
Lead Developer
Posts: 725
Joined: Sun Aug 26, 2007 2:30 pm
Location: Helsinki, Finland
Contact:

Re: CoolBasic? kuollut? eheei ole...

Post by Zero » Thu Aug 21, 2008 10:36 am

SPuntte wrote:Onko v3:een tulossa mahdollisesti esimerkiksi seuraavia:
- mahdollisuus luoda olioita suoraan kekoon osoittimien avulla
- funktio-osoittimet
- operaattorien ylikuormitus luokkiin
mahdollisuus luoda olioita suoraan kekoon osoittimien avulla
Oliot ovat muuttujia, jotka sisältävät osoittimen varsinaiseen tietoon. Kun luot uuden instanssin, varataan keosta (heapista) tai pinosta tilaa normaalille kokonaislukumuuttujalle. Pointti on se, että Structit menevät kekoon/pinoon valueina, kun taas oliot menevät viittauksina. Aina. CoolBasicin keko on staattinen ja se varataan ohjelman alussa. Funktioiden sisällä ei kekoa käytetä ollenkaan.

funktio-osoittimet
Tätä ominaisuutta voidaan tarvita esimerkiksi ns. callback-funktioissa. Niiden käyttö voi sinällään jo olla vaarallista, mutta oliokielissä ne ovat erittäin vaarallisia jos ohjelmoija ei tiedä tarkalleen mitä on tekemässä. Mitenkä esimerkiksi luokkafunktio tietää osoittimensa jos sitä ei ole työnnetty pinoon? Tästä syystä esimerkiksi VB.NET:ssä funktio-osoittimien käytön voi bongata ainoastaan AddHandlerillä. Ja koska nekin on sidottu Tapahtumiin, ne pysyvät kurissa. Managed-koodi on päivän sana, ja datakorruption estäminen on yksi sen perimmäisistä tarkoituksista.

Olen ajatellut sallia funktioiden kutsumisen muistiosoitteiden perusteella (winAPI), koska se on hyödyllistä DLL-tiedostojen kanssa. MUTTA funktio-osoittimen kaivamiseen liittyvä operaattori jätetään varmaankin yllämainituista syistä toteuttamatta. Tosin sekään ei estä inline asm -virityksiä joilla se voidaan kiertää.

operaattorien ylikuormitus luokkiin
Tarkoitus olisi esitellä tämä ominaisuus V3:ssa.
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic

http://www.coolbasic.com/blog

User avatar
=Joku=
Active Member
Posts: 184
Joined: Mon Aug 04, 2008 2:26 am

Re: CoolBasic? kuollut? eheei ole...

Post by =Joku= » Sat Aug 30, 2008 11:50 am

Näin nopeasti:http://fi.wikipedia.org/wiki/Coolbasic
CoolBasicin tulevaisuus tällä hetkellä

Coolbasicin kehittäjä jätti Coolbasicin sikseen joksikin aikaa pelatakseen World of Warcraft-nimistä nettipeliä. 26.8.2007 Hän kuitenkin lupasi palata, ja on sen tehnytkin ajoittain.

eli päivitystä wikiin!

Onko mahdollista pistää cb 3d malleja?
*Poistunut foorumilta*

Locked