Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Miten tekisin kahden pallon "yhdistymisen"?
Elikkä kaksi palloa yhdistyvät jotenkkin jännästi.
Mielellään Typeä saisi käyttää niin on helppo hallita.
Elikkä kaksi palloa yhdistyvät jotenkkin jännästi.
Mielellään Typeä saisi käyttää niin on helppo hallita.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset
ÖÖJani wrote:Miten tekisin kahden pallon "yhdistymisen"?
Elikkä kaksi palloa yhdistyvät jotenkkin jännästi.
Mielellään Typeä saisi käyttää niin on helppo hallita.
moxd
Re: Tyhmät kysymykset
Voiko CB:llä muuttaa kirjaimet bitti-sarjoiksi?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset
En tiedä millaista yhdistymistä tarkoitit, mutta tässä olisi tällainen
Code: Select all
SCREEN 640,480
Type pallot
Field x#
Field y#
Field xx#
Field yy#
Field koko
Field koko2
EndType
For a=1 To 10
p.pallot=New(pallot)
p\x#=Rand(0,ScreenWidth())
p\y#=Rand(0,ScreenHeight())
p\xx#=Rnd(0.2,2)
p\yy#=Rnd(0.2,2)
p\koko2=Rand(15,40)
Next a
Repeat
For p.pallot=Each pallot
If p\x#<0 Then p\xx#=Abs(p\xx#)
If p\y#<0 Then p\yy#=Abs(p\yy#)
If p\x#>ScreenWidth() Then p\xx#=-Abs(p\xx#)
If p\y#>ScreenHeight() Then p\yy#=-Abs(p\yy#)
p\x#=p\x#+p\xx#
p\y#=p\y#+p\yy#
Next p
Color cbblue
For p.pallot=Each pallot
p\koko=p\koko2
For pp.pallot=Each pallot
p\koko=p\koko+Max(0,(p\koko2+pp\koko2)/2-Distance(p\x#,p\y#,pp\x#,pp\y#)/3)
Next pp
Circle p\x#-p\koko,p\y#-p\koko,p\koko*2
Next p
Color cbblack
For p.pallot=Each pallot
Circle p\x#-p\koko+1,p\y#-p\koko+1,p\koko*2-2
Next p
DrawScreen
Forever
Quidquid latine dictum sit, altum videtur.
Voitot: Viikkokisa XVII
Voitot: Viikkokisa XVII
Re: Tyhmät kysymykset
kirjoittaako seuraava binäärit oikein???
Code: Select all
Print LenTxt(Txt0101("Olen"),5,50)+" "+LenTxt(Txt0101("Jani"),0,50)
Print LenTxt("Olen Jani",0)
WaitKey
Function Txt0101(_txt$) //tämä funktio palauttaa merkkijonon binäärijonon
For i=1 To Len(_txt) //toista silmukkaa rivin viimeiseen kirjaimeen asti
txt=txt+Asc(Mid(_txt,i,1)) //muuta ascii koodiksi
Next i //uusi kierros
txt=Bin(txt) //muuta nykyinen ascii-sarja binäärijonoksi
Return txt //palauta binäärijono
EndFunction
Function LenTxt(_txt$,special=5,odotus=100)
For i=1 To Len(_txt)
k$=Mid(_txt,i,1)
Write k
Wait odotus
DrawScreen OFF
Next i
If special=5 Then Write " "
Return ""
EndFunction
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset
Ei kirjoita. Mikäli nyt yhtään ymmärsin oikein, niin yrität lisätä funktiossa seuraavan kirjaimen ascii-koodin numeron edellisen kirjaimen ascii-koodiin. Tämä ei toimi, koska nyt sinulle muodostuu sanan kirjainten summan binääriesitys eikä jokaisen kirjaimen binääriesitys. Sinun täytyy käsitellä ja tulostaa jokainen kirjain erikseen, jotta voit tulostaa niiden binäärimuotoisen esityksen.Jani wrote:kirjoittaako seuraava binäärit oikein???
-
- Active Member
- Posts: 170
- Joined: Mon Jun 23, 2008 9:04 pm
Re: Tyhmät kysymykset
Ajattelin tässä jatkaa kauan sitten aloittamaani jääkiekkomanagerointipeliä,(tekstipeli) mutta älyni ei riitä muutamaan asiaan, ja kysyn sitten täällä.
1.Kuinka luon vastustajajoukkueet? Typeillä vai kuinka?
2. Joukkueessa on pelaajia 5+ maalivahti. Pelaajien taito on välillä 1-5. (1=huono ja 5=huippu) Sitten kun otellaan niin kuinka luon systeemin, että vertaillaan vastustajajoukkuetta ja omaa joukkuetta. Paremman taidon omaava joukkue voittaa.
3. Sarjataulukko.
En haluasi ihan ensimmäiseksi esimerkkikoodia, vaan neuvoja kuinka tekisin noi toiminnot. Vai onko tämä liian vaikeaa tälläiselle ikuisella aloittelijalle?
Olen nimittäin ikuinen aloittelija
1.Kuinka luon vastustajajoukkueet? Typeillä vai kuinka?
2. Joukkueessa on pelaajia 5+ maalivahti. Pelaajien taito on välillä 1-5. (1=huono ja 5=huippu) Sitten kun otellaan niin kuinka luon systeemin, että vertaillaan vastustajajoukkuetta ja omaa joukkuetta. Paremman taidon omaava joukkue voittaa.
3. Sarjataulukko.
En haluasi ihan ensimmäiseksi esimerkkikoodia, vaan neuvoja kuinka tekisin noi toiminnot. Vai onko tämä liian vaikeaa tälläiselle ikuisella aloittelijalle?
Olen nimittäin ikuinen aloittelija
Väsyttää niin ettei jaksa edes mennä lepäämään.
Re: Tyhmät kysymykset
2. Tee vaikka niin että lasket joukkueen pelaajien taidon keskiarvon ja vertaat sitä toisen joukkueen keskiarvoon.
Re: Tyhmät kysymykset
En saanut toimimaan noin
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset
Tein pienen simulaattorin joka arpoo paremman ja huonomman joukkueen välillä voittajan. Mitä parempi joukkue verrattuna huonompaan, sitä suuremmat mahdollisuudet voittaa.2. Tee vaikka niin että lasket joukkueen pelaajien taidon keskiarvon ja vertaat sitä toisen joukkueen keskiarvoon.
Koodi ei ole juuri mistään kotoisin, koska sen olemassaolon ainut tarkoitus on juuri tämä. Se siis ei missään tapaksessa ole kelvollinen liitettäväksi miksikään osaksi suurempaa kokonaisuutta, vaan ainoastaan havainnollistava esimerkki.
En ole ennen tehnyt mitään vastaavaa simulaattoria, joten totta puhuakseni minun piti keksiä koko systeemi samalla kun koodasin. Maailmassa on mahdollisesti parempiakin tapoja.
Code: Select all
SCREEN 1024, 768
SetWindow "Grand team-simulator"
Type tPelaajat
Field cNimi As String
Field cTiimi
Field cTaito
End Type
Global gPelaajamaara
LuoJoukkueet( 2 )
Repeat
//nollataan muuttujia...
rivi = 0
pelaajat1 = 0
pelaajat2 = 0
yhteistaito1 = 0
yhteistaito2 = 0
//Kirjoitetaan tiimien tiedot ruudulle.
For ip.tPelaajat = Each tPelaajat
If ip <> First( tPelaajat ) Then
lp.tPelaajat = Before( ip )
If ip\cTiimi <> lp\cTiimi Then
rivi = 0
EndIf
EndIf
Select ip\cTiimi
Case 0
yhteistaito1 = yhteistaito1 + ip\cTaito
pelaajat1 + 1
Case 1
yhteistaito2 = yhteistaito2 + ip\cTaito
pelaajat2 + 1
End Select
rivi + 1
Text 20 + 400 * ip\cTiimi, 20 + 20 * rivi, "Nimi: " + ip\cNimi + ", Taito: " + ip\cTaito
Next ip
Text 20, 20, "Tiimi 1"
Text 420, 20, "Tiimi 2"
//lasketaan keskiarvot.
keskiarvo1# = Float( yhteistaito1 ) / pelaajat1
keskiarvo2# = Float( yhteistaito2 ) / pelaajat2
Text 20, 20 * ( pelaajat1 + 3 ), "Keskiarvo: " + keskiarvo1
Text 420, 20 * ( pelaajat2 + 3 ), "Keskiarvo: " + keskiarvo2
//Space tuhoaa aiemmat tiimit, nollaa voitot ja luo uudet joukkueet.
If KeyHit( CbKeySpace ) Then
For ip.tPelaajat = Each tPelaajat
Delete ip
Next ip
gPelaajamaara = 0
LuoJoukkueet( 2 )
voittoja1 = 0
voittoja2 = 0
EndIf
Text 20, 20 * ( pelaajat1 + 5 ), "SPACE arpoo uudet joukkueet."
Text 20, 20 * ( pelaajat1 + 6 ), "ENTER arpoo kumpi joukkue voittaa."
//Arvotaan voittaja.
//Toimii näin:
//muuttuja "lopputulos" on liukuluku väliltä 1 ja 2. Ihannetapauksessa (=yhtä hyvät tiimit) tiimi1 voittaa jos "lopputulos" on
//luku väliltä 1 ja 1.5, sekä tiimi2 voittaa jos "lopputulos" on luku väliltä 1.51 ja 2.
//Muuttuja "tulos" kertoo kuinka paljon parempi toinen tiimi on. Eli jos tulos = 1.5, tiimit ovat yhtä hyviä. Mitä suurempi tulos on, sitä
//parempi toinen tiimi on.
//Parempi tiimi siis voittaa, jos "lopputulos" < "tulos". Mitä suurempi "tulos" on, sitä suuremmat mahdollisuudet "lopputulos"-muuttujalla on olla
//pienempi.
//Muuttuja temp ainoastaan pitää sisällään tiedon kumpi joukkue on parempi.
If KeyDown( CbKeyReturn ) Then
temp# = Min( keskiarvo1, keskiarvo2 ) / Max( keskiarvo1, keskiarvo2 )
tulos# = 2 - temp + 0.5
lopputulos# = Rnd( 1, 2 )
//tässä tiedetään lopputulos (eli voittaako huonompi vai parempi). Nyt ohjelma katsoo kumpi joukkue oikeastaan oli parempi,
//eli kummalle pisteet annetaan, huonommalle vai paremmalle tiimille.
If lopputulos > tulos Then //huonompi tiimi voittaa
If keskiarvo1 <= keskiarvo2 Then
voittoja1 + 1
Else
voittoja2 + 1
EndIf
ElseIf lopputulos <= tulos Then
If keskiarvo1 <= keskiarvo2 Then
voittoja2 + 1
Else
voittoja1 + 1
EndIf
EndIf
EndIf
Text 20, 20 * ( pelaajat1 + 9 ), "Pelejä pelattu: " + ( voittoja1 + voittoja2 )
Text 20, 20 * ( pelaajat1 + 10 ), "Tiimi1:n voitot: " + voittoja1 + ", Tiimi2:n voitot: " + voittoja2
DrawScreen
Forever
Function LuoJoukkueet( _maara )
For i = 0 To _maara - 1
For a = 1 To 5
LuoPelaaja( i )
Next a
Next i
End Function
Function LuoPelaaja( _tiimi )
np.tPelaajat = New( tPelaajat )
gPelaajamaara + 1
np\cNimi = "Pelaaja " + gPelaajamaara
np\cTiimi = _tiimi
np\cTaito = Rand( 1, 5 )
End Function
-
- Active Member
- Posts: 170
- Joined: Mon Jun 23, 2008 9:04 pm
Re: Tyhmät kysymykset
Tuhannet kiitokset Jonez, tuosta on minulle paljon apua!
Väsyttää niin ettei jaksa edes mennä lepäämään.
Re: Tyhmät kysymykset
No muodostaako tämä binäärit oikein??
Code: Select all
WTxt0101("Olen") : LenTxt(" << Olen")
Print "" : WTxt0101("Jani") : LenTxt(" << Jani")
Print "" : Print LenTxt("Olen Jani",0)
WaitKey
Function WTxt0101(_txt$) //tämä funktio palauttaa merkkijonon binäärijonon
For i=1 To Len(_txt) //toista silmukkaa rivin viimeiseen kirjaimeen asti
txtline=Bin(Asc(Mid(_txt,i,1)))
Write txtline
Next i //uusi kierros
Return "" //palauta binäärijono
EndFunction
Function LenTxt(_txt$,special=5,odotus=100)
For i=1 To Len(_txt)
k$=Mid(_txt,i,1)
Write k
Wait odotus
DrawScreen OFF
Next i
If special=5 Then Write " "
Return ""
EndFunction
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: Tyhmät kysymykset
Miksikäs tämä lasku ei toimi tuolla kertomistavalla?
Jaksoin kaivaa oikein graaffisenlaskimen pölykerroksen alta repustani tarkistaakseni tuon laskun tuloksen Jostain syystä tuo alempi lasku antaa väärän tuloksen...
Näin toimii : h1# = ( size# * Sqrt(3) ) / 3
Näin ei?? : h1# = ( size# * Sqrt(3) ) * ( 1 / 3 )
EDIT: thx
Jaksoin kaivaa oikein graaffisenlaskimen pölykerroksen alta repustani tarkistaakseni tuon laskun tuloksen Jostain syystä tuo alempi lasku antaa väärän tuloksen...
Näin toimii : h1# = ( size# * Sqrt(3) ) / 3
Näin ei?? : h1# = ( size# * Sqrt(3) ) * ( 1 / 3 )
EDIT: thx
Last edited by Jonhu on Tue Dec 30, 2008 5:02 pm, edited 1 time in total.
Tekeillä pikkupelejä ja ohjelmia
Re: Tyhmät kysymykset
h1# = ( size# * Sqrt(3) ) * ( 1.0 / 3.0 )
Laitetaan ne desimaalit mukaan, muutenhan tässä jaettaan kokonaisluvuilla ja pyöristettäisiin lähimpään (CB kai pyöristää aina alas?) kokonaislukuun.
Laitetaan ne desimaalit mukaan, muutenhan tässä jaettaan kokonaisluvuilla ja pyöristettäisiin lähimpään (CB kai pyöristää aina alas?) kokonaislukuun.
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
Re: Tyhmät kysymykset
Tarkoitus olisi, että kun on kerran pelannut peliä, niin sen jälkeen palaisi takaisin aloitusruutuun, "menuun". Tämän jälkeen voisi käynistää pelin uudestaan. Kun kuitenkin olet palannut 1. pelin jälkeen "menuun", ja haluaisit käynnistää pelin uudelleen, niin tulee viesti : Error! Memory access violation. Miten voisin tämän koodata, itse yritin vähän ehtolauseilla. Mitä teen väärin?
Alla koko koodi, joka on muuten myös osa Alpha [Beta 2]:n lähdekoodia.
Alla koko koodi, joka on muuten myös osa Alpha [Beta 2]:n lähdekoodia.
Code: Select all
'Alkuvalmistelut
SCREEN 400, 300
AddText "Ladataan.."
times = 0
'Musiikki ennen kaikkea!
PlaySound "media\NFSIIIaquila.mid"
FrameLimit 33
alku :
ClearText
'Ns. menu
Locate 55,115
AddText "Paina 1 aloittaaksesi tavallisen pelin"
AddText "Paina 2 aloittaaksesi kaksinpelin"
AddText "Paina 3 aloittaaksesi HC-pelin"
AddText "Paina 4 nähdäksesi pelin infotiedoston"
Locate 7,5
AddText "Avaruuslentelypeli alpha [BETA 2]"
Locate 7,280
AddText "(c) Veikko 'Wee' Vauhkonen 2008"
'Piirretään ylä-ja alaviivat kentälle
Line 0,26,400,26
Line 0,260,400,260
DrawScreen
WaitKey
ClearText
'Minne mennään menusta?
If KeyDown(cbkey1) Then Goto peli
If KeyDown(cbkey2) Then Goto kaksinpeli
If KeyDown(cbkey3) Then Goto hc
peli :
If times < 1 Then
'Kokoelmat
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type ASTEROIDIT'Kokoelma asteroidi
Field obj'yksi kenttä nimeltään 'obj'
End Type
'Ladataan objecktit, spritet, äänet
ClsColor CbBlack
pumsnd = LoadSound("media/Blaster.wav")
alus = LoadObject("media/ship.png", 4)
pati = LoadObject("media/pati.png", 4)
asteroidi = LoadObject("media/asteroidi.png", 1)
ShowObject pati,OFF
TurnObject alus, 90
PositionObject alus, -160, 30
PositionObject asteroidi, -250,-250
EndIf
pisteet = 0
'PERUSPELISILMUKKA
Repeat
If uusiutuminen>0 Then uusiutuminen=uusiutuminen-1
'Asteroidit...'
If uusiutuminen=0 Then
newAsteroidi.ASTEROIDIT= New(ASTEROIDIT)
newAsteroidi\obj=CloneObject(asteroidi)
PositionObject newAsteroidi\obj, 230, Rand(110,-100)
MoveObject newAsteroidi\obj,Rand(-0.5,-5)
uusiutuminen=Rand(10,27)
EndIf
'Päivitetään asteroidit
a=0
For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
MoveObject aAsteroidi\obj,Rand(-2,-4.5)
If ObjectX(aAsteroidi\obj)< -225 Then
DeleteObject aAsteroidi\obj
Delete aAsteroidi
pisteet=pisteet-10
EndIf
a=a+1
Next aAsteroidi
'Pisteet yläkulmaan
Text 300,2, "Pisteet: "
Text 370,2, pisteet
'Tekstinsyötötökokeilut ylös, ja alaspäin vas. ylänurkka
If UpKey() Then
ClearText
Text 2,2, "Painat nuolta ylöspäin"
EndIf
If DownKey() Then
ClearText
Text 2,2, "Painat nuolta alaspäin"
EndIf
'Päiväys alareunaan
Text 1,280, "Tänään on"
Text 80,280,Date()
Text 177,280,Time()
'FPS oikeaan alareunaan
Text 340,280, "FPS:"
Text 370,280,FPS()
'Piirretään ylä-ja alaviivat kentälle
Line 0,26,400,26
Line 0,260,400,260
'Aluksen liikkuminen
If UpKey() Then MoveObject alus, 4.5
If DownKey() Then MoveObject alus, -4.5
'Aluksen pelikentän rajaaminen
If ObjectX(alus)>200 Then PositionObject alus, 200,ObjectY(alus)
If ObjectX(alus)<-200 Then PositionObject alus, -200,ObjectY(alus)
If ObjectY(alus)>115 Then PositionObject alus, ObjectX(alus),115
If ObjectY(alus)<-100 Then PositionObject alus, ObjectX(alus),-100
'Ampuminen oikealle
If KeyDown(cbkeyspace) And aselataus=0 Then
PlaySound pumsnd, 65
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,alus
PositionObject luoti\obj, ObjectX(luoti\obj)+11.5,ObjectY(luoti\obj)-1
aselataus=8
EndIf
If aselataus>0 Then aselataus=aselataus-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
'Mitäpä jos asteroidi ja ammus törmäävät?
For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
For luoti.AMMUS = Each AMMUS
If Distance2 (luoti\obj, aAsteroidi\obj)<20 Then
pisteet=pisteet+1
DeleteObject aAsteroidi\obj
Delete aAsteroidi
DeleteObject luoti\obj
Delete luoti
Exit
EndIf
Next luoti
Next aAsteroidi
'Pelin lopetus
If pisteet<0 Then
pisteet = 0
ClearObjects
Goto havisit
EndIf
If pisteet>49 Then
pisteet = pisteet+1
ClearObjects
Goto loppu
EndIf
'Pelikentän pisteet, "tähdet"
Dot 40,50
Dot 150,200
Dot 300,97
Dot 270,160
Dot 210,185
Dot 25,143
Dot 180,240
Dot 190,50
Dot 17,85
Dot 45,240
Dot 50,150
Dot 350,200
Dot 75,201
Dot 150,200
Dot 180,150
Dot 120,40
Dot 170,195
Dot 100,110
Dot 365,100
Dot 340,50
Dot 80,70
Dot 240,90
Dot 270,210
Dot 350,220
Dot 170,80
'Se unohtumaton
DrawScreen
Forever
kaksinpeli :
ClearObjects
Text 50,50, "Kaksinpeli on kivaa!"
DrawScreen
WaitKey
End
hc :
ClearObjects
Text 50,50, "HC:kin on kivaa!"
DrawScreen
WaitKey
End
loppu :
ClearObjects
Locate 30,100
AddText "Läpäisit pelin, ja sait 50 pistettä!"
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Avasit peruspelitilan voittamalla HC - moodin!"
DrawScreen
WaitKey
times = times+1
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
havisit :
ClearObjects
Locate 10,100
AddText "Hävisit pelin, sillä pisteesi menivät miinukselle."
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Voit lopettaa pelin painamalla mitä vain"
DrawScreen
WaitKey
times = times+1
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
"This city looks so pretty, do you wanna burn here with me..."
Re: Tyhmät kysymykset
Tuossapa kommentoin nuo kohdat joiden takia MAV syntyy .Wee wrote:Tarkoitus olisi, että kun on kerran pelannut peliä, niin sen jälkeen palaisi takaisin aloitusruutuun, "menuun". Tämän jälkeen voisi käynistää pelin uudestaan. Kun kuitenkin olet palannut 1. pelin jälkeen "menuun", ja haluaisit käynnistää pelin uudelleen, niin tulee viesti : Error! Memory access violation. Miten voisin tämän koodata, itse yritin vähän ehtolauseilla. Mitä teen väärin?
Code: Select all
peli :
If times < 1 Then // <------ jos ensimmäinen pelikerta, lataa objektit ja äänet
'Kokoelmat
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type ASTEROIDIT'Kokoelma asteroidi
Field obj'yksi kenttä nimeltään 'obj'
End Type
'Ladataan objecktit, spritet, äänet
ClsColor CbBlack
pumsnd = LoadSound("media/Blaster.wav")
alus = LoadObject("media/ship.png", 4)
pati = LoadObject("media/pati.png", 4)
asteroidi = LoadObject("media/asteroidi.png", 1)
ShowObject pati,OFF
TurnObject alus, 90
PositionObject alus, -160, 30
PositionObject asteroidi, -250,-250
EndIf
loppu :
ClearObjects
Locate 30,100
AddText "Läpäisit pelin, ja sait 50 pistettä!"
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Avasit peruspelitilan voittamalla HC - moodin!"
DrawScreen
WaitKey
times = times+1
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
havisit :
ClearObjects // <--- KAIKKI OBJEKTIT TUHOTAAN EIKÄ NIITÄ LADATA UUDELLEEN
Locate 10,100
AddText "Hävisit pelin, sillä pisteesi menivät miinukselle."
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Voit lopettaa pelin painamalla mitä vain"
DrawScreen
WaitKey
times = times+1 // <---- pelikertoja lisätään
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
-
- Active Member
- Posts: 170
- Joined: Mon Jun 23, 2008 9:04 pm
Re: Tyhmät kysymykset
Kysyn nyt tyhmyyttäni, olisiko kellään helpompaa esimerkkiä kuin tuo Jonezin esimerkki? Ymmärsin tuosta jonkinlaisen periaatteen kuinka asian voisi tehdä, mutta kun tuo on mielestäni vaikeahko tapa. Minulla ei kovin hyvin ole nääs tyypit hallussa, yritän kyllä opetella
Väsyttää niin ettei jaksa edes mennä lepäämään.
Re: Tyhmät kysymykset
OonSuomesta wrote:Tuossapa kommentoin nuo kohdat joiden takia MAV syntyy .Wee wrote:Tarkoitus olisi, että kun on kerran pelannut peliä, niin sen jälkeen palaisi takaisin aloitusruutuun, "menuun". Tämän jälkeen voisi käynistää pelin uudestaan. Kun kuitenkin olet palannut 1. pelin jälkeen "menuun", ja haluaisit käynnistää pelin uudelleen, niin tulee viesti : Error! Memory access violation. Miten voisin tämän koodata, itse yritin vähän ehtolauseilla. Mitä teen väärin?Code: Select all
peli : If times < 1 Then // <------ jos ensimmäinen pelikerta, lataa objektit ja äänet 'Kokoelmat Type AMMUS 'luo kokoelma, jonka nimi on AMMUS Field obj 'yksi kenttä nimeltään 'obj' End Type Type ASTEROIDIT'Kokoelma asteroidi Field obj'yksi kenttä nimeltään 'obj' End Type 'Ladataan objecktit, spritet, äänet ClsColor CbBlack pumsnd = LoadSound("media/Blaster.wav") alus = LoadObject("media/ship.png", 4) pati = LoadObject("media/pati.png", 4) asteroidi = LoadObject("media/asteroidi.png", 1) ShowObject pati,OFF TurnObject alus, 90 PositionObject alus, -160, 30 PositionObject asteroidi, -250,-250 EndIf loppu : ClearObjects Locate 30,100 AddText "Läpäisit pelin, ja sait 50 pistettä!" AddText "Paina SPACE mennäksesi alkuvalikkoon" AddText "Avasit peruspelitilan voittamalla HC - moodin!" DrawScreen WaitKey times = times+1 If KeyDown(cbkeyspace) Then Goto alku Else End EndIf havisit : ClearObjects // <--- KAIKKI OBJEKTIT TUHOTAAN EIKÄ NIITÄ LADATA UUDELLEEN Locate 10,100 AddText "Hävisit pelin, sillä pisteesi menivät miinukselle." AddText "Paina SPACE mennäksesi alkuvalikkoon" AddText "Voit lopettaa pelin painamalla mitä vain" DrawScreen WaitKey times = times+1 // <---- pelikertoja lisätään If KeyDown(cbkeyspace) Then Goto alku Else End EndIf
Kiitos! Hymy nousu yhtä suureksi, kuin avatarissasi
Päteekö sama noihin typeihin, vai pitääkö nekin ladata aina uudestaan?
"This city looks so pretty, do you wanna burn here with me..."
Re: Tyhmät kysymykset
Sorry tuplapost, mutta...
Korjasin koodin mielestäni oikein, mutta MAV tulee yhä. Tässä nämä strategiset paikat... Tein myös muita pikkumuutoksia...
Korjasin koodin mielestäni oikein, mutta MAV tulee yhä. Tässä nämä strategiset paikat... Tein myös muita pikkumuutoksia...
Code: Select all
alku :
ClearText
'Ns. menu
Locate 55,115
AddText "Paina 1 aloittaaksesi tavallisen pelin"
AddText "Paina 2 aloittaaksesi kaksinpelin"
AddText "Paina 3 nähdäksesi pelin infotiedoston"
If voitot > 0 Then
AddText "Paina 4 aloittaaksesi pelin hc-modella"
EndIf
Locate 7,5
AddText "Avaruuslentelypeli alpha [BETA 2]"
Locate 7,280
AddText "(c) Veikko 'Wee' Vauhkonen 2008"
'Piirretään ylä-ja alaviivat kentälle
Line 0,26,400,26
Line 0,260,400,260
DrawScreen
WaitKey
ClearText
'Minne mennään menusta?
If KeyDown(cbkey1) Then Goto peli
If KeyDown(cbkey2) Then Goto kaksinpeli
If voitot > 0 Then
If KeyDown(cbkey4) Then
Goto hc
EndIf
EndIf
peli :
If times < 1 Then
'Kokoelmat
Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
Field obj 'yksi kenttä nimeltään 'obj'
End Type
Type ASTEROIDIT'Kokoelma asteroidi
Field obj'yksi kenttä nimeltään 'obj'
End Type
EndIf
'Ladataan objecktit, spritet, äänet
ClsColor CbBlack
pumsnd = LoadSound("media/Blaster.wav")
alus = LoadObject("media/ship.png", 4)
pati = LoadObject("media/pati.png", 4)
asteroidi = LoadObject("media/asteroidi.png", 1)
ShowObject pati,OFF
TurnObject alus, 90
PositionObject alus, -160, 30
PositionObject asteroidi, -250,-250
pisteet = 0
voitto :
ClearObjects
Locate 30,100
AddText "Läpäisit pelin, ja sait 50 pistettä!"
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Avasit peruspelitilan voittamalla HC - moodin!"
DrawScreen
WaitKey
times = times+1
voitot = voitot+1
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
havisit :
ClearObjects
Locate 10,100
AddText "Hävisit pelin, sillä pisteesi menivät miinukselle."
AddText "Paina SPACE mennäksesi alkuvalikkoon"
AddText "Voit lopettaa pelin painamalla mitä vain"
DrawScreen
WaitKey
times = times+1
If KeyDown(cbkeyspace) Then
Goto alku
Else
End
EndIf
"This city looks so pretty, do you wanna burn here with me..."