Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Oma "ohjelmointikieli" Javalla

Sivun loppuun

kpzpt [01.09.2008 00:13:58]

#

Hei!

Java käytössä Linux Ubuntussa.

Olen tekemässä useita lautapelejä, kotisivuilleni.
Java on aika runsas funktioinen ohjelmointi kieli.

Nämä lautapelit ovat aika helppo toteuttaa Java ja AWT ja Net yhdistelmällä.

kuitenkin, ajattelimpa, että jos samalla heittäisi kasaan jonkin suppean
ohjelmointi kielen lautapeleilleni.

tekis siis eräänlaisen "kpzpt Basic V1.0" ohjelmointi kielen,
jonka lähde koodia ( .bas file ) luettaisiin Java Appletissa.

Ajattelin että tuota .bas filettä sitten lukisi Javan skanner luokassa
taikka sitten tekisi oman stringistä etsijän.

( edit. tämä .bas file kannattaa varmaankin kääntää ensin binaarimuotoon,
eli jokin oma .class file )

mitenkä minun kannattaa lähestyä projektiani.

olisi mukava sanoa että omalla ohjelmointi kielellä rakensin lautapeli sivut.

mitä tapoja on tai mikä tapa olisi paras suorittaa skanner luokan sitten
löytämät omat funktiot ja muutkin ( if else, while, case ) käskyt ??

entä kuinka toteuttaisin muuttujat ??

kaikki canvakset ja bufferstrategyt voisi olla jossain omassa initscreen (w,h);
ja sitten kaikki line ellipse rect käskyt voisi suorittaa ilman getGraphics();
goto gosub return ??

lautapelien tekeminen olisi sitten huomattavasti selkeämpää.

mikä olisi paras tapa toteuttaa muuttujat ja if else ja do while vaiheet koodissa.

//----

kiitos,,

temu92 [01.09.2008 00:26:34]

#

Imo jos riittää taitoa tehdä oma ohjelmointikieli niin eikös se olisi helpompaa koodata se peli sitten ihan suoraan javalla ilman omia väliviritelmiä. Tietenkin tämä on vain oma mielipiteeni.

P.S. Voisit kanssa vähän selventää kirjotustas, hirvittävä määrä yhdys_sana_virheitä, isot kirjaimet puuttuu jne.

kpzpt [01.09.2008 01:12:03]

#

Hei!

Ajattelin seuraavasti, korjatkaa jos en ymmärrä jotain selkeämpää.

Basic siis pyörii Java Appletissa ( myöhemmin kentis applicationissa ).

Ensin ladataan .bas file.
tämä kompiletaan 32bit binaari muotoon java scanner luokalla.

peruskäskyt 1000->
esim if on 1000
esim else on 1001

muuttujat int 10000->
esim ensimmäinen muuttuja "int moi1" olisi 10000
esim toinen muuttuja "int moi2" olisi 10001
esim muuttuja pötkö "int moi3 [30]" olisi 10002-10032
int voisi kylläkin olla esim. 32bit .bas fileessä.

muuttuja stringit 1000000->

muuttujat bimage 9000->
bimagelle myös raster suoraan basicciin.

graafiset funktiot 3000->
esim initscreen olisi 3000
esim line olisi 3010
esim pixel olisi 3011
esim rect olisi 3012

iffin rakentaisin niin että lukisin ensin tätä binaari pötköä,
kun 1000 löytyy niin sitten javassa if aktivoituu.
lasken < > <= == >= <> merkkien kummallakin puolella olevat muuttujat yhteen ja
teen nopean vertaamisen.

tämä taitaa ollakkin parin viikon homma koko "kpzpt Basic V1.0"

---------------------

P.S. kirjoitus virheistäni,
niin olen syntynyt niin monta vuotta sitten että en muista enää puolikasta lukiota jonka suoritin joskus 90 luvulla.

Grez [01.09.2008 01:53:49]

#

Niin, toiset opettelee lisää lukion jälkeen, toiset taas keskittyy unohtamaan nekin vähät mitä lukiossa oppi :D

