Tyhmät kysymykset (I/2010)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Tyhmät kysymykset (I/2010)

Post by TheDuck »

DJ-Nerd wrote:
Latexi95 wrote:Voisi tuosta jossain vaiheessa väsätä cb:lle rajattoman kokoisten kokonaislukujen hallinta kirjaston...
Tarkoitatko jotain tämäntyyppistä? (tein tässä rajattomien kokonaislukujen yhteenlaskuhomman)

Code: Select all

SCREEN 1300,100
lukujenmäärä=100
vastaus$=""
Dim luku1(lukujenmäärä)
For i=1 To lukujenmäärä
    luku1(i)=Rand(0,9)
    Text 1100-(8*i),0, ""+luku1(i)
Next i
Text 0,20,"+"
Dim luku2(lukujenmäärä)
For i=1 To lukujenmäärä
    luku2(i)=Rand(0,9)
    Text 1100-(8*i),20,""+luku2(i)
Next i
Text 0,40,"="
o=0
lisää=0
For i=1 To lukujenmäärä
    If lisää > 0 Then luku1(i) = luku1(i) +lisää : lisää=0 : o +1
    If luku1(i)+luku2(i) >9 Then
        lisää=RoundDown((luku1(i)+luku2(i))/10)
        vastaus=""+(luku1(i)+luku2(i)-(lisää*10))+""+vastaus
    Else
        vastaus=""+(luku1(i)+luku2(i))+""+vastaus
    EndIf
    o +1
Next i
hd=1100-16-Len(vastaus)*8
Text hd,40, "= "+vastaus
DrawScreen
WaitKey

Öh, ei näin... Miksi oletat että luvuissa on yhtä paljon numeroita? Lisäsin toisen taulukon lukumäärää ja heti meni systeemisi sekaisin...
^^
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

TheDuck wrote:
DJ-Nerd wrote:
Latexi95 wrote:Voisi tuosta jossain vaiheessa väsätä cb:lle rajattoman kokoisten kokonaislukujen hallinta kirjaston...
Tarkoitatko jotain tämäntyyppistä? (tein tässä rajattomien kokonaislukujen yhteenlaskuhomman)

Code: Select all

SCREEN 1300,100
lukujenmäärä=100
vastaus$=""
Dim luku1(lukujenmäärä)
For i=1 To lukujenmäärä
    luku1(i)=Rand(0,9)
    Text 1100-(8*i),0, ""+luku1(i)
Next i
Text 0,20,"+"
Dim luku2(lukujenmäärä)
For i=1 To lukujenmäärä
    luku2(i)=Rand(0,9)
    Text 1100-(8*i),20,""+luku2(i)
Next i
Text 0,40,"="
o=0
lisää=0
For i=1 To lukujenmäärä
    If lisää > 0 Then luku1(i) = luku1(i) +lisää : lisää=0 : o +1
    If luku1(i)+luku2(i) >9 Then
        lisää=RoundDown((luku1(i)+luku2(i))/10)
        vastaus=""+(luku1(i)+luku2(i)-(lisää*10))+""+vastaus
    Else
        vastaus=""+(luku1(i)+luku2(i))+""+vastaus
    EndIf
    o +1
Next i
hd=1100-16-Len(vastaus)*8
Text hd,40, "= "+vastaus
DrawScreen
WaitKey

Öh, ei näin... Miksi oletat että luvuissa on yhtä paljon numeroita? Lisäsin toisen taulukon lukumäärää ja heti meni systeemisi sekaisin...
Öh, ei näin... Sinun tulee muuttaa vain "lukujenmäärä" - muuttujaa numeromäärältään korkeampaa lukua vastaavaksi ja se on siinä. Äsken sinun olisi myös pitänyt muuttaa muutaman silmukan systeemeitä jos et kerran lukumäärä - muuttujaakäyttänyt. Kokeileppa uudestaan ;)
EDIT:

