Page 41 of 50

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Sep 10, 2011 4:06 pm
by koodaaja
Koska ruutusi koko on 32 pikseliä ja CB käyttää koordinaattina yksittäisiä pikseleitä. Luvut eivät sen jälkeenkään täsmää, mutta jaa mX 32:lla niin liikut ainakin samankokoisessa koordinaatistossa.

Re: Tyhmät kysymykset (I/2011)

Posted: Sat Sep 10, 2011 4:22 pm
by Paroni
Tiedän.

Tarkoitin lähinnä miksi tuo luku on noin suuri kun Box 0, 0, grid, grid piirtää laatikon tuon sinisen laatikon viereen. Tuon klikkauksen mukaan taas X:n 0 -koordinaatti on jossain ihan muualla. En tiedä mietinkö tätä väärin mutta vaikuttaa jotenkin oudolta.

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 11:34 am
by Jonez
Siis sekoat siinä, että vaikka piirrät kuvan kohtaan 0, 0, mX silti palauttaa siitä koordinaatista arvon 700 jotain?
mX ei sinänsä liity mitenkään kuvien piirtämiseen. Se ei edes liity sen valkoisen kursori-boksin piirtoon, vaikka molemmat hyödyntävät MouseX():ää ja -Y():tä. Mitä mX ja mY tekevät on se, että ne ottavat tietyn origopisteen, ja liikuttavat sitä pistettä juuri vastakkaiseen suuntaan kuin mihin kamera liikkuu. Näin saamme illuusion että (mX, mY) on tietty kiinteä piste peliavaruudessa, ja pystymme liikuttamaan kameraa suhteessa siihen.

Ongelma siis on se, että sinulla on oikeastaan kolme eri koordinaatistoa: ruutukoordinaatit, joihin voisit piirtää esim. kirjoittamalla Text 20, 20, "Hello World" (ei DrawToWorldilla). Sitten on maailmakoordinaatit, joihin objektit piirretään. Myös kuvat piirretään maailmakoordinaatteihin DrawToWorldin avulla. Sitten sinulla on ihan omat maailmakoordinaatit, jotka luodaan mX:llä ja mY:llä. Nämä koordinaatit kasvavat samaan suuntaan ja yhtä nopeasti kuin normaalitkin m-koordinaatit, mutta niiden origopiste on eri. Ja tämä johtuu yksinkertaisesti siitä kaavasta mitä käytät.

Käyttämäsi kaava on seuraavanlainen: (tämä on hieman eri kuin kaava jonka annoin, sekosin itsekin :). Toimii samalla tavalla.)

Code: Select all

mX = (ScreenWidth() / 2.0) + bX + CameraX()
mY = -((ScreenHeight() / 2.0) + bY - CameraY())
Kaavassa CameraX(), -CameraY() ovat muuttujia, jotka huolehtivat että piste liikkuu oikeaan suuntaan kun kameraa liikutetaan. -CameraY() koska kuvakoordinaatisto kasvaa vastakkaiseen suuntaan kuin objektikoordinaatisto.

bX ja bY ovat muuttujia, jotka säilövät halutun pisteen koordinaatistossa. Jos bX ja bY ovat (0, 0), mX:n ja mY:n palauttama piste on tämän oman koordinaatiston origo.

ScreenWidth() / 2, ScreenHeight() / 2 ovat nyt se origo. Tämä kertoo missä suhteessa uusi origo on alkuperäiseen kuvakoordinaatiston origoon. Tässä on ongelmasi: origosi on eri kuin ehkä haluat. Ja pääsemme ratkaisuun. Siirrämme origoa:

Code: Select all

mX = (-ScreenWidth() / 2.0) + bX + CameraX()
mY = -((-ScreenHeight() / 2.0) + bY - CameraY())
Ja nyt mX:n ja mY:n palauttamat arvot ovat identtiset maailmakoordinaatiston kanssa.