Mutta siis tuo ehdottamasi järjestely olisi pikemminkin tavukoodikääntäjä kuin tulkki.

Valmiita oppaita ja esimerkkikoodeja basic-tulkeista on netti pullollaan, joten en näe oikeastaan hirveästi järkeä lähteä ihan alusta liikenteeseen, ellei sitten tosiaan halua tehdä ihan omaa toteutusta. Jos taas haluat ihan oman toteutuksen tehdä, niin sitten en toisaalta näe järkeä kysellä muilta.

Jackal von ÖRF [01.09.2008 02:00:30]

#

Jo kääntäjän ja tulkin tekeminen yksinkertaiselle konekielelle on kohtalaisen haastava projekti (kokenutkin koodaaja joutuu siinä pähkäilemään ja toteutukseen mennee pari viikoa - aloittelijalta ei onnistu ollenkaan). Korkean tason kielen kääntäjän tekeminen on sitten vielä astetta vaikeampaa. Ainakin sen tekemisessä oppii jotain.

Ehkä täältä löytyy jotain sopivaa itseopiskelumateriaalia:
http://www.cs.helsinki.fi/kurssit/aine/581305/
http://www.cs.helsinki.fi/kurssit/syventavat/58144/

Tuolla ensimmäisellä kurssilla käytetyn Titokone-konekielisimulaattorin tekoa yritettiin useana eri vuotena ohjelmistotuotantoprojekteissa (n. 5 oppilasta kolmannella opintovuodellaan, aikaa 14 viikkoa), kunnes sitten yhdellä yrittämällä onnistuttiin tuottamaan käyttökelpoinen ohjelma. Kertonee hieman projektin vaativuudesta (tai keskiverto-yliopisto-opiskelijan taidoista).

Tuo jälkimmäinen kurssi (jolla toteutetaan harjoitustyönä kääntäjä) puolestaan on tarkoittu loppuvaiheen (n. 4-5. vuoden) opiskelijoille ja on kuulemani mukaan yksi työläimmistä kursseista.

anttipanda [01.09.2008 13:43:47]

#

Itse tutustuisin johonkin basic-tyyliseen valmiiseen javalla pyörivään skriptikieleen jos basic sinua miellyttää, ei sinun itse tarvitse sitä alkaa väsäämään. Ilmeisesti kyseessä on kuitenkin appletit pelien tullessa kotisivuille, ei kannata alkaa mitään sen kummempia yrittää häsläämään minkään oikean kääntäjän kanssa.

Pelkkä ajonaikainen skriptitulkki riittää aivan varmasti lautapelien ollessa kyseessä. Skriptiä ei tarvitse edes kääntää. Voit toki tehdä sellaisen, että tulkkiluokkasi osaa avata valmiiksi komennoiksi tulkatun tiedoston, tai sitten tekstitiedoston. Pelikoodissasi eron ei tarvitsisi näkyä kuin esimerkiksi näin:

KpzptScriptIntepreter skript = new KpzptScriptIntepreter("munFile.filee", PreCompiled);
//tai
KpzptScriptIntepreter skript = new KpzptScriptIntepreter("munFile.filee", Text);

kpzpt [01.09.2008 22:09:33]

#

Jeh!

Päädyin tähän "kpzpt Basic V1.0" rakenteluun.
valikoin sitten mahtiponteisen nimen kielelle kunhan valmistuu.

Teen appletin jossa on textarea ja compile&launch button.
c&l button sitten kääntää textarean tekstin 32bit binaari muotoon.

tätä binaari pötköä sitten luen appletista käsin ja pyöritän screeniä framessa.

kun myöhemmin julkaisen pelejäni niin ne sitten ovat ilman tätä "editoria"
jokin applet lataus ruutu ja sitten itse peli.

kuten aikaisemmissa viesteissä mainittiin niin netistä varmaankin löytyy
paljon apua.

