Spiele programmieren mit TI-BASIC: Letters
Erscheinungsbild
Programminfo
[Bearbeiten]Handlung: Wandelt bestimmte Zahlen in Text um.
Programmablauf: Kriegt vom Programm eine Variable/Matrix/Liste errechnet, dass es z. B. ein T sein muss und gibt es aus.
Einfacher Teil
[Bearbeiten]Ich schaue mir heraus, was es so an "Buchstaben" gibt:
- RectGC
- PolarGC
- CoordOn
- CoordOff
- GridOff
- GridOn
- AxesOn
- AxesOff
- LabelOff
- LabelOn
- IndpntAuto
- IndpntAsk
- DependAuto
- DependAsk
- ZBox
- Zoom In
- Zoom Out
- ZDecimal
- ZSqare
- ZStandard
- ZTrig
- ZInteger
- ZoomStat
- ZPrevious
- ZoomSto
- ZoomRcl
- Trace
- Normal
- Sci
- Eng
- Float
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- Radian
- Degree
- Func
- Par
- Pol
- Seq
- Connected
- Dot
- Sequential
- Simul
- FullScreen
- Split
- X
- T
- o
- SortA(
- SortB(
- ClrList
- 1-Var Stats
- 2-Var Stats
- Med-Med
- LinReg(ax+b)
- QuadReg
- CubicReg
- QuartReg
- LinReg(a+bx)
- LnReg
- ExpReg
- PwrReg
- SortA(
- SortB(
- dim
- Fill(
- seq(
- min(
- max(
- mean(
- median(
- sum
- prod
- |>Frac
- |>Dec
- ³
- 3(srqt)
- x(srqt)
- fMin(
- fMax(
- nDeriv(
- fnInt(
- solve(
- round(
- iPart
- fPart
- int
- min(
- max(
- sinh
- cosh
- tanh
- sinh-¹
- cosh-¹
- tanh-¹
- rand
- nPr
- nCr
- !
- =
- /=
- >
- >=
- <
- <=
- and
- or
- xor
- not
- A
- [A]
- [B]
- [C]
- [D]
- [E]
- det
- T
- dim
- Fill(
- identity
- randM(
- augment(
- rowSwap(
- row+(
- *row(
- *row+(
- °
- '
- r
- |>DMS
- R|>Pr(
- R|>P-o(
- P|>Rx(
- P|>Ry(
- B
- If
- Then
- Else
- For(
- While
- Repeat
- End
- Pause
- Lbl
- Goto
- IS>(
- DS<(
- Menu(
- prgm
- Return
- Stop
- Input
- Prompt
- Disp
- DispGraph
- DispTable
- Output(
- getKey
- ClrHome
- PrintScreen
- Get(
- Send(
- ClrDraw
- Line(
- Horizontal
- Vertical
- Tangent(
- DrawF
- Shade(
- DrawInv
- Circle(
- Text(
- Pt-On(
- Pt-Off(
- Pt-Change(
- pxl-Test(
- StorePic
- RecallPic
- StoreGDB
- RecallGDB
- C
- Xmin
- Xmax
- Xscl
- Ymin
- Ymax
- Yscl
- (delta)X
- (delta)Y
- XFact
- YFact
- Tmin
- Tmax
- Tstep
- -omin
- -omax
- -ostep
- UnStart
- VnStart
- nStart
- nMin
- nMax
- ZXmin
- ZXmax
- ZYmin
- ZYmax
- ZYscl
- ZTmin
- ZTmax
- ZTstep
- Zomin
- Zomax
- Zostep
- ZUnStart
- ZVnStart
- ZnStart
- ZnStart
- ZnMin
- ZnMax
- GDB1
- GDB2
- GDB3
- GDB4
- GDB5
- GDB6
- Pic1
- Pic2
- Pic3
- Pic4
- Pic5
- Pic6
- n
- _x
- Sx
- ox
- _y
- Sy
- oy
- minX
- maxX
- minY
- maxY
- Mx
- Mx²
- My
- My²
- Mxy
- a
- b
- c
- d
- e
- r
- RegEQ
- Q1
- Med
- Q3
- x1
- y1
- x2
- y2
- x3
- y3
- TblMin
- (delta)Tbl
- TblInput
- Y1
- Y2
- Y3
- Y4
- Y5
- Y6
- Y7
- Y8
- Y9
- Y0
- X1t
- Y1t
- X2t
- Y2t
- X3t
- Y3t
- X4t
- Y4t
- X5t
- Y5t
- X6t
- Y6t
- r1
- r2
- r3
- r4
- r5
- r6
- Un
- Vn
- FnOn
- FnOff
- -¹
- abs
- D
- sin
- sin-¹
- E
- cos
- cos-¹
- F
- tan
- tan-¹
- G
- ^
- Pi
- H
- ²
- (srqt)
- I
- ,
- E
- J
- (
- {
- K
- )
- }
- L
- /
- M
- log
- 10^
- N
- 7
- Un-1
- O
- 8
- Vn-1
- P
- 9
- n
- Q
- *
- [
- R
- ln
- e^
- S
- 4
- L4
- T
- 5
- L5
- U
- 6
- L6
- V
- -
- ]
- W
- ->
- X
- 1
- L1
- Y
- 2
- L2
- Z
- 3
- L3
- o
- +
- "
- 0
- Leerschritt
- .
- :
- -
- Ans
- ?
Wofür?
[Bearbeiten]Wofür das Ganze?
Ich wollte einfach mal ein sog. "Chat"-Programm programmieren, und dies hier wird ein Teilprogramm. Später sollen Listen ge-gettet werden, da man aber keine Zeichen als Listenelemente nehmen kann, kommen halt Zahlen.
Wie geht's weiter
[Bearbeiten]Das erste Programm soll die Übergabe-Variablen verwerten. Ich habe dabei an Folgende gedacht:
A Input-Medium: 0=Liste; 1=Variable, 2= Matrize B Ausgabe: 0=Disp, 1=Output( , 2=Text(, 3=UDRWTXT C Lesebereich-anfang
Lesebereiche
[Bearbeiten]Ab Var C muss man überlegen. Die Ziffern stehen für'n int von Var A.
0: Liste
[Bearbeiten]C Listennummer D Erstes zu lesende Listenelement E Letztes zu lesende Listenelement
1: Variable
[Bearbeiten]C Variablennummer, schon hier soll man auf die obenstehende Liste achten.
2: Matrize
[Bearbeiten]C Matrizennummer D und E X und Y-Wert für obere linke Ecke F ung G X und Y-Wert für untere rechte Ecke
Quellcode
[Bearbeiten]PFgrTLet
[Bearbeiten]:If A=0 :prgmJLstTLet :If A=1 :prgmJVarTLet :If A=2 :prgmJMtxTLet :Return
JLstTLet
[Bearbeiten]:While C /= D // So lange das letzte Zeichen nicht erreicht ist :If B=1 :prgmJLs1TLet :If B=2 :prgmJLs2TLet :If B=3 :prgmJLs3TLet :If B=4 :prgmJLs4TLet :If B=5 :prgmJLs5TLet :If B=6 :prgmJLs6TLet :1+C->C // Nachdem nun ein weiteres Zeichen erschienen ist, ist das nächste Listenelement +1 :If E<1 // Wenn letztes Listenelement < 1 ist: Nichts zu lesen Fehler :Menu("Invalid dim","GoTo",A,"Quit",B :GoTo C :Lbl A :Disp "Prgm:JLstTLet :Disp "Row 16 :Stop :Lbl B :Stop :Lbl C :Return