Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Casio-laskimen ohjelmointi

Sivun loppuun

Tasku-Matti [06.10.2005 15:26:00]

#

Sattuuko kukaan tietämään, millä kielellä casio fx 1.0 plussaan voi ohjelmoida ja kuinka siihen voisi ohjelmoida vaikkapa ventin tai pokerin tai vaikkapa tetriksen tai vastaavia pelejä? Matikan tunnit saisivat piristystä tuon tiedon myötä..
Vastatkaa jos tiedätte ja kertokaa minullekin

Heikki [06.10.2005 16:00:55]

#

Eikö ohjekirjassa ole mitään tietoja? Oman TI-86:n manuaalissa on ainakin aika hyvin juttua ohjelmoinnista.

Pikagoogletus antoi tällaisen sivun.

Tasku-Matti [06.10.2005 16:04:40]

#

kyllä siinä ohjekirjassa varmaan jotain on, mutta koko opus on niin iso, että hyvä kun kannen saa auki ;)

Ti on eri asia koska casiossani ei ole edes värinäyttöä

Blaze [06.10.2005 16:23:44]

#

No RTFM sitten vaan. Ja värinäytöllä (sellaista ei TI-86:ssakaan ole) ei liene mitään tekemistä ohjelmoitavuuden kanssa.

Grey [06.10.2005 16:36:30]

#

Blaze kirjoitti:

No RTFM sitten vaan.

Muuten hyvä, mutta en usko että Tasku-Matille on paljoakaan hyötyä naimismanuaalista laskimensa kanssa ;-)

-Grey-

tkarkkainen [06.10.2005 16:42:40]

#

Grey kirjoitti:

Muuten hyvä, mutta en usko että Tasku-Matille on paljoakaan hyötyä naimismanuaalista laskimensa kanssa ;-)
-Grey-

Eihän siitä ollut mitään puhetta. Hassua manuskaahan Blaze käski selata :)

Antti Laaksonen [06.10.2005 18:17:04]

#

Laskimessa on yksinkertainen Basic-kieli, jonka avulla voi koettaa ohjelmoida myös pelejä. Ohjekirjassa ohjelmoinnista kerrotaan luvussa 8. Ohjelmien kirjoittaminen on kyllä aika työlästä, koska komennot pitää hakea erillisistä valikoista. Suurempi ongelma on kuitenkin se, että ohjelmista tulee usein harmittavan hitaita. Jos joku onnistuu tekemään Tetriksen Casiolle, nostan jo hattua. Mitä nopeatempoisempi peli on, sitä hankalampaa toteutus on.

Pelin teossa voi tarvita mm. seuraavia asioita:
- muuttujat (A - Z)
- matriisit (Mat, Dim, Fill)
- ehdot (If) ja silmukat (While, For)
- hypyt (Lbl, Goto)
- aliohjelman käynnistäminen (Prog)
- näppäimen luku (Getkey)
- tekstin kirjoittaminen (Locate)
- satunnaisluvut (Ran#)
- näytön tyhjennys (ClrGraph, AxesOff)
- pisteen piirto (PxlOn, PxlOff, PxlTest)
- viivat (Horizontal, Vertical)
- tekstin piirto (Text)

Ohjekirja ei ole kovin kehuttava, mutta siellä on kyllä tietoa noista kaikista asioista. Laskimen kunniaksi mainittakoon suuri muistin määrä. Saa olla aika innokas ohjelmoija, jos haluaa täyttää koko muistin. Olen tehnyt jonkin verran ohjelmia (myös pelejä) Casiolle, joten voin kyllä auttaa enemmänkin. Vaikeuksista huolimatta on mahdollista päästä ihan hyviin tuloksiin!

Tasku-Matti [06.10.2005 19:46:29]

#

Antti, voisitko lähettää mulle meilillä niitä casion ohjelmia? osoite on tasku_matti89@hotmail.com

Puhveli [06.10.2005 20:00:17]

#

Heh, vähän myöhässähän minä tähän vastaan, mutta on tullut itsekin tuohon casioon koodailtua muutamia pikkuohjelmia):
Tykkipeli, matopeli, laivanupotus, ristinolla, reaktionopeuspeli ja 'kirjasto' string-muuttujien käsittelyyn ovat ehkä parhaiten onnistuneet. Lista todistaa, että matikantunneilla tosiaan on joskus tylsää.