kuitenkin jos tällä forumilla käsittelisi asiaa, niin, mikä teidän mielestänne
olisi paras tapa rakentaa if käsky, se taitaakin olla monimutkaisin vaihe koko
projektissani, tarkoitan lähinnä sulkujen purkua esim.
if { ( 1 + 2 ) + 12 + moi [ab+ac[a+sin(1)] > 5 };
if { 12 > "12" } int käännetään string muotoon tässä vertailussa.

mikä noille olisi juuri se vain nopein ja vain paras tapa käsitellä if koodi.
( java siis kyseessä, ei mikään maailman nopein ohjelmointi kieli. )


//----

kiitos,,

Grez [01.09.2008 22:30:10]

#

Tuskin sitä lausekkeenlaskentarutiinia kannattaa rakentaa pelkkää if:iä varten erikseen, kun kuitenkin tarvitset saman kun sijoitat tuloksen muuttujaan.

kpzpt [01.09.2008 22:33:28]

#

Grez kirjoitti:

Tuskin sitä lausekkeenlaskentarutiinia kannattaa rakentaa pelkkää if:iä varten erikseen, kun kuitenkin tarvitset saman kun sijoitat tuloksen muuttujaan.

Heh.

olen sanaton.

tuo muuttujan löytyminen aktivoisi sitten aina funktio kutsun joka palauttaa arvon muuttujalle.
[edit]
kuitenkin ajattelin että tuo on varmaankin nopeampaa sisällyttää iffiin koska
funktion kutsuminen muuttujaa varten vie aikaa. taidan sittenkin olla oikeassa
kun if sisältää tuon kyseisen purun.
taitaa mennä sitten copy&pastella. muuttujan käsittelyyn ja if lauseeseen.

mitä sanot pelkästä sulkujen purkamisesta.

esim.

if { ( 1 +2 ) - ( 2 * ( ( 2 -3 ) + 1 ) ) }

entä or ja and esim. if { a > 1 } or { a < 2 } or { a = 3 }

mikä olisi nopein tapa javalla käydä nuo lävitse.

//----

kiitos,,

Blaze [01.09.2008 22:39:10]

#

http://en.wikipedia.org/wiki/Shunting_yard_algorithm

kpzpt [01.09.2008 22:55:02]

#

Jeh!

Ajattelin että ensin etsisi sulut () binaari pötköstä ensin ( ja sitten )
jos löytyy kaksi tai useampi ( sulkua niin jatkaa etsimistä kunnes löytyy ( ja )

tätä () binaari pötköä sitten käydään lävitse kunnes se palauttaa arvon.
tämä () välinen binaari jono poistetaan alkuperäisestä ja se korvataan
lasketulla luvulla.
tätä jatketaan kunnes koko alkuperäinen binaari pötkö on käyty lävitse
ja palauttaa vain yhden luvun.

mikä lähestymis tapa olisi paras Javan ollessa kyseessä.

entä sitten iffin jälkeinen koodi.

esim
if { a = b }
begin

e = 1
if { c = d }
begin
end

end

mikä olisi paras lähestymistavoista purkamaan begin->end ja sen sisenteet.

//----

kiitos,,

Grez [01.09.2008 23:13:11]

#

Sanoisin kyllä että kannattaa ennemmin käyttää valmiita pitkälle mietittyjä algoritmeja, kuten tuota Blazen linkkaamaa, ennemmin kuin alkaa kehitellä omia. Ellei sitten ole tietorakenteiden ja algoritmien guru. (Jossa tapauksessa tuskin kyselisit täällä)

Sitten mitä tulee tuohon erilliseen koodiin Iffien ja muuttujaan sijoittamien tapauksessa:

kpzpt kirjoitti:

kuitenkin ajattelin että tuo on varmaankin nopeampaa sisällyttää iffiin koska funktion kutsuminen muuttujaa varten vie aikaa. taidan sittenkin olla oikeassa kun if sisältää tuon kyseisen purun. taitaa mennä sitten copy&pastella. muuttujan käsittelyyn ja if lauseeseen.

Se funktiokutsun kustannus on aivan minimaalinen verrattuna siihen kuinka paljon hyötyä koodin ylläpidettävyyden ja luettavuuden kannalta on yhteen funktioon sisällyttämisessä. Sitä paitsi se parsiminen todennäköisesti kuluttaa kuitenkin 10-1000 kertaa enemmän aikaa kuin se funktiokutsu, joten sanoisin että haiskahtaa taas pahasti ylioptimoinnille.

Copy&paste -koodaus on lähes aina pahasta. (Ainoa poikkeus joka tulee mieleen on mikäli maksettaisiin koodaamisesta euroa/KLOC -periaateella)

Kannattaa ensin keskittyä ongelmaan, ja vasta sitten lopuksi jos tulee pullonkauloja niin optimoida niitä. Varsinkin kun tässä on aika selvästi O(n) tason ongelmasta kyse.

Jackal von ÖRF [01.09.2008 23:37:57]

#

Parserin tekemiseksi täällä näyttää olevan linkkejä, joista saa lisätietoa:

http://en.wikipedia.org/wiki/Abstract_syntax_tree
http://en.wikipedia.org/wiki/Parser
http://en.wikipedia.org/wiki/Compiler

Lykkyä tykö.

kpzpt [01.09.2008 23:59:36]

#

Vielä!

Java Appletilla taitaa yhä olla tuo 64m muistinkäyttö raja,
aika riittävää minulle, mutta ei aina.

kuinka jos käyttäisi BufferedImagea ja ( hmm mikä se nyt oli.. )
oliko se parser, tämä jolla pääsee suoraan käsiksi kuvan byte karttaan.

niin, ovatko bufferedimaget automaattisesti aina näytönohjaimen muistissa.
täytyykö niitten olla compatible jotta ovat NVIDIA muistissa ??

ajattelin että jos jonottaisi kaikki muuttujat.
eräänlaiseen pointteriin joka osoittaa bufferedimageen.

onko siis mahdollista käyttää näytönohjaimen muistia,
kun haluaa ylittää Appletin 64m rajan.

128m - 512m on jo aika yleistä nyky näytönohjaimissa.

onko mahdollista ottaa ainoastaan ATI/NVIDIA/JNE muisti käyttöön muuttujille.
kaikkiaansa sitten vielä nopeampaakin ??
toimisiko ??

mikäs tämän, oliko se nyt parser, toiminta tapa oli Javassa ??
peilasiko se sittenkin RAM muistin kautta, kun otti BImagen "pointterin" ??
eli, ei toimisi kuten rakentelin ??

//----

kiitos,,

Grez [02.09.2008 00:19:17]

#

kpzpt kirjoitti:

onko mahdollista ottaa ainoastaan ATI/NVIDIA/JNE muisti käyttöön muuttujille.
kaikkiaansa sitten vielä nopeampaakin ??

Kuulostaa kyllä mielenkiintoiselta viritykseltä, en osaa sanoa yhtään toimisiko. Mutta sen voin sanoa, ettei se ole prosessorille ainakaan nopeampaa käyttää näytönohjaimen muistia AGP/PCI-X väylän kautta kuin käyttää suoraan keskusmuistia.

anttipanda [02.09.2008 09:45:23]

#

Kuulostaa tosiaan erikoiselta viritykseltä appletille, jonka pitäisi toimia jokaisessa selaimessa johon javaplugari on asennettu... Java ja appletit on sellainen yhdistelmä joiden kanssa en heti alkaisi miettimään suurta suorituskykyä enkä käyttäjän rautaa...

Laitinen [02.09.2008 10:38:06]

#

Joo metsään ollaan menossa ja lujaa jos tehdään java-appletilla omaa tulkkia omalle ohjelmointikielelle ja mietitään että miten luetaan se mahdollisimman tehokkaasti...

_Pete_ [03.09.2008 08:33:31]

#

kpzpt kirjoitti:

Java Appletilla taitaa yhä olla tuo 64m muistinkäyttö raja,
aika riittävää minulle, mutta ei aina.

Tuota rajaa olet tainnut hehkuttaa jo aikaisemmin ja silloin todettiin
että mitään tuollaista 64m applet rajaa ei ole olemassakaan. Sen sijaan
JVM:llä on raja paljonko muistia se saa käyttöönsä. Tuota rajaa pystyy
muuttamaan haluamakseen komentorivikytkimillä.

ps. Mitä jos kerrankin *oikeasti* lukisit edes yhden perusperusoppaan
ennen tällaisten monimutkaisten juttujen suunnittelemisen aloittamista?

kpzpt [03.09.2008 09:46:26]

#

_Pete_ kirjoitti:

kpzpt kirjoitti:

Java Appletilla taitaa yhä olla tuo 64m muistinkäyttö raja,
aika riittävää minulle, mutta ei aina.

Tuota rajaa olet tainnut hehkuttaa jo aikaisemmin ja silloin todettiin
että mitään tuollaista 64m applet rajaa ei ole olemassakaan. Sen sijaan
JVM:llä on raja paljonko muistia se saa käyttöönsä. Tuota rajaa pystyy
muuttamaan haluamakseen komentorivikytkimillä.

ps. Mitä jos kerrankin *oikeasti* lukisit edes yhden perusperusoppaan
ennen tällaisten monimutkaisten juttujen suunnittelemisen aloittamista?

Jeh!

muistankin nyt topicin,
minä en onnistunut tuossa n64m rajan nostossa.
http://www.duckware.com/pmvr/howtoincreaseappletmemory.html

minulla on Ubuntu ja siinä Firefox ja Opera selaimina.

voisitko laittaa yhden <APPLET></APPLET> litanian esimerkkinä, niin kokeillaan.
laita vaikka 128m. en itse ole onnistunut nostossa.
tarkoitus on että Applet toimii vaikka käyttäjä ei muuta omia VM asetuksiaansa.
eli se Xmx128m pitäisi jotenkin laittaa tuohon <APPLET> litaniaan.

en ole tietokone ammattilainen, mutta ärhäkät ohjelmointi projektit ovat mukavia.

lainaus:

Joo metsään ollaan menossa ja lujaa jos tehdään java-appletilla omaa tulkkia omalle ohjelmointikielelle ja mietitään että miten luetaan se mahdollisimman tehokkaasti...

tarkoitus että ohjelmointi kieleni toimii selaimessa, eli JAVA on ihan ok.
tarkoitus ei ole tehdä 3D peliä, vaikka Java kykeneekin sellaiseen.
yksinkertaisia lautapelejä. AWT 2D on nopea Bufferstrategyllä ja Bufferedimageilla jotenka Java on mitä sopivin tarkoitukseeni.
laskin että vanha AMD 1.733Gz toimisi GF5200FX kanssa kieltäni ajaen noin 50 framea/sec.
ja itse coordinaatti looppi sitten vaikka 500 framea / sec.
kyllä nyky Java on jo tehokas ja hyvä ohjelmointi kieli,
ja Java Applet on aivan yhtä nopea mitä Java Application.
ainoastaan tuo 64m muistiraja erottaa appletin applicationista kuten myös se että applet pyörii selaimen ikkunalla.

"Kpzpt Basic V1.0" "hitaus" tulee johtumaan if käskyn noin (x)xx kertaisesta hidastumisesta Javaan verrattuna.
itse Image piirrot ja verkkorutiinit ja muutkin componentit ovat aivan yhtä nopeita mitä Javassa.

vielä tästä koodi nopeudesta. käännän .bas fileen sitten int [] muotoon
jota luen omassa tulkissani, eli, ei tästä nyt ihan niin hirveän hidas tule.

if käskyn rakentaminen taitaa olla haastavin, mutta ei sekään niin kovin paha,
loppu menee funktio kutsuilla.

//----

kiitos,,

_Pete_ [03.09.2008 10:35:16]

#

kpzpt kirjoitti:

Jeh!

muistankin nyt topicin,
minä en onnistunut tuossa n64m rajan nostossa.
http://www.duckware.com/pmvr/howtoincreaseappletmemory.html

Googlen ensimmäinen löytö hakusanoilla: java applet memory limit

http://www.duckware.com/pmvr/howtoincreaseappletmemory.html

kpzpt kirjoitti:

laskin että vanha AMD 1.733Gz toimisi GF5200FX kanssa kieltäni ajaen noin 50 framea/sec.
ja itse coordinaatti looppi sitten vaikka 500 framea / sec.
kyllä nyky Java on jo tehokas ja hyvä ohjelmointi kieli,
ja Java Applet on aivan yhtä nopea mitä Java Application.

Kun kerran tuollaisen luvun laskit niin varmasti käytit kaavaa millä sait tuloksen aikaiseksi, mikäköhän tämä kaava mahtaa olla ?

kpzpt [04.09.2008 02:14:16]

#

_Pete_ kirjoitti:

kpzpt kirjoitti:

Jeh!

muistankin nyt topicin,
minä en onnistunut tuossa n64m rajan nostossa.
http://www.duckware.com/pmvr/howtoincreaseappletmemory.html

Googlen ensimmäinen löytö hakusanoilla: java applet memory limit

http://www.duckware.com/pmvr/howtoincreaseappletmemory.html

kpzpt kirjoitti:

laskin että vanha AMD 1.733Gz toimisi GF5200FX kanssa kieltäni ajaen noin 50 framea/sec.
ja itse coordinaatti looppi sitten vaikka 500 framea / sec.
kyllä nyky Java on jo tehokas ja hyvä ohjelmointi kieli,
ja Java Applet on aivan yhtä nopea mitä Java Application.

Kun kerran tuollaisen luvun laskit niin varmasti käytit kaavaa millä sait tuloksen aikaiseksi, mikäköhän tämä kaava mahtaa olla ?

Ainoastaan if lause on hitaampi Basicissani.

Kaikki Image ja AWT ja Component ( Canvas, JTextArea, jne ) ovat aivan yhtä nopeita sillä nehän menevät oikeastaan suoraan yhdellä funktio kutsulla.

minulla Java AWT Graphics2D pyörii 80fps, varovainen arvio on että tämä oma
kieleni pyörisi jotain 50-75fps.

tuo if käskyn rakentaminen on ongelmana,
sulkujen purkamiseen menee oma aikansa, aika iso aika lohko itse asiassa.
tulee monta Java iffiä kun rakentaa oman Basic iffin.

että noin,,

voisitkos sinä vastaavasti nyt luovuttaa minulle toimivan <APPLET></APPLET>
tagin jossa on 128m varattuna appletille.

en voi vaatia että käyttäjä käy VM asetuksistaansa muuttamassa muisti rajoja.
muisti täytyy varata jo <APPLET> litaniassa ;)

mutta, kuten jo sanoinkin, niin, en ole tietokone ammattilainen, silti tälläiset
räväkät projektit ovat todella mukavia.

//----

kiitos,,

Blaze [04.09.2008 09:00:54]

#

kpzpt kirjoitti:

voisitkos sinä vastaavasti nyt luovuttaa minulle toimivan <APPLET></APPLET>
tagin jossa on 128m varattuna appletille.

en voi vaatia että käyttäjä käy VM asetuksistaansa muuttamassa muisti rajoja.
muisti täytyy varata jo <APPLET> litaniassa ;)

