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
Eikö ohjekirjassa ole mitään tietoja? Oman TI-86:n manuaalissa on ainakin aika hyvin juttua ohjelmoinnista.
Pikagoogletus antoi tällaisen sivun.
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öä
No RTFM sitten vaan. Ja värinäytöllä (sellaista ei TI-86:ssakaan ole) ei liene mitään tekemistä ohjelmoitavuuden kanssa.
Blaze kirjoitti:
No RTFM sitten vaan.
Muuten hyvä, mutta en usko että Tasku-Matille on paljoakaan hyötyä naimismanuaalista laskimensa kanssa ;-)
-Grey-
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 :)
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!
Antti, voisitko lähettää mulle meilillä niitä casion ohjelmia? osoite on tasku_matti89@hotmail.com
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.
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.
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.
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.
ilmoittelehan puhveli jos saat kähvellettyä sen datakaapelin
Puhveli kirjoitti:
Kas, Antti ei näemmä harrasta obfuskaatiota. :o
Minä sanoisin tuonnimisten muuttujien (A, X, Y, K, L, jne) käyttöä jo obfuskaatioksi.
Minkäs teet, kun muuttujan pituus on yksi kirjain...
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.
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 :-)
jaa-a, nää laskin jutut alkaa jo kuulostamaan niin mielenkiintoisilta että pitää varmaan itsekkin ostaa laskin jos jostain saisi halvan ja hyvän :)
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]
Aihe on jo aika vanha, joten et voi enää vastata siihen.