(Koordinaatistomuunnokset ovat minullekin aika vaikea asia, toivottavasti en nyt seonnut pahasti jossain seikassa. Koodin pitäisi kuitenkin toimia).

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 5:59 pm
by Laurenzo
Kuinka pystyisin tekemään pause-tilan peliini?Eli kun Painaa näppäintä P niin esiin ilmestyy pausevalikko jossa on napit:
JATKA eli peli jatkuisi samasta kohdasta mihin se on pysäytetty
LOPETA lopettaa pelin.

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 6:29 pm
by Execute
Miten tiedän milloin tyyppikokoelmassa on jäljellä enää yksi jäsen?

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 7:13 pm
by Latexi95
Execute wrote:Miten tiedän milloin tyyppikokoelmassa on jäljellä enää yksi jäsen?

Code: Select all

määrä = 0
for each
   määrä + 1
next

if määrä = 1 then

endif

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 7:21 pm
by Jonez
Execute:
Voit myös pitää globaalia muuttujaa, joka alkaa nollasta, lisääntyy yhdellä kun tyyppi luodaan ja vähentyy yhdellä kun se tuhotaan. Näin tiedät aina tyyppien määrän käymättä niitä läpi. Tämä on lähes pakollista muuttuvien taulukoiden kanssa.

Laurenzo:

Code: Select all

//Pääsilmukka
Repeat
    If KeyHit(CbKeyP) Then pause = Not pause
    
    If pause Then
        //Pausen päällä oleva koodi
        PiirraValikko()
    Else
        //Itse pelin koodi
        LiikutaPelaajia()
        LiikutaAmmuksia()
    DrawScreen
Forever

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 7:49 pm
by jaahas
Yksinkertasempi?

Code: Select all

//pääsilmukka
Repeat

  //ohjelma tähän
  
  If KeyHit(cbkeyp) Then
    UpdateGame()
    Repeat
    
      //valikko tähän
      
      If KeyHit(cbkeyp) Then Exit

      DrawScreen
    Forever
    
  EndIf
  
  //tai tähän
  
  DrawScreen
Forever

Re: Tyhmät kysymykset (I/2011)

Posted: Sun Sep 11, 2011 8:04 pm
by Awaclus
Itsehän olen toteuttanut pausen aina aliohjelmalla, selkeyttää mielestäni päälooppia kun ei ole jotain varsinaisesti peliin kuulumatonta seassa. Toisin sanoen näin:

Code: Select all

ukko = LoadObject ("Media\cow.bmp")

Repeat
    TranslateObject ukko, RightKey()*2-LeftKey()*2, UpKey()*2-DownKey()*2
    If KeyHit(cbkeyp) Then Gosub pause
    DrawScreen
Forever

pause:
Repeat
    DrawScreen
Until KeyHit(cbkeyp)
Return

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 3:20 pm
by Noun
Saako CB:n Make- ja EditMapeilla tuotettuja karttoja tallennettua mitenkään?

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 3:24 pm
by Latexi95
Noun wrote:Saako CB:n Make- ja EditMapeilla tuotettuja karttoja tallennettua mitenkään?
CoolBasicissa ei ole valmiina sellaista komentoa, mutta tilesterin karttaformaatti on varsin helppo(ohjeet latausfunktion tekoon löytyvät tilesterin asennuskansiosta), joten tallennus funktio on varsin helppo tehdä. Veikkaan kyllä, että aika monelta löytyy tarvittava koodi jostain arkistojen pohjalta. Itsekin tein joskus tuollaisen funktion, mutta sen lähdekoodi on kyllä tainnut jo hävitä.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 4:05 pm
by axu
Noun wrote:Saako CB:n Make- ja EditMapeilla tuotettuja karttoja tallennettua mitenkään?
Tämmösen joskus tein (avaus- ja tallennusfunktiot):

Code: Select all