Pikainen googletus vahvisti epäilyni:
"To be clear, it is not possible for the applet/page to do this. It has be done manually on the client PC" -http://forums.sun.com/thread.jspa?threadID­=523105&messageID=3033288

Grez [04.09.2008 10:30:44]

#

kpzpt kirjoitti:

en voi vaatia että käyttäjä käy VM asetuksistaansa muuttamassa muisti rajoja.
muisti täytyy varata jo <APPLET> litaniassa ;)

Eli käyttäjää ei voi vaatia muuttamaan VM:n asetuksia, mutta käyttäjää voi vaatia ostamaan ja asentamaan sopivan näytönohjaimen, niinkö? (Tämä siis viitaten tuohon aikaisempaan ideaasi käyttää näytönohjaimen muistia)

anttipanda [04.09.2008 10:51:34]

#

Mihin tarvit _lautapeleissä_ suurta suorituskykyä?

Grez [04.09.2008 10:59:14]

#

Sinänsä hassu kysymys kun miettii vaikka jotain Deep Blueta.

kpzpt [04.09.2008 11:45:02]

#

Grez kirjoitti:

kpzpt kirjoitti:

en voi vaatia että käyttäjä käy VM asetuksistaansa muuttamassa muisti rajoja.
muisti täytyy varata jo <APPLET> litaniassa ;)