Ehdit vissiin koittaa koodia, jonka ehdin juuri korjata siinä välissä ennen kuin lähetit viestisi, mutta liitit viestiin kuitenkin korjatun koodin ;)

Last edited by DJ-Filbe on Thu May 27, 2010 8:39 pm, edited 3 times in total.
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Tyhmät kysymykset (I/2010)

Post by JATothrim »

Tässä oikea äärettömän kapasiteetin omaava integer laskuri, joka ei hukkaa bittejä. Yksi "luku" voi olla niin pitkä kuin koneessa on vain muistia tarjolla. Jättiluvun kasvatus ja vähentäminen yhdellä ovat helppoja tehdä, mutta mm. summa menee jo hankalaksi toteuttaa. Summassa taitaa olla muuten ajatus virhe.. miettikääpä asiaa. mrgreen:

Code: Select all

SCREEN 400,480

Dim hugevalue(32) As Byte	'quadruple-quadruple-word aka. 256bit integer :D
Dim hugevalue2(32) As Byte

// limitation: 32bit integer works as "carry-flag" in arithmetic functions (sum and minus) 
// so maximum huge value is log2(255*x) < 32 ~ 16843009 bytes long. pretty huge still eh?

Repeat
	hugevalue2(0) = 254
	For i = 0 To 31
		Text 0,i*12,Right(Bin(hugevalue(i)),8)+" "+hugevalue(i)
	Next i
	For i = 0 To 31
		Text 150,i*12,Right(Bin(hugevalue2(i)),8)+" "+hugevalue2(i)
	Next i
	DrawScreen
	If Not KeyDown(cbkeyspace) Then WaitKey
	'dechuge()
	addhuge()
Forever

Function inchuge()
	hugevalue(0) = hugevalue(0) + 1
	While hugevalue(i) = 0
		i=i+1
		hugevalue(i) = hugevalue(i) + 1
	Wend
EndFunction

Function dechuge()
	hugevalue(0) = hugevalue(0) - 1
	While hugevalue(i) = 255
		i=i+1
		hugevalue(i) = hugevalue(i) - 1
	Wend
EndFunction

Function addhuge()
	Dim carry As integer
	Repeat
		carry = (carry + hugevalue2(i))			'set carry
		If (255 - hugevalue(i)) >= carry		'check If carry fits into current Byte
			hugevalue(i) = hugevalue(i) + carry 'add carry
			carry = 0
		Else
			carry = carry - (255 - hugevalue(i)) 'no, it did Not: substract empty
			hugevalue(i) = (255 - hugevalue(i))	 'set inverse
		EndIf
		i=i+1
	Until i > 31
EndFunction
-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
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2010)

Post by esa94 »

JATothrim: Etkö olisi vain voinut käyttää muistipalaa ja big-endian -lukuja?
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (I/2010)

Post by phons »

Nyt kyllä bugaa pahasti! DrawScreen tuottaa MAV:in! En viitsisi lähetää projektin koodia yleiseen jakeluun, mutta onko mitään ehdotuksia syyksi?

Olen kyllä kokeillut waittejä sen etenn mutta ei se auta... Olen tosin huomannut tämän ennenkin, mutta vain tällä konella joten se sattaa olla konekohtaista...
Last edited by phons on Thu May 27, 2010 9:32 pm, edited 1 time in total.
Image
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2010)

Post by Jonez »

Jos cb tuottaa esim. ylimääräisen rivin takia täysin epäloogisen mavin, saattaa uusi rivi korjata asia. Esim. Wait 1 ennen mavin "aiheuttavaa" riviä saattaa korjata vian. Myöhemmin, kun koodi kasvaa, voi Wait 1:n poistaa ilman että mysteerimavi uusiutuu.

Näitä cb:n hienouksia :)
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by Feuer »