Dim TileAnim(1,1)   //TileAnim -taulukko sisältää tilejen animoinnin(koska coolbasicissa ei voi tarkistaa sitä jälkikäteen), TileAnim(TILE, ANIMAATION_PITUUS = 0/ANIMAATION_HITAUS = 1
Function OpenMap(FileName$, Tileset$="", PrintHeader = 0)
    f = OpenToEdit(FileName)
    '    If Not(ReadByte(f) = 40 And ReadByte(f) = 192 And ReadByte(f) = 13 And ReadByte(f) =  139) Then MakeError "Can't load map "+FileName+". Map is not valid Tilester 1.3 file"
        If PrintHeader Then
            Print ReadByte(f) + " " + ReadByte(f) + " " + ReadByte(f) + " " + ReadByte(f)
            WaitKey
        EndIf
        If Tileset = "" Then
            SeekFile f, 564
            For i = 0 To 255
                b = ReadByte(f)
                If b = 0 Then Exit Else Tileset = Tileset + Chr(b)
            Next i
        EndIf
        SeekFile f, 820
        TileCount   = ReadInt(f)
        TileWidth   = ReadInt(f)
        TileHeight  = ReadInt(f)
        Map = MakeMap(ReadInt(f), ReadInt(f), TileWidth, TileHeight)
        TilesetImg  = LoadImage(Tileset)
        PaintObject Map, TilesetImg
        For i = 0 To 3
            If Not(ReadByte(f) = 254-i And ReadByte(f) = 45-i And ReadByte(f) = 12-i And ReadByte(f) = 166-i) Then MakeError "Can't load map "+FileName+". Map layer "+i+" was corrupted"
            For Y = 1 To MapHeight()
                For X = 1 To MapWidth()
                    EditMap Map, i + (i = 1) - (i = 2), X, Y, ReadInt(f)
                Next X
            Next Y
        Next i
        If Not(ReadByte(f) = 250 And ReadByte(f) = 41 And ReadByte(f) = 8 And ReadByte(f) =  162) Then MakeError "Can't load map "+FileName+". Tile animation was corrupted"
        ReDim TileAnim(TileCount-1, 1)
        For i = 0 To TileCount-1
            TileAnim(i, 0) = ReadInt(f)
            TileAnim(i, 1) = ReadInt(f)
            SetTile i, TileAnim(i, 0), TileAnim(i, 1)
        Next i
        SeekFile f, 520
        MaskObject Map, ReadByte(f), ReadByte(f), ReadByte(f)
    CloseFile f
    
    Return Map
End Function

Function SaveMap(Map, FileName$, TilesetImg, Tileset$ = "", MaskRED = 0, MaskGREEN = 0, MaskBLUE = 0, Comment$ = "")
    f = OpenToWrite(FileName)
        WriteByte f, 40 : WriteByte f, 192 : WriteByte f, 13 : WriteByte f, 139
        WriteFloat f, 1.3
        For i = 1 To 512
            If i < Len(Comment) And i < 256 Then
                WriteByte f, Asc(Mid(Comment, i, 1))
            Else
                WriteByte f, 0
            EndIf
        Next i
        WriteByte f, MaskRED : WriteByte f, MaskGREEN : WriteByte f, MaskBLUE : WriteByte f, 0
        For i = 1 To 40
            WriteByte f, 0
        Next i
        For i = 1 To 256
            If i < Len(Tileset) Then
                WriteByte f, Asc(Mid(Tileset, i, 1))
            Else
                WriteByte f, 0
            EndIf
        Next i
        TileCount = (ImageWidth(TilesetImg)/(ObjectSizeX(Map) / MapWidth())) * (ImageHeight(TilesetImg)/(ObjectSizeY(Map) / MapHeight()))
        WriteInt f, TileCount
        WriteInt f, ObjectSizeX(Map) / MapWidth()
        WriteInt f, ObjectSizeY(Map) / MapHeight()
        WriteInt f, MapWidth()
        WriteInt f, MapHeight()
        For i = 0 To 3
            WriteByte f, 254-i : WriteByte f, 45-i : WriteByte f, 12-i : WriteByte f, 166-i
            For Y = 1 To MapHeight()
                For X = 1 To MapWidth()
                    WriteInt f, GetMap2(i + (i = 1) - (i = 2), X, Y)
                Next X
            Next Y
        Next i
        WriteByte f, 250 : WriteByte f, 41 : WriteByte f, 8 : WriteByte f, 162
        For i = 0 To TileCount-1
            WriteInt f, TileAnim(i, 0)
            WriteInt f, TileAnim(i, 1)
        Next i
    CloseFile f