Eli käyttäjää ei voi vaatia muuttamaan VM:n asetuksia, mutta käyttäjää voi vaatia ostamaan ja asentamaan sopivan näytönohjaimen, niinkö? (Tämä siis viitaten tuohon aikaisempaan ideaasi käyttää näytönohjaimen muistia)

No niin!

Nyt taitaa olla jo kakkosella alkava luku keskustelijoitten ikäerossa.
en minä mitään vaadi ostamaan näytönohjainta, sanoin että
nykynäytönohjaimissa on muistia 128m-512m sinne mahtuu koko
minun ohjelmani ja aion siellä myös basicciani ajaa.
laitan koko basic rimpsun bufferedimageen skannerilla.
mutta, minä taidan nyt lopettaa tähän viestiin laitan vielä selvennyksen.

idea on siis yksinkertaistaa lautapelieni tekoa.
Javassa on varmaankin 2000->xxxxx funktiota ja kaikkea muutakin.
sitä on vaikeata pyöritellä kokonaisuutena.

kun rakennan ohjelmointikielen jossa on noin 100->300 käskyä,
lähinnä componentit ja graphics2d ja net<->server.
niin, ymmärrän täydellisemmin koko ajan mitä olen tekemässä ja mitä olen
jo saanut aikaan.

ei tule sellaista haahuilua käskyjen suhteen kun on suppeat mutta tehokkaat
vaihtoehdot.