Semmoinen juttu peleistä, että mitään tilepelejä (tasohyppelyt) tuskin kannattaa ruveta koodaamaan, taulukoiden ja matriisien käsittely on sen verran hidasta. Muutenkin laskinohjelmointi vaatii yksinkertaisia ja nopeita ohjelmia. Yksi hyvä keino on esim. tarkistaa näppäinpainallukset loopin ulkopuolella (looppi pysähtyy minkä tahansa näppäimen painallukseen), koska if-lauseet hidastavat tulkkausta paljon.

Niin joo, jos ei tulkkikielellä halua mitään vääntää, voi ohjelmat tehdä ilmeisesti ihan tavallisilla kielillä ja kääntää laskimille sopiviksi. Datakaapelilla (lisävaruste) ne voi sitten siirtää koneelta laskimelle. Tästä tosin en tiedä, sillä en ole ylimääräisiin letkuihin (vielä) investoinut.

Antti Laaksonen [06.10.2005 20:25:48]

#

Tässä tulee laskinohjelmieni lippulaiva, matopeli. Ohjelmaa kirjoittaessa komennot pitää hakea valikoista. Niitä ei siis voi kirjoittaa kirjain kerrallaan. -> on laskimessa yhtenä merkkinä, samoin \=, joka esittää erisuuruutta. x tarkoittaa kertomerkkiä. O-muuttujaa ei ole, joten 0:n näköiset merkit ovat aina nollia. Yksinäinen - on lyhyt miinusmerkki, joka tulee (-)-nappulasta. Tämän ohjelman koko laskimessa on 527 tavua.

