Spiele programmieren mit TI-BASIC: Letters

Zurück |  Hoch | Weiter

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:

  1. RectGC
  2. PolarGC
  3. CoordOn
  4. CoordOff
  5. GridOff
  6. GridOn
  7. AxesOn
  8. AxesOff
  9. LabelOff
  10. LabelOn
  11. IndpntAuto
  12. IndpntAsk
  13. DependAuto
  14. DependAsk
  15. ZBox
  16. Zoom In
  17. Zoom Out
  18. ZDecimal
  19. ZSqare
  20. ZStandard
  21. ZTrig
  22. ZInteger
  23. ZoomStat
  24. ZPrevious
  25. ZoomSto
  26. ZoomRcl
  27. Trace
  28. Normal
  29. Sci
  30. Eng
  31. Float
  32. 0
  33. 1
  34. 2
  35. 3
  36. 4
  37. 5
  38. 6
  39. 7
  40. 8
  41. 9
  42. Radian
  43. Degree
  44. Func
  45. Par
  46. Pol
  47. Seq
  48. Connected
  49. Dot
  50. Sequential
  51. Simul
  52. FullScreen
  53. Split
  54. X
  55. T
  56. o
  57. SortA(
  58. SortB(
  59. ClrList
  60. 1-Var Stats
  61. 2-Var Stats
  62. Med-Med
  63. LinReg(ax+b)
  64. QuadReg
  65. CubicReg
  66. QuartReg
  67. LinReg(a+bx)
  68. LnReg
  69. ExpReg
  70. PwrReg
  71. SortA(
  72. SortB(
  73. dim
  74. Fill(
  75. seq(
  76. min(
  77. max(
  78. mean(
  79. median(
  80. sum
  81. prod
  82. |>Frac
  83. |>Dec
  84. ³
  85. 3(srqt)
  86. x(srqt)
  87. fMin(
  88. fMax(
  89. nDeriv(
  90. fnInt(
  91. solve(
  92. round(
  93. iPart
  94. fPart
  95. int
  96. min(
  97. max(
  98. sinh
  99. cosh
  100. tanh
  101. sinh-¹
  102. cosh-¹
  103. tanh-¹
  104. rand
  105. nPr
  106. nCr
  107. !
  108. =
  109. /=
  110. >
  111. >=
  112. <
  113. <=
  114. and
  115. or
  116. xor
  117. not
  118. A
  119. [A]
  120. [B]
  121. [C]
  122. [D]
  123. [E]
  124. det
  125. T
  126. dim
  127. Fill(
  128. identity
  129. randM(
  130. augment(
  131. rowSwap(
  132. row+(
  133. *row(
  134. *row+(
  135. °
  136. '
  137. r
  138. |>DMS
  139. R|>Pr(
  140. R|>P-o(
  141. P|>Rx(
  142. P|>Ry(
  143. B
  144. If
  145. Then
  146. Else
  147. For(
  148. While
  149. Repeat
  150. End
  151. Pause
  152. Lbl
  153. Goto
  154. IS>(
  155. DS<(
  156. Menu(
  157. prgm
  158. Return
  159. Stop
  160. Input
  161. Prompt
  162. Disp
  163. DispGraph
  164. DispTable
  165. Output(
  166. getKey
  167. ClrHome
  168. PrintScreen
  169. Get(
  170. Send(
  171. ClrDraw
  172. Line(
  173. Horizontal
  174. Vertical
  175. Tangent(
  176. DrawF
  177. Shade(
  178. DrawInv
  179. Circle(
  180. Text(
  181. Pt-On(
  182. Pt-Off(
  183. Pt-Change(
  184. pxl-Test(
  185. StorePic
  186. RecallPic
  187. StoreGDB
  188. RecallGDB
  189. C
  190. Xmin
  191. Xmax
  192. Xscl
  193. Ymin
  194. Ymax
  195. Yscl
  196. (delta)X
  197. (delta)Y
  198. XFact
  199. YFact
  200. Tmin
  201. Tmax
  202. Tstep
  203. -omin
  204. -omax
  205. -ostep
  206. UnStart
  207. VnStart
  208. nStart
  209. nMin
  210. nMax
  211. ZXmin
  212. ZXmax
  213. ZYmin
  214. ZYmax
  215. ZYscl
  216. ZTmin
  217. ZTmax
  218. ZTstep
  219. Zomin
  220. Zomax
  221. Zostep
  222. ZUnStart
  223. ZVnStart
  224. ZnStart
  225. ZnStart
  226. ZnMin
  227. ZnMax
  228. GDB1
  229. GDB2
  230. GDB3
  231. GDB4
  232. GDB5
  233. GDB6
  234. Pic1
  235. Pic2
  236. Pic3
  237. Pic4
  238. Pic5
  239. Pic6
  240. n
  241. _x
  242. Sx
  243. ox
  244. _y
  245. Sy
  246. oy
  247. minX
  248. maxX
  249. minY
  250. maxY
  251. Mx
  252. Mx²
  253. My
  254. My²
  255. Mxy
  256. a
  257. b
  258. c
  259. d
  260. e
  261. r
  262. RegEQ
  263. Q1
  264. Med
  265. Q3
  266. x1
  267. y1
  268. x2
  269. y2
  270. x3
  271. y3
  272. TblMin
  273. (delta)Tbl
  274. TblInput
  275. Y1
  276. Y2
  277. Y3
  278. Y4
  279. Y5
  280. Y6
  281. Y7
  282. Y8
  283. Y9
  284. Y0
  285. X1t
  286. Y1t
  287. X2t
  288. Y2t
  289. X3t
  290. Y3t
  291. X4t
  292. Y4t
  293. X5t
  294. Y5t
  295. X6t
  296. Y6t
  297. r1
  298. r2
  299. r3
  300. r4
  301. r5
  302. r6
  303. Un
  304. Vn
  305. FnOn
  306. FnOff
  307. abs
  308. D
  309. sin
  310. sin-¹
  311. E
  312. cos
  313. cos-¹
  314. F
  315. tan
  316. tan-¹
  317. G
  318. ^
  319. Pi
  320. H
  321. ²
  322. (srqt)
  323. I
  324. ,
  325. E
  326. J
  327. (
  328. {
  329. K
  330. )
  331. }
  332. L
  333. /
  334. M
  335. log
  336. 10^
  337. N
  338. 7
  339. Un-1
  340. O
  341. 8
  342. Vn-1
  343. P
  344. 9
  345. n
  346. Q
  347. *
  348. [
  349. R
  350. ln
  351. e^
  352. S
  353. 4
  354. L4
  355. T
  356. 5
  357. L5
  358. U
  359. 6
  360. L6
  361. V
  362. -
  363. ]
  364. W
  365. ->
  366. X
  367. 1
  368. L1
  369. Y
  370. 2
  371. L2
  372. Z
  373. 3
  374. L3
  375. o
  376. +
  377. "
  378. 0
  379. Leerschritt
  380. .
  381. :
  382. -
  383. Ans
  384. ?

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

JMtxTLet

Bearbeiten