toi iffi tulee olemaan aika hidas :(,
mutta muut käskyni siis menevät melkein pelkällä funktio kutsulla Javaan :)

minä aloin rakentaa seuraavaa sivustoa ->

http://www.lautapelisuomi.eu/


//----

kiitos,,

Grez [04.09.2008 13:21:30]

#

kpzpt kirjoitti:

Nyt taitaa olla jo kakkosella alkava luku keskustelijoitten ikäerossa.

Niin, profiilissasi ei ole ikää, joten onhan tuo ihan mahdollista. Mutta: miten keskustelijoiden ikä liittyy itse asiaan?

kpzpt kirjoitti:

en minä mitään vaadi ostamaan näytönohjainta, sanoin että
nykynäytönohjaimissa on muistia 128m-512m sinne mahtuu koko
minun ohjelmani

Olen pahoillani että en vääntänyt riittävän rautalangasta. Vaikka monilla onkin nykykoneissa näytönohjain, jossa on muistia 128 megaa tai enemmän, niin silti myydään edelleen paljon koneita joissa on esimerkiksi integroitu näytönohjain ilman omaa muistia. Lisäksi on käytössä paljon koneita, joissa voi olla hyvinkin vaikka 2 gigaa muistia, mutta näytönohjaimessa on juuri sen verran muistia että ylimääräistä ei ole käytettävissä. Kaikki kun eivät ole kiinnostuneita 3D -peleistä, niin miksi hankkia tykimpi näytönohjain. Eli näiden käyttäjien osalta näytönohjaimen muistin käyttäminen tarkoittaisi sitä, että he joutuisivat ostamaan ja asentamaan uuden näytönohjaimen, kun normaalisti toteutettuna riittäisi että he vaihtavat VM:n asetuksia.