EndFunction
Muistaakseni toimii hyvin. Minkäänlaista ohjetta en tähän kirjoittanut :P

Tietenkin suosittelen itse kokeilemaan tuon tekoa, kuten Latexi sanoikin, on Tilesterin formaatti helppo ja dokumentaatio riittävä.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 5:21 pm
by Geewilliam
Täällä taas kysymässä...

Koodissani on ilmeisesti jotain häikkää, sillä kun tuosta valikosta menee "korkolaskuriin", tuleekin pelkää tyhjää. Ongelma varmaan on jossain drawscreen tms. komennossa, mutta en vain keksi missä =p.

Koodi siis tässä:
(itse aliohjelma löytyy vähän keskikohdan alapuolelta (korkolaskuri).)

Code: Select all

 
    SCREEN 500,250 
  
  'päävalikko
   valikkonappuloita = 3

    //luodaan nappuloille taulukko jossa toisen ulottuvuus kertoo onko kyseessä 
    //nappulan nimi (1) vai nappulafunktion palauttama arvo (0)

    Dim valikkokohta(valikkonappuloita-1,1) As String
     //asetetaan nappuloille nimet, nämähän voidaan toki vaikka ladata ulkoisesta tiedostostakin
    valikkokohta(0,1)="Uusi peli"
    valikkokohta(1,1)="korkolaskuri"
    valikkokohta(2,1)="Lopeta peli"


  
  
  
  
     Repeat

        // tässä päivitetään kaikkien nappuloiden tila, jos nappula on alhaalla niin valikkokohta(i,0)="1" muutoin valikkokohta(i,0)="0"
        For i=0 To valikkonappuloita-1
            valikkokohta(i,0)=Button(100,100+30*i,100,20,valikkokohta(i,1))
        Next i

        //jos nappula numero 2 eli lopetus on alhaalla niin lopetetaan
        If Int(valikkokohta(2,0)) Then End
        If Int(valikkokohta(1,0)) Then  
        Gosub korkolaskuri 
        EndIf 
        
       
       
     DrawScreen 
   
   Forever 
   
      
   // x, y koordinaatit
    // w,h koko
    // t painikkeen teksti
    // s painikkeen pyöreys

    Function Button(x,y,w,h,t$,s=5)
        If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
            If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240
            If MouseUp(1) Then Return True 
        Else
            Color 200,200,200
        EndIf         
            Box x+s,y,w-(s*2),h     
            Box x,y+s,w,h-(s*2)
            Circle x,y,s*2
            Circle x+w-s*2,y,s*2
            Circle x+w-s*2,y+h-s*2,s*2
            Circle x,y+h-s*2,s*2
            Color cbblack
            CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
    EndFunction 
  
     
     
     korkolaskuri: 'korkolaskuri-aliohjelma
     ClearText 
      xx#=""  'nollataan muuttujat
     yy#=""
     zz#=""
      Locate 10,10
        Repeat
            xx# = Input("Alkusumma ") 
            DrawScreen OFF 
        Until KeyHit(28)
   //tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
        ClearKeys
        //nollataan input seuraavaa kyselyä varten
    CloseInput
    
    Locate 10,20
    Repeat
            yy# = Input("Kuukausittainen korkoprosentti: ")
            DrawScreen OFF 
        Until KeyHit(28)
   //tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
        ClearKeys
        //nollataan input seuraavaa kyselyä varten
        CloseInput
        
     Locate 10,30   
    Repeat
            zz# = Input("Kuinka monta kuukautta?: ")
            DrawScreen OFF 
        Until KeyHit(28)
//tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
        ClearKeys
        //nollataan input seuraavaa kyselyä varten
        CloseInput
       
    aa#=yy*0.01+1.0 // lasketaan prosenttikerroin
    bb#=aa^zz //nostetaan prosenttikerroin potenssiin
    vastaus#=bb*xx //lasketaan vastaus
     
    ClearKeys
    
    Write "Vastaus on: "
    Write vastaus
    Print ""
    Print "paina enter palataksesi päävalikkoon"
    Repeat 
    If KeyHit (28)
    Return 
    EndIf 
    Forever 
   
   
    
    DrawScreen 
    

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 5:47 pm
by Jonez
Riviltä ~80 puuttuu Return, jolla pääsisit takaisin valikkoon. Color taitaa olla 0, 0, 0; eli voit kirjoittaa mutta mitään ei oikeastaan näy. Koska komennat DrawScreen Off (etkä pelkkä DrawScreen), kuvaa ei tyhjennetä ja valikkokuva jää ruudulle.

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 5:52 pm
by Geewilliam
Return löytyy riviltä ~119. Drawscreen off on tarkoituksella, jotta aikaisemmat textit jäävät näkyviin. (Kannattaisiko mieluummin käyttää addtextiä?)

e. Siis ei addtextiä voikaan käyttää, sillä nyt puhun noitsa inputeista. Tietysti ne voi korvata addtextillä inputin jälkeen.
EDIT:

(e2.) Kiitos avusta


Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 5:55 pm
by Latexi95
Jonez wrote:Riviltä ~80 puuttuu Return, jolla pääsisit takaisin valikkoon. Color taitaa olla 0, 0, 0; eli voit kirjoittaa mutta mitään ei oikeastaan näy. Koska komennat DrawScreen Off (etkä pelkkä DrawScreen), kuvaa ei tyhjennetä ja valikkokuva jää ruudulle.
Juu... Tai oikeastaa sieltä ei taida puuttua Returnia, mutta ainakin yksi drawscreen. Ja väri todellakin on jäännyt täysin mustaksi joten mitään ei näy. Sitten vielä kannattaa opetella sisentäminen. Se helpottaa niin omaakin kuin muidenkin koodinlukua. Ai niin ja Write ja Print eivät toimi oikein jos käyttät Drawscreeniä joten vaihdoin ne AddTextiin.
Tässä korjattu koodi:

Code: Select all

    SCREEN 500,250 
  
  'päävalikko
   valikkonappuloita = 3

    //luodaan nappuloille taulukko jossa toisen ulottuvuus kertoo onko kyseessä 
    //nappulan nimi (1) vai nappulafunktion palauttama arvo (0)

    Dim valikkokohta(valikkonappuloita-1,1) As String
     //asetetaan nappuloille nimet, nämähän voidaan toki vaikka ladata ulkoisesta tiedostostakin
    valikkokohta(0,1)="Uusi peli"
    valikkokohta(1,1)="korkolaskuri"
    valikkokohta(2,1)="Lopeta peli"


  
  
  
  
     Repeat

        // tässä päivitetään kaikkien nappuloiden tila, jos nappula on alhaalla niin valikkokohta(i,0)="1" muutoin valikkokohta(i,0)="0"
        For i=0 To valikkonappuloita-1
            valikkokohta(i,0)=Button(100,100+30*i,100,20,valikkokohta(i,1))
        Next i

        //jos nappula numero 2 eli lopetus on alhaalla niin lopetetaan
        If Int(valikkokohta(2,0)) Then End
        If Int(valikkokohta(1,0)) Then  
        Gosub korkolaskuri 
        EndIf 
        
       
       
     DrawScreen 
   
   Forever 
   
      
   // x, y koordinaatit
    // w,h koko
    // t painikkeen teksti
    // s painikkeen pyöreys

    Function Button(x,y,w,h,t$,s=5)
        If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
            If MouseDown(1) Then Color 180,180,180 Else Color 240,240,240
            If MouseUp(1) Then Return True 
        Else
            Color 200,200,200
        EndIf         
            Box x+s,y,w-(s*2),h     
            Box x,y+s,w,h-(s*2)
            Circle x,y,s*2
            Circle x+w-s*2,y,s*2
            Circle x+w-s*2,y+h-s*2,s*2
            Circle x,y+h-s*2,s*2
            Color cbblack
            CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
    EndFunction 
  
     
     
korkolaskuri: 'korkolaskuri-aliohjelma
ClearText
Color cbWhite
xx#=""  'nollataan muuttujat
yy#=""
zz#=""
Locate 10,10
Repeat
    xx# = Input("Alkusumma ") 
    DrawScreen 
Until KeyHit(28)
//tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
ClearKeys
    //nollataan input seuraavaa kyselyä varten
