CoolBasic Classic: Kehitysuutisten kommentit
-
- Devoted Member
- Posts: 718
- Joined: Wed Nov 03, 2010 7:56 pm
- Location: Joku piste pohjoisessa.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Millä kielellä cbc taas tehtiinkään?
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Re: CoolBasic Classic: Kehitysuutisten kommentit
C# , ja olisit kyl itekki voinu selata muutaman sivun taaksepäi tätä topikkianaputtelija wrote:Millä kielellä cbc taas tehtiinkään?
-
- Tech Developer
- Posts: 650
- Joined: Mon Aug 27, 2007 9:51 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
Itseasiassa vain Cool VES -välikielen kääntäjän kirjoittaa Zerppa C#:lla. Pelimoottoritoiminnallisuuden tarjoava Cool VES taasen tehdään C++:lla - suuren osan siitä me techit.Frozen wrote:C# , ja olisit kyl itekki voinu selata muutaman sivun taaksepäi tätä topikkianaputtelija wrote:Millä kielellä cbc taas tehtiinkään?
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES
CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Tech-kehittäjä
CoolBasic Classic, Cool VES
CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
Niin kuin Spuntte sanoikin, käytössä on sekä C# että C++:Frozen wrote:C# , ja olisit kyl itekki voinu selata muutaman sivun taaksepäi tätä topikkianaputtelija wrote:Millä kielellä cbc taas tehtiinkään?
- Runtime ja pelimoottori: C++, cross-platform
- Koodieditori: C# 4.0, .NET Framework 4.0, Windows Presentation Foundation 4.0 (Linux-vastine toteutetaan todnäk)
- CoolBasic Classic kääntäjä: C# 4.0, .NET Framework 3.5, konsolisovellus (toimii Monossa, ts. Linux/MacOS-tuki)
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Re: CoolBasic Classic: Kehitysuutisten kommentit
Kun kirjoitat nykyisessä CB:ä on esim tällaisen koodin:
Niin tuon muuttujanimen on aina rasittava kirjoittaa seuraavan operaattorin jälkeen uudestaan jos se on vähänkin pidempi. Nii olisi helpompaa kun oisi sellainen komento joka katsoo ja ehtolausekkeessa viimmeksi käydyn muuttujan nimen.
Toiminta tapa olisi tällainen:
Ja koska koodiahan luetaan aina pelkästään eteenpäin niin tässä toinen esimerkki:
Code: Select all
If Muuttuja_AutoCheckPoint > 1 And Muuttuja_AutoCheckPoint < 20 And Muuttuja_AutoCheckPoint <> 12 Then
Toiminta tapa olisi tällainen:
Code: Select all
If Muuttuja_AutoCheckPoint > 1 And PrevVar < 20 And PrevVar <> 12 Then
Code: Select all
If Muuttuja_AutoCheckPoint > 1 And PrevVar < 20 And PrevVar <> 12 And Jalankulkija_X = 20 Or PevVar = 100 Or PrevVar = 10 Then
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Toisaalta voinet myös käyttää väliaikaista muuttujaa kuten vaikkapa "n"MaGetzUb wrote:Kun kirjoitat nykyisessä CB:ä on esim tällaisen koodin:Niin tuon muuttujanimen on aina rasittava kirjoittaa seuraavan operaattorin jälkeen uudestaan jos se on vähänkin pidempi. Nii olisi helpompaa kun oisi sellainen komento joka katsoo ja ehtolausekkeessa viimmeksi käydyn muuttujan nimen.Code: Select all
If Muuttuja_AutoCheckPoint > 1 And Muuttuja_AutoCheckPoint < 20 And Muuttuja_AutoCheckPoint <> 12 Then
Code: Select all
Dim n As Integer
If n > 1 And n < 20 And n <>12 Then
...
(Eikä siinä kirjoittamisessa nyt niin kauaa mene.)
Re: CoolBasic Classic: Kehitysuutisten kommentit
No ehkäpä tuokin on ihan hyvä keino. Mutta ns. integroidulla komennolla/muuttujalla olisi paljon selvempää muille koodareille jos jakaa koodin netis.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic Classic: Kehitysuutisten kommentit
En ole kyllä nähnyt kellään tällaista ongelmaa käytännön tilanteissa, joten tuskinpa se on niin vakava ongelma että vaatii yhden mahdollisen muuttujanimen vähemmän.MaGetzUb wrote:No ehkäpä tuokin on ihan hyvä keino. Mutta ns. integroidulla komennolla/muuttujalla olisi paljon selvempää muille koodareille jos jakaa koodin netis. :D
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: CoolBasic Classic: Kehitysuutisten kommentit
Editoriin oli muistaakseni lupailtu tabitäydennystä, joka ajaa saman asian paremmin.
Mutta muistakaamme, että tämä topic on yksinomaan kehitysuutisten kommenteille, ehdotuksia voi ladella CoolBasic Classicin esittelyketjuun.
Mutta muistakaamme, että tämä topic on yksinomaan kehitysuutisten kommenteille, ehdotuksia voi ladella CoolBasic Classicin esittelyketjuun.
Re: CoolBasic Classic: Kehitysuutisten kommentit
Tuosta uusimmasta blogipostista: Paljonko tuo "short-circuit"-toiminta mahtaa nopeuttaa ohjelman toimintaa? Tietenkinhän se riippuu siitä, minkälainen tuo jälkiosa tuosta if-lauseesta on, mutta esim seuraavanlaisella pätkällä:
Pitääpä sitten ruveta optimoimaan koodia laittamalla kevyet funktiot if-lauseiden alkuun
Code: Select all
If a = 0 and b = 0 Then
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
Juuri tämä.axu wrote:Pitääpä sitten ruveta optimoimaan koodia laittamalla kevyet funktiot if-lauseiden alkuun
Esimerkiksi lauseke:
Code: Select all
If raskasFunktio = 1 And kevytFunktio = 2 Then
Code: Select all
If kevytFunktio = 2 And raskasFunktio = 1 Then
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Re: CoolBasic Classic: Kehitysuutisten kommentit
Ahaa-elämys: käsiteltävien bittien määrän pienentyessä suoritusnopeus kasvaa(?)Zero wrote:
Jos, niin eikö sitten ole sama, jos kirjoittaisi:
Code: Select all
If r = 2 And k = 3 Then
Code: Select all
If k = 3 And r = 2 Then
Perustelut:
2[dec] = 10[bin]
3[dec] = 11[bin]
(sama määrä vertailtavia bittejä, toisin kuin zeron esimerkissä {1 ja 10})
Re: CoolBasic Classic: Kehitysuutisten kommentit
Et ihan ymmärtänyt pointtia. Noilla bittien määrillä ei ole tässä mitään merkitystä (oikeastaan koko luvuilla ei ollut merkitystä zeron esimerkissä (ja ota huomioon, että integer on 32-bittinen vaikka siitä ei käytettäisi kuin kahta bittiä)).DJ-Filbe wrote:Ahaa-elämys: käsiteltävien bittien määrän pienentyessä suoritusnopeus kasvaa(?)
Jos, niin eikö sitten ole sama, jos kirjoittaisi:kuinCode: Select all
If r = 2 And k = 3 Then
? Tuleeko noista yhtä nopeita?Code: Select all
If k = 3 And r = 2 Then
Perustelut:
2[dec] = 10[bin]
3[dec] = 11[bin]
(sama määrä vertailtavia bittejä, toisin kuin zeron esimerkissä {1 ja 10})
Zeron esimerkki ilman numeroita (eli funktiot palauttavat booleanin):
Code: Select all
If raskasFunktio And kevytFunktio Then
Code: Select all
If kevytFunktio And raskasFunktio Then
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: CoolBasic Classic: Kehitysuutisten kommentit
Eli toisin sanoen esimerkiksi ObjectsOverlap kannattaa laittaa vasta muuttuja = 1:n jälkeen, vai ymmärsinkö väärin?
Re: CoolBasic Classic: Kehitysuutisten kommentit
Ymmärsit oikein...Chaosworm wrote:Eli toisin sanoen esimerkiksi ObjectsOverlap kannattaa laittaa vasta muuttuja = 1:n jälkeen, vai ymmärsinkö väärin?
Minä olin luullut, että se menee nytkin tollein ilmoitus tuli suurena pettymyksenä
-
- Devoted Member
- Posts: 594
- Joined: Tue Sep 30, 2008 4:30 pm
- Location: Ruudun toisella puolella
Re: CoolBasic Classic: Kehitysuutisten kommentit
eikös nyky cb.llä voi tehdä tuon näin:
Code: Select all
if muuttuja=1 then
if raskasfunktio then
endif
Re: CoolBasic Classic: Kehitysuutisten kommentit
Muistaakseni hidastuu; AFAIK sana eli natiivi kokonaisluku (16 tai 32 tai 64 bittiä) on nopein käsiteltävä.DJ-Filbe wrote:Ahaa-elämys: käsiteltävien bittien määrän pienentyessä suoritusnopeus kasvaa(?)
Re: CoolBasic Classic: Kehitysuutisten kommentit
Voi, ja And-operaattorin kanssa lieneekin makuasia, kumpaa toteutustapaa käyttää.Wingman wrote:eikös nyky cb.llä voi tehdä tuon näin:Code: Select all
if muuttuja=1 then if raskasfunktio then endif
Or tuo taas asiaan oman lisänsä:
Code: Select all
If funktio1() Or funktio2() then
...
EndIf
Re: CoolBasic Classic: Kehitysuutisten kommentit
Tulipa mieleen, että meidän ohjelmoinnin opettaja ei ole maininut asiasta mitään.. Vaikka hän selitti nuo (loogiset) And ja Or operaattorit bitti tasolta lähtien.
Ottakaa huomioon myös tämä: (sama asia minkä zerppa kertoi jo blogissaan)
Eli jos funktio muokkaa ulkopuolelta jotain globaalia dataa on PAKKO käyttää alempaa tapaa, jos haluaa että funktiota voidaan käyttää huoletta short-circuit And/Or operaattoreiden seassa. Koodi-esimerkkissä wtffoo-funktio ei käytä globaaleita, ja on näin ns. "aito" matemaattinen funktio.
Ottakaa huomioon myös tämä: (sama asia minkä zerppa kertoi jo blogissaan)
Code: Select all
Global glb_laskuri As integer
Dim laskuri As integer
Dim result As integer
Function wtfbar(x As integer)
glb_laskuri = glb_laskuri + 1
Return glb_laskuri < Rand(x)
EndFunction
Function wtffoo(x As integer, laskuri As integer)
Return laskuri < Rand(x)
EndFunction
// Seuraava toimii short-circuit logiikalla "epävarmasti"
If wtfbar(5) And/Or wtfbar(3)
Print "Tämä ei toimi aina niin kuin ON ajateltu (ÄLÄ KÄYTÄ)"
EndIf
// Ohjelmoija on varmaankin hakenut tätä menettely tapaa:
laskuri = laskuri + 1
result = wtffoo(3, laskuri)
laskuri = laskuri + 1
If wtffoo(5, laskuri) And/Or result
Print "Tämä toimi niin kuin ON ajateltu (OK KÄYTTÄÄ)"
EndIf
Last edited by JATothrim on Mon Feb 07, 2011 2:31 pm, edited 1 time in total.
-On selkeästi impulsiivinen koodaaja joka...
- Zero
- Lead Developer
- Posts: 727
- Joined: Sun Aug 26, 2007 2:30 pm
- Location: Helsinki, Finland
- Contact:
Re: CoolBasic Classic: Kehitysuutisten kommentit
Xor:lle ei ole oikosuljettua versiota koska kummatkin operandit täytyy aina tutkia.
CoolBasic henkilökuntaa
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog
Johtava Suunnittelija
CoolBasic V3, CoolBasic Classic
http://www.coolbasic.com/blog