ChaosBasic - KEHITTÄJIÄ HAKUSESSA!! (sivu 9)

Muu yhteisön välinen keskustelu.
minä

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by minä »

Tein nopeasti elämän pelin kääntämälä suoraan vanhasta cb:n koodistani:

Code: Select all

Var taulu[101,101] As Integer
Var t As Integer
Var mx As Integer
Var my As Integer
Var a As Integer
Repeat
   If a == 1 Then
   For x = 1 To 99
      For y = 1 To 99
         t = 0
         If taulu[x-1,y-1] > 0 Then t=t+1
         If taulu[x,y-1] > 0 Then t=t+1
         If taulu[x+1,y-1] > 0 Then t=t+1
         If taulu[x-1,y] > 0 Then t=t+1
         If taulu[x+1,y] > 0 Then t=t+1
         If taulu[x-1,y+1] > 0 Then t=t+1
         If taulu[x,y+1] > 0 Then t=t+1
         If taulu[x+1,y+1] > 0 Then t=t+1
         If t == 3 And taulu[x,y] == 0 Then taulu[x,y]= -1
         If taulu[x,y] == 1 And t < 2 Then taulu[x,y]= 2
         If taulu[x,y] == 1 And t > 3 Then taulu[x,y]= 2
      Next
   Next
   EndIf
   For x = 0 To 100
      For y = 0 To 100
         If taulu[x,y] == -1 Then taulu[x,y] = 1
         If taulu[x,y] == 2 Then taulu[x,y] = 0
         If taulu[x,y] == 1 Then Screen.Box x*6.4,y*4.8,6.4,4.8
      Next
   Next
   If Key.Hit(KEY_S) Then a=a+1-a*2
   mx=Mouse.X()/6.4
   my=Mouse.Y()/4.8
   If Mouse.Down(0) Then taulu[mx,my]=1
   If Mouse.Down(1) Then taulu[mx,my]=0
   Screen.Text 0,0,"Fps:"+Screen.FPS()
   Screen.Draw
   
Forever
Lisää ja poista soluja hiirellä ja käynnistä tai pysäytä painamalla S
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by MaGetzUb »

Selkis, nyt tuli toine probleema.... Se hitsin asennus ohjelma asensi sen chb:niin C:\Program Files: iin, että jokaane kansio tuli sinne erikseen...
Eli nyt pitää etsiä examples, IDE ja media + manual program files:istä... :/
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dibalo »

Galgoneer ilmoitti aika pahasta bugista: runtime kaatuu, jos yrittää sijoittaa oman luokan oliota funktioon.
Älkää siis tehkö näin ennen seuraava hotfixia. :!:
The darkest spells can be found from
http://tunkkaus.blogspot.fi
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by nevssons »

Bugi tuli!
käytin tällaista koodia:

Code: Select all

// tämä on kommenttirivi - tätä riviä ei suoriteta ohjelmassa
// Screen.AddText tulostaa näytölle sitä seuraavan merkkijonomuuttujan tai -vakion
Screen.Text 0,0,"Hei maailma!"
// päivitetään näyttö (jotta saadaan teksti näkymään)
Screen.Draw
// odottaa, että näppäimistöä painetaan
// Key.Wait() odottaa niin kauan kunnen näppäintä painetaan
Key.Wait()
nyt se pöyrittää vain tota ohjelmaa vaikka koodi on eri!
EDIT:

Enkä saa poistettua ChaosRun.exeä

Last edited by nevssons on Sat Jun 14, 2008 3:41 pm, edited 1 time in total.
Koodarina kohtalainen, henkilönä vittumainen
Image
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dande »

nevssons wrote:Bugi tuli!
käytin tällaista koodia:

Code: Select all

// tämä on kommenttirivi - tätä riviä ei suoriteta ohjelmassa
// Screen.AddText tulostaa näytölle sitä seuraavan merkkijonomuuttujan tai -vakion
Screen.Text  0,0,"Hei maailma!"
// päivitetään näyttö (jotta saadaan teksti näkymään)
Screen.Draw
// odottaa, että näppäimistöä painetaan
// Key.Wait() odottaa niin kauan kunnen näppäintä painetaan
Key.Wait()
nyt se pöyrittää vain tota ohjelmaa vaikka koodi on eri!
EDIT:

Enkä saa poistettua chaosrun exeä

Kun suljet tuon ohjelman ruksista, niin se jää taustalle pyörimään. Sinun pitää sulkea kaikki ChaosRun.exe-prosessit tehtävienhallinnasta (Ctrl+Alt+Del, prosessit-välilehti, ja sieltä suljet kaikki Chaosrun.exe prosessit). Mainitsin tästäkin aiemmin Dibalolle irkissä (taisin olla silloin vielä nikillä j4nn3) Sanoi, että ei ole niin kriittinen, että tulisi ensimmäiseen hotfixiin.

Tämän voi välttää yksinkertaisella tavalla: Älä sammuta ikkunaa Key.Wait()-funktion pyöriessä, vaan paina sitä kuuluisaa Any Keytä
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Koodiapina »

Tosta tulikin mieleeni. Onkos se bugi, kun mun koneella ikkuna ei sulkeudu rastista key.wait() funktion ollessa päällä? Tiedän, että siitä sitä ei kuuluisi sammuttaa kun siinä on se toinen bugi, mutta tämä on tavallaan jo eri bugi.
User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by KillBurn »

Tosi hieno ohjelma jo nyt tosin kaatuu helposti ,mutta eiköhän se asia pian korjaudu,
Sen verran nopeaa tuo päivitys on ollut.
Last edited by KillBurn on Sat Jun 14, 2008 4:34 pm, edited 1 time in total.
Sumu Games: Sam, Ur eye!
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dande »

Grandi wrote:Tosta tulikin mieleeni. Onkos se bugi, kun mun koneella ikkuna ei sulkeudu rastista key.wait() funktion ollessa päällä? Tiedän, että siitä sitä ei kuuluisi sammuttaa kun siinä on se toinen bugi, mutta tämä on tavallaan jo eri bugi.
Voisiko kyseessä olla vain se, että ikkuna jää näkyviin ChaosEditorin ikkunaan, koska se ei päivitä itseään. Kun itse taas tällä versiolla testasin, niin ChaosEditori jäätyy kunnes lopetan tuon prosessin tehtävien hallinnasta. Kokeile vaikka laittaa välissä joku muu ikkuna ChaosEditorin päälle, ja kato pystytkö pyyhkimään tuon ikkunan. Jos se ikkuna todellakin jää siihen, niin sitten en osaa auttaa.
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Jare »

Hyvältä näyttää tämä Chaos. Aloin tekemään tällä tykkipeliä testatakseni kielen ominaisuuksia ja laajuutta. Luokat tuntuvat varsin näppäriltä, mutta toivoisin yhtä lisäystä (joka taidettiin mainita jo aiemmin): Parametrien välittäminen Construtor:lle.

Esimerkki:

Code: Select all

Class Ukkeli
    Var x
    Var y

    Constructor(Var x, Var y)
        This.x = x
        This.y = y
    EndConstructor
EndClass

Var pelaaja As Ukkeli = New Ukkeli(100,100)
P.S. Laitan tykkipelin näytille, mikäli saan sen valmiiksi. :)
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dibalo »

Tuo Key.Hit -bugi korjataan seuraavaan hotfixiin. Ongelman syy on tiedossa: ikkuna sulkeutuu. Korjaus on näin ollen hyvin helppo (parin rivin muutos).

Tuo luokkien rakentajan parametrit tulevat kyllä seuraavaan versioon 0.2.x.x (StormBringer). Tämä tulee sisältämään täysin puhtaalta pöydältä aloitetun kääntäjän (nykyinen on hanurista), samoin kuin uuden ja vakaamman editorin. Kielellisiä ominaisuuksia tulee vain hyvin vähän tähän versioon. Toivon mukaan saan sen vielä valmiiksi ennen armeijaan lähtöä (todennäköisesti en...). Kääntäjän teko on jo aloitettu ja se on hyvällä mallilla. Toivottavasti sama jatkuu. :mrgreen:
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Pate5 »

Tee siihen uuteen editoriin mahdollisuus vaihtaa väriä; silmät ei kestä tuollaista.
CoolBasic henkilökuntaa
Graafikko
Nemesis
Member
Posts: 51
Joined: Sat May 17, 2008 1:54 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Nemesis »