Nämä kommentit eivät tarkoita että tietäisin ideasi ylipäätään toimivan. Kommentoin vain mitä mahdollisia ongelmia tulisi silti eteen vaikka ideasi toimisikin.

_Pete_ [05.09.2008 08:25:19]

#

kpzpt kirjoitti:

voisitkos sinä vastaavasti nyt luovuttaa minulle toimivan <APPLET></APPLET>
tagin jossa on 128m varattuna appletille.

En voi koska en sellaisia tiedä, enkä tiedä sitäkään onko niitä edes olemassa.

kpzpt kirjoitti:

en voi vaatia että käyttäjä käy VM asetuksistaansa muuttamassa muisti rajoja.
muisti täytyy varata jo <APPLET> litaniassa ;)

Jos kerran tarvit muistia yli default määrän niin mitä vikaa on siinä, että käyttäjä joutuu muuttamaan asian VM-asetuksistaan jos/kun muuta keinoa ei ole?

kpzpt kirjoitti:

mutta, kuten jo sanoinkin, niin, en ole tietokone ammattilainen, silti tälläiset
räväkät projektit ovat todella mukavia.

Niin, tuon olen kyllä huomannut ja siksi kehoittanut aloittamaan opiskelun perusopuksista.

Jackal von ÖRF [05.09.2008 13:24:47]