Kohtasin vanhan Battlejeep - sharewaren ja jäin koukkuun jälleen. Mietin että voisi maksaakin siitä sen rekisteröintihinnan, mutta pelin toimivuus oli nollaluokkaa Vistalla ja 7:lla. Jalostin ajatusta ja nyt olen tehnyt pelistä kloonin CB:llä. Ongelma on siinä että kun tuolla autolla ammuskelee (ylänuoli) niin jollain todennäköisyydellä tulee MAV. Näkisikö joku viisaampi tuosta koodista mikä sen aiheuttaa?
Attachments
battlejeepklooni.zip
(6.54 KiB) Downloaded 246 times
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2010)

Post by Jonez »

Pelissä voi tulla tapaus, jossa helikopteri tuhotaan, mutta sen jälkeen tarkastetaan onko ko. (tuhottu) objekti jonkin ammuksen päällä -> Mav.

Pientä huomautettavaa:
Ammusten käyttäytyminen on koodattu aika oudosti. Ammukset käydään läpi yhden framen aikana yhtä monta kertaa kuin helikoptereita on olemassa. Eli jos ammuksia liikutetaan normaalisti nopeudella ammusnopeus, ammukset liikkuvatkin nopeudella ammusnopeus * helikopterimäärä. Sen takia ammusten nopeus pelissä kiihtyy.

Objektit kannattaa tuhota vasta silmukan lopussa. Eli keskellä silmukkaa tehdään tarkastukset tuleeko objekti tuhota, ja jos näin on, annetaan jollekin muuttujalle arvo. Jos ko. muuttujan arvo = True silmukan lopussa, tuhotaan objekti. Mutta ei ennemmin. Näin saadaan väistettyä ainakin pari mavia.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 »

Sitten vielä rivillä 50 on pieni typo. "reunevaireuna":n pitäisi olla "reunavaireuna", tai sitten se oli aikaisemmin kirjoitettu väärin. Ajattelin vain mainita ennenkuin ehdit kysyä miksi helikopterit liikkuvat aina vain toiseen suuntaan.
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by Feuer »

Latexi95 wrote:Ajattelin vain mainita ennenkuin ehdit kysyä miksi helikopterit liikkuvat aina vain toiseen suuntaan.
Enpä ajatellut kysyä, mutta olin pistänyt tuon käyttäytymisen merkille. Kiitän teitä molempia!
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
TheLostWayfarer
Newcomer
Posts: 7
Joined: Sat Apr 17, 2010 6:22 pm

Re: Tyhmät kysymykset (I/2010)

Post by TheLostWayfarer »

Onko laatikkopoiminta ympyräpoimintaa nopeampi?
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 »

TheLostWayfarer wrote:Onko laatikkopoiminta ympyräpoimintaa nopeampi?
Empä ole kokeillut... Siinäpä sinulle oiva harjoitus. Tee molemmilla tavoilla esim. 10000
poimintaa ja vertaa aikoja, niin saat sen selville. Määrän täytyy olla kohtuu suuri, että ero
näkyy, sillä ero on todennäköisesti hyvin pieni. Käytännössä sillä tuskin on kovin suurta
merkitystä, joten kannattaa käyttää sitä mikä parhaiten sopii poimittavan kappaleen muotoon.
Pikselintarkka tarkistus on taas sitten omaa luokkaansa, eli reilusti hitaampi.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2010)

Post by esa94 »

TheLostWayfarer wrote:Onko laatikkopoiminta ympyräpoimintaa nopeampi?
Ei. Ympyräpoiminnassa pitää tarkistaa ainoastaan etäisyys, joten se on nopeampi.
Nassi_Setä
Advanced Member
Posts: 281
Joined: Sat Jun 28, 2008 5:19 pm
Location: Hämeessä miä

Re: Tyhmät kysymykset (I/2010)

Post by Nassi_Setä »

Minua kiinnostaisi kuinka LoadImage ja -object oikein toimivat, siis minkälainen rakenne on median lataus funkkarilla?
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....
hybrid
Newcomer
Posts: 18
Joined: Sun Apr 18, 2010 5:24 pm

Re: Tyhmät kysymykset (I/2010)

Post by hybrid »

esa94 wrote:
TheLostWayfarer wrote:Onko laatikkopoiminta ympyräpoimintaa nopeampi?
Ei. Ympyräpoiminnassa pitää tarkistaa ainoastaan etäisyys, joten se on nopeampi.
Toisaalta etäisyyden laskeminen on monimutkaisempi operaatio kuin pienempi/suurempi kuin vertailut.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Tyhmät kysymykset (I/2010)

Post by MaGetzUb »

Nassi_Setä wrote:Minua kiinnostaisi kuinka LoadImage ja -object oikein toimivat, siis minkälainen rakenne on median lataus funkkarilla?
viewtopic.php?f=12&t=21444 ;) Siinä ois melko pitkälle hyvää median käsittelyä.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 »

MaGetzUb wrote:
Nassi_Setä wrote:Minua kiinnostaisi kuinka LoadImage ja -object oikein toimivat, siis minkälainen rakenne on median lataus funkkarilla?
viewtopic.php?f=12&t=21444 ;) Siinä ois melko pitkälle hyvää median käsittelyä.
Minä veikkaan, että Nassi Setä ei hakenut tuollaista. Itse ymmärsin, että hän
haluaisi tietää miten nuo funktiot käytännössä toimisivat, eli miten ne on tehty.
Minä en osaa tähän kovin tarkasti vastata, koska en ole perehtynyt cb:n rakenteeseen,
mutta luulisin, että ne luovat jäsenen luokkaan johon tallennetaan ladattu kuva ja muut tiedot.
Sitten vain palautetaan viittaus jäseneen.
Zero, joku muu kehittäjä tai muuten asiasta tietävä voi sitten korjata ja tarkentaa käsitystäni.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2010)

Post by esa94 »

Latexi95 wrote:
MaGetzUb wrote:
Nassi_Setä wrote:Minua kiinnostaisi kuinka LoadImage ja -object oikein toimivat, siis minkälainen rakenne on median lataus funkkarilla?
viewtopic.php?f=12&t=21444 ;) Siinä ois melko pitkälle hyvää median käsittelyä.
Minä veikkaan, että Nassi Setä ei hakenut tuollaista. Itse ymmärsin, että hän
haluaisi tietää miten nuo funktiot käytännössä toimisivat, eli miten ne on tehty.
Minä en osaa tähän kovin tarkasti vastata, koska en ole perehtynyt cb:n rakenteeseen,
mutta luulisin, että ne luovat jäsenen luokkaan johon tallennetaan ladattu kuva ja muut tiedot.
Sitten vain palautetaan viittaus jäseneen.
Zero, joku muu kehittäjä tai muuten asiasta tietävä voi sitten korjata ja tarkentaa käsitystäni.
Veikkaisinpa, että ladataan tiedosto muistiin, konvertoidaan haluttuun formaattiin, lähetetään DirectX:lle ja sidotaan uniikkiin tekstuuri-id:hen.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Miksi screenshot-komento ei tallenna lattiaobjektia eikä pelin objekteja? Eikö sen pidäkkään tehdä sitä?
EDIT:

Ei sit vissiin :cry:

E2: olisiko mitään keinoa ottaa screenshot peistä niin että ihan kaikki näkyisi siinä?
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

DJ-Nerd wrote:Miksi screenshot-komento ei tallenna lattiaobjektia eikä pelin objekteja? Eikö sen pidäkkään tehdä sitä?
EDIT:

Ei sit vissiin :cry:

E2: olisiko mitään keinoa ottaa screenshot peistä niin että ihan kaikki näkyisi siinä?
Kokeile DrawGamea ennen screenshotin ottamista.
Locked