Onko koodissani jotakin vikaa, vai onko niin, ettei ChB pysty avaamaan tiedostoja funktiossa? Ikkuna sulkeutuu heti, kun funktiota on kutsuttu. Ei virheilmoituksia. Funktion ulkopuolella sama homma kyllä toimii.

Code: Select all

Function Open(Var filename As String)
	Var f As ReadFile = New ReadFile 
	f.Open(filename)
		Screen.Text(0,0,f.ReadInt())
	f.Close()
EndFunction

Repeat
	If Key.Hit(KEY_O) Then Open("save.map")
	Screen.Draw()
Forever
Asian tuntian oikein kirjoitus ohjeet:
-Älä tee yhdys sana virheitä.
-Vältä lyhenteitä mahd. muk.
-Yksi sanaiset lauseet? Unohda.
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by JATothrim »

Gäh! latasin Sledgehammerin ja yllätyin. proju etenee parempaan päin ! ;) Pakko lisäys luokkiin: Parametrien välittäminen Construtor:lle.
Vaan bugithan pitää tietenkin korjata ensin, ettei tule tehtyä win95 tapaista systeemiä. :lol: Vaikka en ole vielä näpytellyt ChB:lä mitään, tulen vielä koodaamaan ChB:lä kunhan pahimmat virheet on saatu kukistettua. Onnea matkaan, Dibalo !!

Tuli mieleen CB:n kehitys ura.. pidäthän huolen, että projektin jäätyessä se ei päädy samalla hautausmaalle.. :roll:
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Jare »

Repeat-lenkistä poistuminen saa näemmä kääntäjän unohtamaan muuttujia. Tässä esimerkkikoodi:

Code: Select all

Var muuttuja As String = "Hello World!"
Var i = 0
Repeat
	Screen.Text 0,i*15, muuttuja
	i = i + 1
Until i == 5
Screen.Text 100,0, muuttuja
Screen.Draw
Key.Wait() 
Kääntäjä herjaa rivistä seitsemän, ettei mukamas "muuttujaa" ole määritetty. En ole kokeillut, päteekö sama muissakin lenkeissä.

Edit: Toinen oire liittyen samaan tapaukseen: Ennen Repeatia aloitettu If-lohko unohtuu lenkin jälkeen ja kääntäjä kyselee EndIf:n ja Else:n kohdalla, että missäs on aloittava If-komento. Kärsiikö kääntäjä jonkun sortin dementiasta? :D

Edit2: Tilapäinen ratkaisu jälkimmäiseen ongelmaan: Lisää rivi "If True Then" Repeat-lenkin päättymisen jälkeen, eli Until-rivin jälkeen. Tällöin sinulla on käytännössä kaksi If-aloitusta, mutta kääntäjä ei motkota siitä mitään.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by tuhoojabotti »

editoriin olisi kiva saada semmoinen ominaisuus, että kaikki oma tekemät funkkarit värjätään myös vähän eri värillä kuin valmiit funkkarit :D
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dibalo »

0.1.0.4 HOTFIX ILMESTYNYT!!
Lataa (Pura exe ChaosBasic-kansioon ja korvaa entiset tiedostot.)

Korjattu seuraavat asiat:
  • ChaosBasic-ikkunan sammuminen, kun Key.Hit-komennon aikana painaa ruksia.
  • Ohjelman kaatuminen, jos funktioihin välittää omia luokkia.
  • Repeat-Until sotkee scopet (ja aiheuttaa näin muuttujien "unohtamista").
The darkest spells can be found from
http://tunkkaus.blogspot.fi
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Jare »

tuhoojabotti wrote:editoriin olisi kiva saada semmoinen ominaisuus, että kaikki oma tekemät funkkarit värjätään myös vähän eri värillä kuin valmiit funkkarit :D
Tämä kuulostaa varsin hyvälle, mutta on ymmärtääkseni hankala toteuttaa.