CloseInput

Locate 10,20
Repeat
    yy# = Input("Kuukausittainen korkoprosentti: ")
    DrawScreen OFF 
Until KeyHit(28)
//tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
ClearKeys
    //nollataan input seuraavaa kyselyä varten
CloseInput
    
Locate 10,30   
Repeat
    zz# = Input("Kuinka monta kuukautta?: ")
    DrawScreen OFF 
Until KeyHit(28)
//tyhjennetään näppäinpuskuri ettei edellinen enterin painallus poistu suoraan seuraavastakin loopista
ClearKeys
    //nollataan input seuraavaa kyselyä varten
CloseInput
   
aa#=yy*0.01+1.0 // lasketaan prosenttikerroin
bb#=aa^zz //nostetaan prosenttikerroin potenssiin
vastaus#=bb*xx //lasketaan vastaus
 
ClearKeys

AddText "Vastaus on: " + vastaus
AddText ""
AddText "paina enter palataksesi päävalikkoon"
Repeat 
    If KeyHit (28)
        ClearText
        Return 
    EndIf
    DrawScreen
Forever 
   

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 8:15 pm
by Geewilliam
Huoh, heti perään täällä, tuli koodissa uusi ongelma vastaan. Kun luen tiedostosta, cb pyöristää sieltä tulleen luvun lähimpään kokonaislukuun.
Eli, kun tiedostossa lukee vain "14.74", cb lukee sen ja tulostaa "15".

Code: Select all

x=OpenToRead("tiedosto") //tässä tiedostossa ei siis ole muuta, kuin yksi desimaali luku, esim. 14.74
  c=Float(ReadLine(x)) 
  
 Text 10,10,c
CloseFile x

DrawScreen   

WaitKey 

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 8:24 pm
by Peltsi
Geewilliam wrote:Huoh, heti perään täällä, tuli koodissa uusi ongelma vastaan. Kun luen tiedostosta, cb pyöristää sieltä tulleen luvun lähimpään kokonaislukuun.
Eli, kun tiedostossa lukee vain "14.74", cb lukee sen ja tulostaa "15".

Code: Select all

x=OpenToRead("tiedosto") //tässä tiedostossa ei siis ole muuta, kuin yksi desimaali luku, esim. 14.74
  c=Float(ReadLine(x)) 
  
 Text 10,10,c
CloseFile x

DrawScreen   

WaitKey 
Käytä ReadFloat komentoa ReadLinen sijaan, sekä muuttuja c kannattaa olla c# (risuaita on kertoo cb:lle että muuttuja sisältää desimaaliluvun).

Re: Tyhmät kysymykset (I/2011)

Posted: Tue Sep 13, 2011 8:32 pm
by Geewilliam
Kun laitoin readline, se heitti nolla. Muutin muutujan desimaalimuuttujaksi (oli unohtunut aikaisemmin) ja sit se heitti jotian ihan outoa. Sit vaihdoin sen takaisin readfloatiksi, ja städäm, toimii. Ongelma siis oli muuttujan väärässä tyypissä. (c# olisi ollut oikea, eikä c) Ei voinut tuota muistaa, kun muualla en ole joutunut muuttujaa mitenkään määrittelemään. =P

e. Sekoilen taas tekstissä. laitoin siis readfloatiksi ja sit takas readlineksi.

Re: Tyhmät kysymykset (I/2011)

Posted: Wed Sep 14, 2011 4:16 pm
by Geewilliam
Hmh, ärsyttää, mutta pommitan lisää erittäin tyhmillä kysymyksillä.
Saanko if-lauseeseen ehdon "if x= >1 and <maara then...". Eli siis, jos x on suurempi, kuin 1 ja pienempi kuin muutuja maara. Tai olisiko joku hyvä keino saada jollain muulla komennolla? Tarkoitus siis saada tekemään jotain, kun/jos x on jokin luku 1-maara, jos ei, kysytään uudestaan tai tulee valitus. (Esim. while- voisi olla hyvä, että kysytään kunnes luku on 1-maara.)
EDIT:

ahhah, en laittanut siihen toiseen x_x. Kiitos!