Esimerkkejä aloittelijoille.

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
User avatar
valscion
Moderator
Moderator
Posts: 1589
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Esimerkkejä aloittelijoille.

Post by valscion » Tue Jan 13, 2009 5:24 pm

Jani wrote:tein parametreistä toimivia niille, jotka ymmärtävät englantia.
Pilkunviilausta: Se on length eikä lenght.
Jani wrote:Funktio on alkeellinen, mutta kivan tehkokkaita salasanoja se tekee 8-) .

Tein pientä testiä:

Code: Select all

Tunnus: Jani | Salasana: q4530=4530T3020(1510y3020g4530p4530+3020h4530B4530
Tunnus: Jani | Salasana: c3020.453021510I4530M3020d4530:1510o3020K4530v4530
Tunnus: Jani | Salasana: l4530o4530;4530)4530U4530d1510n3020s45300302003020
Tunnus: Jani | Salasana: j151003020D3020C453013020c151063020K4530W1510f1510
Tunnus: Jani | Salasana: i4530;453011510w1510Z1510y3020n4530;4530W302034530
Tunnus: Jani | Salasana: /1510@4530^3020I3020w4530D3020U3020F4530H3020n4530
Tunnus: Jani | Salasana: s0]0P0i0U0J0O0_0v0s0
Tunnus: Jani | Salasana: 60E0:030-0O0&0`0a0+0
Hmm, eivät näytä kovinkaan "vahvoilta". Tietenkin ne ovat täyttä sekasotkua, mutta niissä suurin osa on numeroita (ja vielä nollia), ja erikoismerkkejä on kovin vähän. Harvat paikat suostuvat noinkin pitkiin salasanoihin kuin pienessä testissäsi teit. Sellanen 5-15 on yleensä normaali pituus, ei 50.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Esimerkkejä aloittelijoille.

Post by Jani » Tue Jan 13, 2009 9:18 pm

Juu... tommoinen oli todellakin jäänyt.
Tein muutoksia edelliseen viestiin.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Esimerkkejä aloittelijoille.

Post by Awaclus » Sun Jan 18, 2009 10:38 am

Jos se tukisi erikoismerkkejä, voisi käyttää brute forceen?

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Esimerkkejä aloittelijoille.

Post by Jani » Sun Jan 18, 2009 11:05 am

Katoppa vähän tarkemmin.
Siinä on kaikki merkit käytössä.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Esimerkkejä aloittelijoille.

Post by DatsuniG » Sun Jan 18, 2009 2:03 pm

Teinpä pienen esimerkin, jolla voidaan toteuttaa esimerkiksi nuolen lentorata.

Code: Select all

SCREEN 800,600
Const SCALE = 50 ' Asteikon koko
Repeat
Line 0,0,0,ScreenHeight()
Line 0,ScreenHeight()-1,ScreenWidth(),ScreenHeight()-1

For i=0 To Max(ScreenWidth(),ScreenHeight())/SCALE ' Koordinaatisto
    Line i*SCALE,ScreenHeight(),i*SCALE,ScreenHeight()-10
    Line 0,i*SCALE,10,i*SCALE
    
    Text i*SCALE+2,ScreenHeight()-10-TextHeight(Str(SCALE*i)),Str(SCALE*i)
    Text 12,ScreenHeight()-SCALE*i-3,Str(SCALE*i)
Next i
For I=1 To 2 ' Tehdään pisteen menosta nopeampaa
    Dot x,ScreenHeight()-(-0.0015*x^2+x) ' Pisteen lentorata on paraabeli y=-0.0015*x^2+x
x=x+1
Next i
DrawScreen OFF ' Ei tyhjennetä näyttöä
Forever 
Hengität nyt manuaalisesti.

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Esimerkkejä aloittelijoille.

Post by Jonhu » Sun Jan 25, 2009 12:00 am

Alkoi rasittaa minun sanojen kyselyohjelmassa, ettei huomaa, että mikä kirjain meni väärin, niin päätin tehdä tälläisen function...

Functio esimerkillä...

Code: Select all

rivi1$="Moi! Tähän tekstiin verrataan alempaa tekstiä."
rivi2$="Mo1! tähän tekst1un vetrataan ylempaa tekstiä.."

virheita = Varjays(10,10,rivi1$, 10,30,rivi2$)
Color cbwhite
Text 10,70,"Virheitä tekstissä: "+virheita
DrawScreen OFF
WaitKey


Function Varjays(x1,y1,txt1$, x2,y2,txt2$)
    Text x1,y1,txt1$
    
    If txt1$=txt2$ Then
        Text x2,y2,txt2$
    Else
        For a=1 To Max(Len(txt2$),Len(txt1$))
            merkki1$ = Mid(txt1$,a,1)
            merkki2$ = Mid(txt2$,a,1)
            
            If merkki1$ = merkki2$ Then 
                Color cbwhite
            Else
                Color cbred
                virhe+1
            EndIf
            
            Text x2+TextWidth(Left(txt2$,a-1)),y2,merkki2$
            
        Next a
    EndIf
    
    Return virhe
EndFunction
Lisäksi vielä vähäsen matemaattisempi versio aijemmasta line3-functionsta.

Code: Select all

Repeat
    a+1
    line3(100,100,100,a,3)

    line3(20,200,300,-10,5)
    
    line3(350,20,100,-90,3)
    
    DrawScreen
Forever


// Function line3
//
// alkupiste x1#,y1#
// (pää)viivan pituus  Len1#
// kulma ang#
// kuinka moneen osaan jaetaan jakoja#
// poikkiviivojen pituus ulontuma#
Function line3(x1#,y1#,Len1#,ang#,jakoja#=5,ulontuma#=10)
    Line x1#,y1#,x1#+Cos(ang#)*Len1#,y1#-Sin(ang#)*Len1#
    jakovali# = Len1#/jakoja#
    
    For a=0 To jakoja#
    
        If a=0 Then 
            angA# = 90
            z#    = ulontuma#
        Else
            z#    = Sqrt(  (a*jakovali#)^2.0 + (ulontuma#) )  // pythagoralla( =cosinilauseen erikois tapaus) ratkastu ensin sivun pituus
            angA# = ACos( ((a*jakovali#)^2.0 + z#^2.0 - ulontuma#^2.0) / ( 2.0*(a*jakovali#)*z#) ) // cosinilauseella ratkastu kulma
        EndIf
        
        Line x1# + Cos( ang#+angA# ) * z#, y1# - Sin( ang#+angA# ) * z#, x1# + Cos( ang#-angA# ) * z#, y1# - Sin( ang#-angA# ) * z#
    Next a
EndFunction
Last edited by Jonhu on Wed Mar 11, 2009 9:32 pm, edited 1 time in total.
Tekeillä pikkupelejä ja ohjelmia :)

Lowhunter

Re: Esimerkkejä aloittelijoille.

Post by Lowhunter » Mon Jan 26, 2009 6:58 pm

Miten saa tehtyä Pausen peliin (Peli pysähtyy)?

Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Esimerkkejä aloittelijoille.

Post by Jonhu » Mon Jan 26, 2009 7:08 pm

Lowhunter wrote:Miten saa tehtyä Pausen peliin (Peli pysähtyy)?
Kuuluisi ongelmat osioon..

Paussen saat esim If-lauseella.

Code: Select all

repeat 'pääsilmukka
      if keyhit(cbkeyp) then pause = not pause
      if pause=off then
           // peli......
      else
           // valikko

      endif

     Drawscreen
forever
Tekeillä pikkupelejä ja ohjelmia :)

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Esimerkkejä aloittelijoille.

Post by Jani » Mon Jan 26, 2009 7:08 pm

Lowhunter wrote:Miten saa tehtyä Pausen peliin (Peli pysähtyy)?
WaitKey ?
Ja kysymykset Ongelmat alueelle.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Esimerkkejä aloittelijoille.

Post by phons » Mon Jan 26, 2009 7:36 pm

Wait komento pysäyttää koko homman totaalisesti joksikin ajaksi, mikä siihen on sitten annettu parametriksi. Parametri annetaan millisekuntteina.
Image

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

Re: Esimerkkejä aloittelijoille.

Post by temu92 » Mon Jan 26, 2009 7:40 pm

Jani wrote:WaitKey ?
Ei kyllä waitkeytä paussia varten. Sitä varten voi tehdä ihan omat aliohjelmat jota sitten suoritetaan paussin ollessa päällä.

Character
Active Member
Posts: 113
Joined: Thu Nov 27, 2008 3:16 pm

Re: Esimerkkejä aloittelijoille.

Post by Character » Sat Jan 31, 2009 3:13 pm

Nuolilla ohjattava valikko :mrgreen::

Code: Select all

//Nuolilla ohjattava valikko tehnyt Character
//Muuta tiedot itsellesi sopiviksi

//TÄRKEÄT MUUTTUJAT JA VAKIOT:

////////////////////////////////////
Const OTSIKKO$ = "RÄISKINTÄPELI 1"//
VALITTU = 1                       //
////////////////////////////////////

//VALIKON TIEDOT:

////////////////////////////
Dim VALIKKO(5) As String  //
VALIKKO(1) = "Uusi peli"  //
VALIKKO(2) = "Jatka peliä"//
VALIKKO(3) = "Ennätykset" //
VALIKKO(4) = "Tekijät"    //
VALIKKO(5) = "Lopeta"     //
////////////////////////////

//PÄÄSILMUKKA:
Repeat

    Color 255, 0, 0
    Text2(ScreenWidth()/2, 10, OTSIKKO)

    For i = 1 To 5
        Color 0, 189, 0
        Text2(ScreenWidth()/2, 50 * i, VALIKKO(i))
        If VALITTU = i Then
            Color 255, 0, 0
            Box ScreenWidth()/2 - TextWidth(VALIKKO(i))/2 - 10, 50 * i - 10, TextWidth(VALIKKO(i)) + 10 * 2, TextHeight(VALIKKO(i)) + 10 * 2, OFF
        EndIf
    Next i
    
    If KeyHit(cbkeyDown) Then VALITTU = VALITTU + 1
    If KeyHit(cbkeyUp) Then VALITTU = VALITTU - 1
    
    If VALITTU < 1 Then VALITTU = 5
    If VALITTU > 5 Then VALITTU = 1
    
    //Jos painetaan enteriä niin katsotaan mikä
    //valinta on valittu ja toteutetaan ehto
    //Muuta ehdot sopiviksi esim. "Goto peli" yms.
    If KeyHit(28) Then
        Select VALITTU
            Case 1 //Uusi peli
                MakeError "Peliä ei ole."
            Case 2 //Jatka peliä
                MakeError "Et ole tallentanut mitään."
            Case 3 //Ennätykset
                MakeError "Mitä ennätyksiä??"
            Case 4 //Tekijät
                MakeError "No minä tietysti :)"
            Case 5 //Lopeta
                End
        End Select
    EndIf

    DrawScreen
    
Forever

//TURHAT FUNKTIOT:
Function Text2(x, y, txt As String)
    Text x - TextWidth(txt)/2, y, txt$
End Function
Edit: Jani, miten niin? Itseni mielestä tämä on ihan hieno. Ja laitoin nuo tunnisteet ihan sen takia että olisi aloittelijoille selkeämpää.
Btw, yritätkö kasvattaa postcounttia.. siltä vähän vaikuttaa
Last edited by Character on Sat Jan 31, 2009 6:03 pm, edited 2 times in total.

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Esimerkkejä aloittelijoille.

Post by Jani » Sat Jan 31, 2009 3:25 pm

Character wrote:Nuolilla ohjattava valikko :mrgreen::

Code: Select all

//Nuolilla ohjattava valikko tehnyt Character
//Muuta tiedot itsellesi sopiviksi

//TÄRKEÄT MUUTTUJAT JA VAKIOT:

////////////////////////////////////
Const OTSIKKO$ = "RÄISKINTÄPELI 1"//
VALITTU = 1                       //
////////////////////////////////////

//VALIKON TIEDOT:

////////////////////////////
Dim VALIKKO(5) As String  //
VALIKKO(1) = "Uusi peli"  //
VALIKKO(2) = "Jatka peliä"//
VALIKKO(3) = "Ennätykset" //
VALIKKO(4) = "Tekijät"    //
VALIKKO(5) = "Lopeta"     //
////////////////////////////

//PÄÄSILMUKKA:
Repeat

    Color 255, 0, 0
    Text2(ScreenWidth()/2, 10, OTSIKKO)

    For i = 1 To 5
        Color 0, 189, 0
        Text2(ScreenWidth()/2, 50 * i, VALIKKO(i))
        If VALITTU = i Then
            Color 255, 0, 0
            Box ScreenWidth()/2 - TextWidth(VALIKKO(i))/2 - 10, 50 * i - 10, TextWidth(VALIKKO(i)) + 10 * 2, TextHeight(VALIKKO(i)) + 10 * 2, OFF
        EndIf
    Next i
    
    If KeyHit(cbkeyDown) Then VALITTU = VALITTU + 1
    If KeyHit(cbkeyUp) Then VALITTU = VALITTU - 1
    
    If VALITTU < 1 Then VALITTU = 5
    If VALITTU > 5 Then VALITTU = 1
    
    //Jos painetaan enteriä niin katsotaan mikä
    //valinta on valittu ja toteutetaan ehto
    //Muuta ehdot sopiviksi esim. "Goto peli" yms.
    If KeyHit(28) Then
        Select VALITTU
            Case 1 //Uusi peli
                MakeError "Peliä ei ole."
            Case 2 //Jatka peliä
                MakeError "Et ole tallentanut mitään."
            Case 3 //Ennätykset
                MakeError "Mitä ennätyksiä??"
            Case 4 //Tekijät
                MakeError "No minä tietysti :)"
            Case 5 //Lopeta
                End
        End Select
    EndIf

    DrawScreen
    
Forever

//TURHAT FUNKTIOT:
Function Text2(x, y, txt As String)
    Text x - TextWidth(txt)/2, y, txt$
End Function
Ei tunnisteita vakioihin.
Muuten... Ihan hyvä... Mutta ei tuota välttämättä kannata käyttää.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Esimerkkejä aloittelijoille.

Post by phons » Fri Feb 20, 2009 4:38 pm

Tein tällaisen jutun joka tulostaa tekstiä hiukan kerrallaan. Tai no en nyt tiedä miten se pitäisi selittää mitä se tekee, mutta kokeilkaa.

Code: Select all

txt$="Hello world!"

Dim char(Len(txt$)) As String

g=0
h=0

Repeat
    
    For i=1 To Len(txt$)
        char(i)=Mid(txt$,i,1)
    Next i
    
    If g<100 Then g=g+1
    
    If g>20 And h<Len(txt$+".") Then
        h+1
        Locate h*9,10
        AddText char(h)
        g=0
    EndIf
    
    DrawScreen
Until EscapeKey()
Älkää sanoko että se on tyhmästi tehty...
Image

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Esimerkkejä aloittelijoille.

Post by DatsuniG » Fri Feb 20, 2009 5:34 pm

phons wrote:Tein tällaisen jutun joka tulostaa tekstiä hiukan kerrallaan. Tai no en nyt tiedä miten se pitäisi selittää mitä se tekee, mutta kokeilkaa.

Code: Select all

txt$="Hello world!"

Dim char(Len(txt$)) As String

g=0
h=0

Repeat
    
    For i=1 To Len(txt$)
        char(i)=Mid(txt$,i,1)
    Next i
    
    If g<100 Then g=g+1
    
    If g>20 And h<Len(txt$+".") Then
        h+1
        Locate h*9,10
        AddText char(h)
        g=0
    EndIf
    
    DrawScreen
Until EscapeKey()
Älkää sanoko että se on tyhmästi tehty...
Ja lyhyemmin:

Code: Select all

stri$ = "Hello world!"
Repeat
Text 2,2,Mid(stri,1,i/10)
i = i + 1
DrawScreen
Forever 
Hengität nyt manuaalisesti.

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

Re: Esimerkkejä aloittelijoille.

Post by MaGetzUb » Fri Feb 20, 2009 7:04 pm

Valikoa tehdessä kannattaa aina miettiä tarviitko taulukkoa, pelkkien nappien nimien takia.(Ei se peli siitä paljoa selkeydy! Ja nopeuttakaan paranna pätkääkään. :D) Itse en ainakaan tarvitse.. Teen vain dynaamisia funktioita, jotka piirtävät tekstin ruudulle ja reagoi hiiren siaintiin..
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Esimerkkejä aloittelijoille.

Post by phons » Fri Feb 20, 2009 8:08 pm

Ööh... Miten tuo äskeinen liittyi noihin äskeisiin. Tuon kun tein niin en ajatellut mitään valikkoa. Ja tuo lyhyempi versio, no se nyt... Emmä tiä miks mä en keksinyt tota vaan tein vähän heilauttamalla...
Image

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Esimerkkejä aloittelijoille.

Post by DatsuniG » Sat Feb 21, 2009 10:40 pm

Vastike Coolbasicin omalle partikkelisysteemille. Sisältää kommentoinnin:

Code: Select all

//////////////////////////
//Pakolliset määrittelyt//
//////////////////////////
Type PAR                //
    Field X#            //
    Field Y#            //
    Field Img           //
    Field Angle         //
    Field Speed#        //
    Field Gravity#      //
    Field CurGravity#   //
    Field Ver#          //
EndType                 //
//////////////////////////

//////////////////////
img = MakeImage(3,3)//
Color cbdarkred     //
DrawToImage img     //// Luodaan partikkeleitä varten kuva
    Box 0,0,3,3     //
DrawToScreen        //
//////////////////////

Repeat
If MouseHit(1) Then // Hiirtä painettaessa
    For i = 0 To 29 // Toistetaan 30 kertaa
        CreateParticle(img,MouseX(),MouseY(),Rand(359),0.8,0.05,-1.8) // Luodaan uusi partikkeli
    Next i
EndIf 
UpdateParticles() // Päivitettään partikkelit
DrawScreen
Forever 

//////////////////////////
// Img = Kuvamuuttuja
// x = x-koordinaatti
// y = y-koordinaatti
// angle = Partikkelin kulma
// speed = Partikkelin nopeus
// gravity = Partikkeliin vaikuttava painovoima
// ver = Ylöspäin suuntautuva voima
//////////////////////////
Function CreateParticle(img,x#,y#,angle,speed#,gravity#,ver#)
    uusi.PAR = New(Par)
    uusi\x = x
    uusi\y = y
    uusi\Img = CloneImage(Img)
    uusi\Angle = Angle 
    uusi\Speed = Speed
    uusi\Gravity = Gravity
    uusi\CurGravity = ver * Rnd(0.1,0.9)

EndFunction 

Function UpdateParticles()
    For uusi.PAR = Each PAR
        uusi\CurGravity = uusi\CurGravity + uusi\Gravity 
        uusi\x = uusi\x + Cos(uusi\Angle) * uusi\Speed
        uusi\y = (uusi\y + uusi\CurGravity) - Sin(uusi\Angle) * uusi\Speed
        DrawImage uusi\Img, uusi\x, uusi\y
        If uusi\x< 0 Or uusi\x>ScreenWidth() Or uusi\y<0 Or uusi\y>ScreenHeight() Then Delete uusi
    Next uusi
EndFunction 
Hengität nyt manuaalisesti.

User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Esimerkkejä aloittelijoille.

Post by esa94 » Sat Feb 21, 2009 11:58 pm

Tämmöinen salasanageneraattori. Ei ehkä ihan aloittelijoille, minkä lisäksi sisältää jonkin verran purkkaa ja jesaria, mutta ainakin se tekee luotettavan oloisia salasanoja.

Toimintaperiaate:
  • Tarkista moodi ja alusta sen perusteella taulukko
  • Täytä taulukko ASCII-koodeilla
<For-silmukka, 1 - salasanan pituus
  • Arvo merkkikoodi taulukon merkkialueelta
  • Lisää siihen -5 - 5 (Rand)
  • Lisää se merkkijonon perään
>
  • Palauta valmis salasana

Code: Select all

SCREEN 800, 600
Repeat
    
    Print GeneratePass( 1, 5 )
    Print GeneratePass( 2, 5 )
    Print GeneratePass( 3, 5 )
    Print GeneratePass( 1, 10 )
    Print GeneratePass( 2, 10 )
    Print GeneratePass( 3, 10 )
    Print GeneratePass( 1, 20 )
    Print GeneratePass( 2, 20 )
    Print GeneratePass( 3, 20 )
    
    WaitKey

Forever

//Minun

// _mode = 1 Alfanumeerinen
//        2 Kirjaimet
//        3 Numerot

//_lgt = pituus

//ulostuksena saat salasanan
Function GeneratePass( _mode = 1, _lgt = 5 )

    Dim _counter, i, _char, _plop As Byte
    Dim _string As String
    _counter = 1
    
    Select _mode //_plop on taulukon solujen määrä
    
        Case 1
            
            _plop = 62
        
        Case 2
        
            _plop = 52
            
        Case 3
        
            _plop = 10
    
    EndSelect
    
    Dim _charTable( _plop ) As Byte
    
    Select _mode
    
        Case 1
            
            For i = 48 To 57
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 65 To 90
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 97 To 122
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 1 To _lgt
            
                _char = Rand( 1, 62 ) + Rand( -5, 5 )
                If _char > 62 Then _char = _char - 62
                If _char < 1 Then _char = _char + 62
                _string = _string + Chr( _charTable( _char ) )
           
            Next i
 
        Case 2
            
            For i = 65 To 90
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 97 To 122
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 1 To _lgt
            
                _char = Rand( 1, 52 ) + Rand( -5, 5 )
                If _char > 52 Then _char = _char - 52
                If _char < 1 Then _char = _char + 52
                _string = _string + Chr( _charTable( _char ) )
           
            Next i
            
        Case 3
            
            For i = 48 To 57
            
                _charTable( _counter ) = i
                _counter  = _counter + 1
            
            Next i
            
            For i = 1 To _lgt
            
                _char = Rand( 1, 10 ) + Rand( -5, 5 )
                If _char > 10 Then _char = _char - 10
                If _char < 1 Then _char = _char + 10
                _string = _string + Chr( _charTable( _char ) )
           
            Next i
        
        Default
            MakeError( "Comp1337ly invalid mode To GeneratePass!" )
    
    EndSelect
    
        Return _string

EndFunction 

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Esimerkkejä aloittelijoille.

Post by phons » Sat May 02, 2009 1:05 pm

Tein tällaisen vähän purkkaisan esimerkin Sin:n ja Cos:n käytöstä:

Code: Select all

angle=0
angle2=0

x=200
y=150

Repeat
    
    angle+1
    angle2+2
    x2=x+Cos(angle)*30
    y2=y+Sin(angle)*30
    x3=x+Cos(angle+90)*30
    y3=y+Sin(angle+90)*30
    x4=x+Cos(angle+180)*30
    y4=y+Sin(angle+180)*30
    x5=x+Cos(angle+270)*30
    y5=y+Sin(angle+270)*30
    
    
    Line x,y,x2,y2
    Line x2,y2,x2+Cos(angle2)*20,y2+Sin(angle2)*20
    Line x2,y2,x2+Cos(angle2+90)*20,y2+Sin(angle2+80)*20
    Line x2,y2,x2+Cos(angle2+180)*20,y2+Sin(angle2+160)*20
    Line x2,y2,x2+Cos(angle2+270)*20,y2+Sin(angle2+270)*20
    
    Line x,y,x3,y3
    Line x3,y3,x3+Cos(angle2)*20,y3+Sin(angle2)*20
    Line x3,y3,x3+Cos(angle2+90)*20,y3+Sin(angle2+80)*20
    Line x3,y3,x3+Cos(angle2+180)*20,y3+Sin(angle2+160)*20
    Line x3,y3,x3+Cos(angle2+270)*20,y3+Sin(angle2+270)*20
    
    Line x,y,x4,y4
    Line x4,y4,x4+Cos(angle2)*20,y4+Sin(angle2)*20
    Line x4,y4,x4+Cos(angle2+90)*20,y4+Sin(angle2+80)*20
    Line x4,y4,x4+Cos(angle2+180)*20,y4+Sin(angle2+160)*20
    Line x4,y4,x4+Cos(angle2+270)*20,y4+Sin(angle2+270)*20
    
    Line x,y,x5,y5
    Line x5,y5,x5+Cos(angle2)*20,y5+Sin(angle2)*20
    Line x5,y5,x5+Cos(angle2+90)*20,y5+Sin(angle2+80)*20
    Line x5,y5,x5+Cos(angle2+180)*20,y5+Sin(angle2+160)*20
    Line x5,y5,x5+Cos(angle2+270)*20,y5+Sin(angle2+270)*20
    
    DrawScreen
Until EscapeKey()
Uskoisin että joku innostuu tekemään tästä vähemmän purkkaisan koodin ja tiedän että olisi pitäyt käyttää tyyppejä, mutta ne nyt jäi... :| :roll:
Image

Post Reply