Jos se toteutettaisiin, tulisi editorissa olla hieman samoja piirteitä kuin kääntäjässä, eli sen tulisi osata lukea koodia ja etsiä sieltä funktioiden nimet Function-määritysten kohdalta (itseasiasssa CBEditor tekee tämän jo, sillä sehän listaa funktiot yms. sivupaneelissa). Tämä voisi olla vielä jokseenkin helposti toteutettavissa, mutta Include-tiedostojen sisältämät funktiot jäisivät edelleen huomioimatta. Tämä ratkeaisi ohjeistamassa editoria käsittelemään myös Include-rivit ja availemaan ko. tiedostot omaan muistiinsa, jonka jälkeen se voisi etsiä kaikki funktiot. Eli tämä vaatisi enemmän tai vähemmän suurta työtä ja editorista saatttaisi tulla raskaampikin - riippuen ihan siitä, miten usein se tarkistaa koodin uusien funktioiden varalta.

Toinen ratkaisu olisi kirjoittaa omien funktioidensa nimiä tekstitiedostoon, jota editori sitten lukisi ja värjäisi ko. funktiot.

Joka tapauksessa, idea on kiva ja olisi mukavaa nähdä se toteutettuna, mutta tosiaan se voi vaatia turhan suurta työtä.

Edit: Kiitos, Dibalo :)
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Dande »

Taisimpa ehkä taas löytää bugin: Periytetystä luokasta ei voi periyttää (Tai itseasiassa voi, kunhan luokka periytettävä luokka tai sen isäntä luokka ei ole toteuttanut constructoria, mutta yleensä luokilla on constructori ;) )

Code: Select all

Global Var y=0

Class A
	Constructor
		Screen.Text 0,y,"A"
		y+=10
	EndConstructor
EndClass

Class B Inherits A
	Constructor
		Screen.Text 0,y,"B"
		y+=10
	EndConstructor
EndClass

Class C Inherits B
	Constructor
		Screen.Text 0,y,"C"
		y+=10
	EndConstructor
EndClass

Screen.Draw
Key.Wait()
Saatan pian julkaista pienen objekti järjestelmäni, mutta esimerkkiä joudun yksinkertaistamaan, koska en voi periyttää CCow-luokkaa CSprite-luokasta joka periytyy CObject-luokasta. (Tai sitten vain poistan Constructorin CObject-luokasta, koska kukaan ei välttämättä heti tarvitse näkymätöntä ja kuvatonta luokkaa joka tietää sijaintinsa ja kulmansa, jos saatavilla on luokka johon voi myös laittaa kuvan)
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Jare »

Lisää ongelmia. Runtime kaatuu jokseenkin tämän tyyppisessä tilanteessa:

-Luokan A jäsenet käydään läpi Foreach-silmukassa (joka on pääohjelmassa olevan funktion sisällä), jossa kutsutaan kunkin jäsenen kohdalla jäsenen päivittävää funktiota.
-Tietyissä tilanteissa A-jäsen kutsuu globaalia funktiota (siis joka ei ole minkään luokan sisällä). Tämä funktio käy läpi luokan B jäseniä ja palauttaa sitten ihan tavallisen muuttujan arvon tms.
-Nämä rakenteet pääsevät ilmeisesti ihan hyvin suoriutumaan loppuun, mutta piakkoin jossain kohdassa ohjelma kaatuu.

Voin yrittää tehdä tästä esimerkkikoodia, mutta en ole vielä onnistunut tuomaan virhettä esille yksikertaisella koodilla. Nykyisessä testipelissäni on useampia satoja rivejä koodia, joten se ei ole ehkä kovin yksinkertainen esimerkki tässä kohtaa.

Niin ja kaatuessa ei tule mitään ChB:n omaa virheilmoitusta, vaan pelkkä WinXp:n perusvirheilmoitus, jossa kysytään "Haluatko lähettää Mikkisoftalle tietoja tästä virheestä?". (En painanut Lähetä-nappia).
Tommi
Newcomer
Posts: 15
Joined: Fri Jun 13, 2008 11:48 pm

Re: ChaosBasic 0.1.0.1 (Sledgehammer)

Post by Tommi »

Tätä ohjelmaa en suosittele CB on puolet parempi vaikka onkin vaikea
EDIT:

minun mielestä

Tää ohjelma on semmonen ettei saa selvää mistään
EDIT:

oma mielipide

Last edited by Tommi on Wed Jun 16, 2021 3:22 am, edited 1 time in total.
Post Reply