ClrGraph
AxesOff
{2,30}->Dim Mat A
Fill(1,Mat A)
50->X
50->Y
6->K
0->L
0->N
6->V
1->B
20->C
0->P
8+Int (Ran# x18)x6->I
8+Int (Ran# x8)x6->J
Text J,I,"*"
Text 1,105,0
While N\=47 And X>6 And X<120 And Y>6 And Y<60
If N=0
Then Goto 1
IfEnd
If N=28 And L=0
Then 0->K:-V->L
IfEnd
If N=37 And L=0
Then 0->K:V->L
IfEnd
If N=38 And K=0
Then -V->K:0->L
IfEnd
If N=27 And K=0
Then V->K:0->L
IfEnd
Lbl 1
X+K->X
Y+L->Y
B+1->B
If B=31:Then 1->B:IfEnd
C+1->C
If C=31:Then 1->C:IfEnd
Text Mat A[2,C],Mat A[1,C],"  "
X->Mat A[1,B]
Y->Mat A[2,B]
If X\=I Or Y\=J
Then Goto 3
IfEnd
P+10->P
Text J,I,"  "
8+Int (Ran# x18)x6->I
8+Int (Ran# x8)x6->J
Text 1,105,P
Text J,I,"*"
C-1->C
Lbl 3
If PxlTest(Y+2,X+2)
Then Goto 2
IfEnd
Text Y,X,"#"
Getkey->N
WhileEnd
Lbl 2
AxesOn

Olen myös tekemässä neljän suora -peliä, josta puuttuu toistaiseksi tietokonevastustaja. Riittävän nopean konepelaajan tekeminen voi kyllä jäädä haaveeksi.

Puhvelin pelit näyttävät muuten mainioilta.

Tasku-Matti [06.10.2005 20:55:56]

#

Puhveli, viittisikkö laittaa niitä sun pelejäs mulle(meilillä(osoite tuolla ylempänä) tai tohon keskusteluun.)?
käyn seuraavan kerran kattomassa varmaan huomenissa.
Toi tykkipeli herätti mun mielenkiinnon.

Puhveli [06.10.2005 21:50:20]

#

Kas, Antti ei näemmä harrasta obfuskaatiota. :o
Itse tykkään kirjoittaa laskinohjelmat vain parille-kolmelle riville, sillä kun ohjelman osa on lopullisesti valmis, muiden osien selaaminen ja editoiminen on kätevämpää. Lisäksi se oksettaa kavereita, jotka sorsaa tutkivat. ^_^

Tasku-Matti kirjoitti:

Puhveli, viittisikkö laittaa niitä sun pelejäs mulle(meilillä(osoite tuolla ylempänä) tai tohon keskusteluun.)?

En mielelläni kirjoittaisi koodia uudestaan, se kun on parin kilotavun mittainen, joten selväkielisenä siitä tulisi varmaan noin viisi-kuusi tuhatta näppäintä paineltavakseni. Voin kyllä siirtää sen datakaapelilla (jos sellaisen saan lainattua) koneelle ja laittaa jollekin sivulle.

Tasku-Matti [07.10.2005 13:11:26]

#

ilmoittelehan puhveli jos saat kähvellettyä sen datakaapelin

Deewiant [07.10.2005 14:57:40]

#

Puhveli kirjoitti:

Kas, Antti ei näemmä harrasta obfuskaatiota. :o

Minä sanoisin tuonnimisten muuttujien (A, X, Y, K, L, jne) käyttöä jo obfuskaatioksi.

Antti Laaksonen [07.10.2005 15:02:11]

#

Minkäs teet, kun muuttujan pituus on yksi kirjain...

jideko [07.10.2005 21:53:14]

#

Mun hienoin tekele on "arvaa luku"-peli :D Siinä oli 3 vaikeusastetta ja high scoresit.

7565895
suurempi
7565897
pienempi
7565896
ARVASIT AIVAN OIKEIN


Mutta varotuksen sana tähän. Kyllä niillä matikan tunneilla kannattaa kuunneellakkin ja seurata opetusta.

Deewiant [07.10.2005 21:56:17]

#

Antti Laaksonen kirjoitti:

Minkäs teet, kun muuttujan pituus on yksi kirjain...

Eivätkö Casion laskimet salli pidempinimisiä muuttujia? No, siinä taas yksi hyvä syy ottaa suosiolla Texas Instruments -tuote ;-)

EDIT: ja kai ne nyt edes kommentteja sallivat... niitä voisi esimerkiksi lisätä kertomaan, mistä ihmeestä K on lyhenne :-)

efteri [10.10.2005 07:17:37]

#

jaa-a, nää laskin jutut alkaa jo kuulostamaan niin mielenkiintoisilta että pitää varmaan itsekkin ostaa laskin jos jostain saisi halvan ja hyvän :)

Metabolix [11.10.2005 16:44:35]

#

Deewiant kirjoitti:

ja kai ne nyt edes kommentteja sallivat... niitä voisi esimerkiksi lisätä kertomaan, mistä ihmeestä K on lyhenne :-)

Ei, eivät tietääkseni. Enkä ole omastani (Casio fx-9750) löytänyt edes taulukkoja tai vastaavaa, yksittäisten pikselien piirtoon sopivia funktioita tai edes näppäinten lukua kesken suorituksen (nyt se aina pysähtyy). Laskimen tarkoituksena kun on sisältää vain pieniä matemaattisia sovelluksia.

[offtopic]Opettaja väitti, että Casiot ovat tehokkaampia kuin TI:t. Perusteluna se, että TI:n laskin antaa joistakin kolmannen asteen yhtälöistä vääriä vastauksia (missä Casio laskee muutaman sekuntin ja vastaa oikein). Ei sitten painanut mitään se, että TI laskee monet käyrät tuplanopeudella... Onneksi se ei ollut ATK-opettaja[/offtopic]


Sivun alkuun

Vastaus

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

Tietoa sivustosta