#

_Pete_ kirjoitti:

kpzpt kirjoitti:

voisitkos sinä vastaavasti nyt luovuttaa minulle toimivan <APPLET></APPLET>
tagin jossa on 128m varattuna appletille.

En voi koska en sellaisia tiedä, enkä tiedä sitäkään onko niitä edes olemassa.

Java 6 Update 10 mukana tulee uusi Java-plugin, jolla tuo on mahdollista:

https://jdk6.dev.java.net/plugin2/#COMMAND_LINE_ARGS
https://jdk6.dev.java.net/6u10faq.html

anttipanda [05.09.2008 16:05:22]

#

Mutta vastaapa kpzpt että mitä väliä nopeudella on lautapeleissä :D Vaikka if olisi sata kertaa hitaampi kuin javan normaali if, niin minkälaista viivettä se käytännössä aiheuttaa lautapelikokemukseen jossa kaikki tapahtuu periaatteessa käyttäjien syötteiden aiheuttamien tapahtumien perusteella?

User137 [06.09.2008 02:58:09]

#

Tulkki tulkin päällä ei kuulosta tosiaan hyvältä.

Se että ylipäätään koodaa javalla tarkoittaa että pitää luokista ja erilaisista hierarkioista. Jos tosiaan teet pelkkiä lautapelejä niin voisi miettiä miten paljon yhteistä niillä on? Pyörää ei tarvitse keksiä uudelleen, voi kirjoittaa korkeamman tason luokkia jotka käyvät kaikkiin peleihin mutta joiden tyylejä voi silti muokata periyttämällä. Se vaan vaatii vähän suunnittelua.

kpzpt kirjoitti:

idea on siis yksinkertaistaa lautapelieni tekoa.
Javassa on varmaankin 2000->xxxxx funktiota ja kaikkea muutakin.
sitä on vaikeata pyöritellä kokonaisuutena.

En ymmärrä miksi kirjoitit tuota ollenkaan. Luokkien idea on juuri vähentää ruohonjuuritason ohjelmointia ja saada aikaan suurempia kokonaisuuksia.

Grez [06.09.2008 07:34:57]

#

User137 kirjoitti:

Se että ylipäätään koodaa javalla tarkoittaa että pitää luokista ja erilaisista hierarkioista.

Mielestäni aikamoinen "jump to conclusion". Sanopa millä kielellä ne, jotka eivät pidä luokista ja erilaisista hierarkioista, tekevät www-sivuilla toimivia sovelmia?

User137 [07.09.2008 00:19:13]

#

En kiinnitä huomiota matoihin joista saattaa suusta joskus päästä, ei liity edellisen viestini pointtiin. Uskoisin että se silti koskee valtaosaa Java-koodareista. Vaikkei pitäisi, sellainen tyyli kielellä vain on.

Olenko nyt ihan väärässä kun ehdotan käyttämään tekniikoita joista kouluissa luennoidaan? Saa toki korjata, mutta mielestäni

x = a+b+c
y = x*x
on parempi tapa ohjelmoida kuin
y = (a+b+c)*(a+b+c)
kun a b c korvataan jollakin todella monimutkaisella rakenteella (karkeasti havainnollistaen)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta