Spiele auf einem Sharp EL 9900

Mittlerweile habe ich viel mehr Spiele geschrieben, siehe hier. 🙂

Ich bin stolzer Besitzer eines Sharp EL 9900. Dieser GTR hat zwar kein Farbdisplay oder Touchscreen, kann dafür aber auch rechnen und ist mit ca. 65€ auch für einen Normalsterblichen erschwinglich.

Nachdem ich mich einige Zeit mit dem Taschenrechner beschäftigt hatte, fragte ich mich, ob man nicht neben normalen Programmen, die ich bereits programmiert hatte (Lineare Funktionen-Berechner etc.), nicht auch Spiele programmieren könnte. Ich fing also an, im Internet zu suchen. Die einzige brauchbare Site war diese, auf der ich zumindest ein Mastermind-Spiel finden konnte.

Damit gab ich mich natürlich nicht zufrieden, darum programmierte ich ein Schiffe-versenken-Spiel, das man zu zweit spielen muss. Dieses kann man sich hier (ganz unten) auf meiner Homepage downloaden. Danach versuchte ich, das Spiel umzuschreiben, sodass man gegen den GTR spielen konnte, was mir aber nur teilweise gelang, weil ich nach einiger Zeit auch keine Lust mehr hatte.

Nachtrag: Den Download vom Schiffeversenken gibt es schon seit einiger Zeit nicht mehr, war auch kein so tolles Spiel. Ich habe jetzt ein Minesweeper und ein Vier gewinnt-Spiel geschrieben, das man zu zweit spielen kann. Hier ist der Code vom Minesweeper (ist etwas länger). 😀 Der Pfeil bezeichnet die [STO]-Taste. Um manche Befehle zu erhalten, muss man sich weiter durch die Menüs kramen… die Bedienungsanleitung hilft da. Das Spiel ist etwas langsam und verschlingt einiges an Speicher, wenn man mit einem sehr großen Feld spielt. Die Größe verstellt man zuerst mit den Pfeiltasten, bestätigt wird mit der 5. Danach auch immer Cursor mit Pfeiltasten bewegen und mit der 5 klicken.

AxisOFF
0→Xmin
0→Ymin
126→Xmax
64→Ymax
Text(24,5,"v1.3.2")
Text(0,9,"(C) 2009 BY MAIK")
Text(14,4,"MINESWEEPER")
Wait
9→X
9→Y
Goto SET

Label SET
ClrG
Line(0,64-Y*6,X*4,64-Y*6)
Line(X*4,64,X*4,64-Y*6)
Key K
X-(X>2)*(K=11)→X
X+(X<31)*(K=10)→X
Y-(Y>2)*(K=12)→Y
Y+(Y<10)*(K=13)→Y
If K=5Goto CMAT
Goto SET

Label CMAT
ClrG
Line(1,11,1,14)
Line(126,11,126,14)
Line(126,14,1,14)
Line(1,11,126,11)
round(X*Y/6.4,0)→W
X→H
Y→M
{M*3+4,H+2}→dim(mat A)
fill(0,mat A)
For I,1,W,1
rndInt(2,H+1)→X
rndInt(2,M+1)→Y
I+((mat A(Y,X)=1)*-1)→I
mat A(Y,X)→L
1→mat A(Y,X)
-99→mat A(Y+M+1,X)
For J,X-1,X+1,1
For K,Y-1,Y+1,1
mat A(K+M+1,J)+(L=0)*1→mat A(K+M+1,J)
Next
Next
Line(123/W*(I-1)+2,12,123/W*I+2,12)
Line(123/W*(I-1)+2,13,123/W*I+2,13)
Next
0→mat A(1,1)
Text(4,9,"<PRESS ENTER TO START>")
Wait
ClrG
1→X
1→Y
Line(0,64-M*6,H*4,64-M*6)
Line(H*4,64,H*4,64-M*6)
Goto GAME

Label GAME
If mat A(1,1)=H*M-WGoto WIN
PxlCHG(X*4-4,Y*6-4)
PxlCHG(X*4-0,Y*6-4)
PxlCHG(X*4-2,Y*6-6)
PxlCHG(X*4-2,Y*6-2)
Key K
PxlCHG(X*4-4,Y*6-4)
PxlCHG(X*4-0,Y*6-4)
PxlCHG(X*4-2,Y*6-6)
PxlCHG(X*4-2,Y*6-2)
If K=11GotoL
If K=12GotoO
If K=10GotoR
If K=13GotoU
If K=5GotoDA
Goto GAME

Label L
X-(X-1>0)→X
Goto GAME
Label O
Y-(Y-1>0)→Y
Goto GAME
Label R
X+(X<H)→X
Goto GAME
Label U
Y+(Y<M)→Y
Goto GAME

Label DA
If mat A(Y+M+2,X+1)≥1Goto DA2
If mat A(Y+1,X+1)=0Goto DA3
Goto LOOSE

Label DA2
(mat A(Y+M*2+3,X+1)≠1)+mat A(1,1)→mat A(1,1)
Text(X-1,((mat A(Y+M+2,X+1)≠1)*11+(mat A(Y+M+2,X+1)=1)*Y)-1,"1")
Text(X-1,((mat A(Y+M+2,X+1)≠2)*11+(mat A(Y+M+2,X+1)=2)*Y)-1,"2")
Text(X-1,((mat A(Y+M+2,X+1)≠3)*11+(mat A(Y+M+2,X+1)=3)*Y)-1,"3")
Text(X-1,((mat A(Y+M+2,X+1)≠4)*11+(mat A(Y+M+2,X+1)=4)*Y)-1,"4")
Text(X-1,((mat A(Y+M+2,X+1)≠5)*11+(mat A(Y+M+2,X+1)=5)*Y)-1,"5")
Text(X-1,((mat A(Y+M+2,X+1)≠6)*11+(mat A(Y+M+2,X+1)=6)*Y)-1,"6")
Text(X-1,((mat A(Y+M+2,X+1)≠7)*11+(mat A(Y+M+2,X+1)=7)*Y)-1,"7")
Text(X-1,((mat A(Y+M+2,X+1)≠8)*11+(mat A(Y+M+2,X+1)=8)*Y)-1,"8")
1→mat A(Y+2*M+3,X+1)
Goto GAME

Label DA3
X→C
Y→D
For X,C-(C≠1),C+(C≠H),1
For Y,D-(D≠1),D+(D≠M),1
Text(X-1,((mat A(Y+M+2,X+1)≠1)*11+(mat A(Y+M+2,X+1)=1)*Y)-1,"1")
Text(X-1,((mat A(Y+M+2,X+1)≠2)*11+(mat A(Y+M+2,X+1)=2)*Y)-1,"2")
Text(X-1,((mat A(Y+M+2,X+1)≠3)*11+(mat A(Y+M+2,X+1)=3)*Y)-1,"3")
Text(X-1,((mat A(Y+M+2,X+1)≠4)*11+(mat A(Y+M+2,X+1)=4)*Y)-1,"4")
Text(X-1,((mat A(Y+M+2,X+1)≠5)*11+(mat A(Y+M+2,X+1)=5)*Y)-1,"5")
Text(X-1,((mat A(Y+M+2,X+1)≠6)*11+(mat A(Y+M+2,X+1)=6)*Y)-1,"6")
Text(X-1,((mat A(Y+M+2,X+1)≠7)*11+(mat A(Y+M+2,X+1)=7)*Y)-1,"7")
Text(X-1,((mat A(Y+M+2,X+1)≠8)*11+(mat A(Y+M+2,X+1)=8)*Y)-1,"8")
Text(X-1,((mat A(Y+M+2,X+1)≠0)*11+(mat A(Y+M+2,X+1)=0)*Y)-1,"^")
(mat A(Y+M*2+3,X+1)≠1)+mat A(1,1)→mat A(1,1)
1→mat A(Y+2*M+3,X+1)
Next
Next
C→X
D→Y
Goto GAME

Label LOOSE
For X,1,H,1
For Y,1,M,1
Text(X-1,((mat A(Y+1,X+1)=0)*11+(mat A(Y+1,X+1)=1)*Y)-1,"*")
Next
Next
Wait
ClrG
Text(0,0,"GAME OVER!")
Text(0,1,"1: AGAIN")
Text(0,2,"2: QUIT")
Key K
While K>1
Key K
WEnd
9→X
9→Y
If K=1Goto SET
Zm_Default
AxisON
{1,1}→dim(mat A)
ClrT
Print "PROGRAM CLOSED
End

Label WIN
ClrG
Text(11,0,"YOU WON!")
Wait
Goto LOOSE

Das Programm ist wirklich von mir. Wer hätte sonst so viel Langeweile, um sich das alles auszudenken? Normalerweise kommen dahinter nämlich noch 60 Zeilen für ein Minesweeper-Logo. 😉

Werbeanzeigen

Über lemaik

Ich bin Gründer von "Web der Wunder" und interessiere mich sehr für die Informatik. Ich schreibe eigene Programme, die ich dann zum Teil auf meiner Homepage veröffentliche und programmiere Internetseiten. Außerdem mag ich Tischtennis und das Internet. ;-)
Dieser Beitrag wurde unter Sonstiges, Spiele abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

58 Antworten zu Spiele auf einem Sharp EL 9900

  1. Golem31 schreibt:

    hi wollte fragen wo ich dieses sternchen zeichen herbekomme finde es nicht im katalog

  2. StevenGeiger schreibt:

    Ich habe das Problem wenn ich TicTacToe starten will und mir den Error anzeigen lasse,
    kommt dieser Abschnit:

    Print „SPIELFELD ZEICHNEN…
    Gosub FELD
    Goto 2

    Label FELD
    DrawON
    Line(1.5,4.5,1.5,-4.5)
    Line(-1.5,4.5,1.5,-4.5)
    Line(4.5,1.5,-4.5,1.5)
    Line(4.5,-1.5,-4.5,-1.5)

    Bitte um Hilfe :/
    LG

  3. Blusher schreibt:

    Hi Maik,

    ich wollte dich nur mal fragen wie man diesen Pfeil im Sharp EL 9900G (ich hab die G version) eintippen kann: →

    PS: Du bist außerdem der einzige im Internet der Spiele für den Sharp programmiert hat. Klasse Arbeit!

    • lemaik schreibt:

      Dieser Pfeil soll die STO-Taste darstellen. Vielen Dank, weitere Spiele findest du auf meiner Homepage! http://www.maiksite.de

      • Blusher schreibt:

        Hi Maik,

        ich hätte noch ne Frage. Der command „mat“ gibt es nicht unter catalog. nur mat->list()

        wie krieg ich nur mat?

        Danke nochmal.

        • lemaik schreibt:

          Gosub findest du im Prgm-Menü, unter B. Und „mat A“ und so weiter findest du unter 2ndF – STAT – A. Lies einfach die Anleitung durch. Da stehen alle Befehle drin, die man braucht und nicht in Mathe lernt. 😀 Für ein Tutorial (also eine zeilenweise Erläuterung, wie sie hier nötig wäre) fehlt mir derzeit die Zeit und die Lust.

      • Blusher schreibt:

        Hey Maik,

        ich nochmal. könntest du nicht ein tutorial schreiben wo man welche commands findet? Ich versuch grad den Code abzutippen und frag ich grad wie man „Gosub MM“ schreibt. und „Axisoff“..

  4. 1896Manu schreibt:

    Hi, ich habe ein Problem mit vier Gewinnt!
    Wenn ich das Programm ausführe, geht alles, aber wenn ich einen Stein setze, kommt diese Meldung:

    ERROR12
    [Domain]

    Wenn ich den Fehler anzeiden lasse, kommt dieser Textabschnitt:

    Key X
    Gosub SET
    CIRCLE(X-4,Y-4,.4)
    1->mat A(Y,X)
    T+1->T

    Der Fehler wird beim Komma in der Klammer in Zeile 4 makiert.
    Wäre toll, wenn du mir helfen könntest, gern auch per Mail.

    1896Manu

    • Maik schreibt:

      Hallo 1896Manu!
      Das „Problem“ betrifft doch jeden, deshalb schreibe ich es als Antwort. 😉
      Die Steuerung vom Vier gewinnt funktioniert über die Tasten 1 bis 7, mit denen man einen Stein in die Spalten 1 bis 7 einwirft. Zum Glück habe ich nirgends dokumentiert, wie die Programme zu steuern sind. 😀 Werde das auf meiner Homepage nachholen.
      Wenn du das Problem mit dem Drücken einer falschen Taste beheben möchtest, füge nach dem Key X einfach folgende Zeile ein:
      If ((X<1)+(X>7))>0Goto GAME
      MfG Maik

      • 1896Manu schreibt:

        Das erste Problem ist behoben, allerdings gibts jetzt ein neues:
        Wenn der 5. STein gesetzt wird (egal wo), kommt folgende Fehlermeldung:
        ERROR 03
        [Nesting]

        Was bedeutet das und was kann ich dagegen tun???

        LG 1896Manu

        • Maik schreibt:

          Oh, das könnte durch meine „Korrektur“ kommen. 😦
          Einfach meine Zeile wieder entfernen und nur die Tasten 1 bis 7 drücken! 😉

        • 1896Manu schreibt:

          Nein, das war vorher auch schon, hab es nur zu spät gesehen und konnte es nicht mehr mit reinschreiben

        • Maik schreibt:

          Ich werde mich demnächst um das Problem kümmern, bis dahin markiere ich das Programm als nicht funktionsfähig. 😉

  5. lorenz schreibt:

    wie ist der code von vier gewinnt?

Was sagst du dazu?

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s