Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Schrödinger
Anmeldungsdatum: 06.10.2009 Beiträge: 6
|
Verfasst am: 06.10.2009, 14:51 Titel: Eingabe ohne Enter |
|
|
Hallo!
Ich bin neu und quasi Anfänger. Ich habe früher aus Spaß sehr viel gemacht mit basic. Kleine Spielchen und Rechenprogramme. Das ist aber schon sehr lange her und man verlernt das ganze recht schnell.
Jetzt will ich mir ein kleines Hilfsprogramm schreiben das mit Poker zu tun hat.
Frage:
Kann ich ein Input machen ohne Enter zu drücken? Also wenn ich eine z.B. eine Ziffer eingebe, das Programm sofort zum nächsten input springt?
Viele Grüße
Tobias |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.10.2009, 14:55 Titel: |
|
|
INKEY... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Schrödinger
Anmeldungsdatum: 06.10.2009 Beiträge: 6
|
Verfasst am: 06.10.2009, 15:07 Titel: |
|
|
Junge, Junge! Das geht ja flott hier!
Vielen Dank!
Dann bin ich mal so unverschämt und stelle noch eine Frage.
Ich suche eine einfache Möglichkeit eine ganze Reihe von Kombinationen aus 5 Eingaben rauszusuchen.
Es geht ja um Poker. Ich habe 5 Karten und will das mir mein Programm z.B. eine unvollständige Straße raussucht.
Das sieht bisher so aus:
Code: | 10 INPUT a$
20 INPUT b$
30 INPUT c$
40 INPUT d$
50 INPUT e$
80 IF a$ = "a" OR a$ = "2" OR a$ = "4" OR a$ = "5" GOTO 100 ELSE 140
100 IF b$ = "a" OR b$ = "2" OR b$ = "4" OR b$ = "5" GOTO 120 ELSE 360
120 IF c$ = "a" OR c$ = "2" OR c$ = "4" OR c$ = "5" GOTO 130 ELSE 360
130 IF d$ = "a" OR d$ = "2" OR d$ = "4" OR d$ = "5" GOTO 350 ELSE 360
140 IF b$ = "a" OR b$ = "2" OR b$ = "4" OR b$ = "5" GOTO 141 ELSE 150
141 IF c$ = "a" OR c$ = "2" OR c$ = "4" OR c$ = "5" GOTO 142 ELSE 360
142 IF d$ = "a" OR d$ = "2" OR d$ = "4" OR d$ = "5" GOTO 143 ELSE 360
143 IF e$ = "a" OR e$ = "2" OR e$ = "4" OR e$ = "5" GOTO 350 ELSE 360
150 IF c$ = "a" OR c$ = "2" OR c$ = "4" OR c$ = "5" GOTO 151 ELSE 360
151 IF d$ = "a" OR d$ = "2" OR d$ = "4" OR d$ = "5" GOTO 152 ELSE 360
152 IF e$ = "a" OR e$ = "2" OR e$ = "4" OR e$ = "5" GOTO 153 ELSE 360
153 IF a$ = "a" OR a$ = "2" OR a$ = "4" OR a$ = "5" GOTO 350 ELSE 360
160 IF d$ = "a" OR d$ = "2" OR d$ = "4" OR d$ = "5" GOTO 161 ELSE 360
161 IF e$ = "a" OR e$ = "2" OR e$ = "4" OR e$ = "5" GOTO 162 ELSE 360
162 IF a$ = "a" OR a$ = "2" OR a$ = "4" OR a$ = "5" GOTO 163 ELSE 360
163 IF b$ = "a" OR b$ = "2" OR b$ = "4" OR b$ = "5" GOTO 350 ELSE 360
170 IF e$ = "a" OR e$ = "2" OR e$ = "4" OR e$ = "5" GOTO 171 ELSE 360
171 IF a$ = "a" OR a$ = "2" OR a$ = "4" OR a$ = "5" GOTO 172 ELSE 360
172 IF b$ = "a" OR b$ = "2" OR b$ = "4" OR b$ = "5" GOTO 173 ELSE 360
173 IF c$ = "a" OR c$ = "2" OR c$ = "4" OR c$ = "5" GOTO 350 ELSE 360
350 PRINT "GSSD"
355 GOTO 900
360 PRINT "nix"
900 END
|
Das ist natürlich extrem umständlich bis hoch zum Ass
Grüße |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 06.10.2009, 15:47 Titel: |
|
|
Ich würde da wahrscheinlich mit einem Array arbeiten, dieses dann nach Kartenwert sortieren und dann schauen, ob die Kartenwerte direkt nacheinander liegen.
Eingabe:
Code: | FOR i = 1 TO 5
INPUT karte(i)
NEXT |
Sortieren mit einem gängigen Sortierverfahren wie QuickSort oder auch BubbleSort
Der Vergleich ist anschließend recht einfach. Ich gehe jetzt mal davon aus, dass die Werte als Zahlen vorliegen (A = 1, K = 13 usw:); verbraucht weniger Speicher und ist leichter zu handhaben:
Code: | alleInEinerReihe = 1
FOR i = 2 TO 5
IF karte(i) <> karte(i-1)+1 THEN
alleInEinerReihe = 0
EXIT FOR
END IF
NEXT
IF alleInEinerReihe = 1 THEN
PRINT "GSSD"
ELSE
PRINT "nix"
ENDIF |
Dabei kann in einer Straße allerdings nicht Ass auf König folgen; an der Stelle kannst du noch ausbauen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Schrödinger
Anmeldungsdatum: 06.10.2009 Beiträge: 6
|
Verfasst am: 06.10.2009, 16:02 Titel: |
|
|
Danke für die Antwort.
Ich sehe ich muss nochmal viel lernen.
Ich kenne von früher das basic mit Zeilennummern.
Das hier bezieht sich auf eine Variante ohne Zeilennummern, Freebasic, oder?
Grüße |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 06.10.2009, 16:12 Titel: |
|
|
Auch QBASIC verwendet keine Zeilennummern, sofern du sie nicht gesondert als Marken einführst. Ich beziehe mich nach Möglichkeit immer auf die Sprache, in dessen Forum ich bin (in diesem Fall QBASIC). Für FreeBASIC müsste auf jeden Fall noch eine Dimensionierung der Variablen erfolgen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Schrödinger
Anmeldungsdatum: 06.10.2009 Beiträge: 6
|
Verfasst am: 08.10.2009, 12:48 Titel: |
|
|
Okay, Danke!
Kannst Du mir vielleicht ein Beispiel geben wie sowas aussehen würde ohne Zeilennummern?
Code: | 140 IF b$ = "a" OR b$ = "2" OR b$ = "4" OR b$ = "5" GOTO 141 ELSE 150
141 IF c$ = "a" OR c$ = "2" OR c$ = "4" OR c$ = "5" GOTO 142 ELSE 360
142 IF d$ = "a" OR d$ = "2" OR d$ = "4" OR d$ = "5" GOTO 143 ELSE 360
143 IF e$ = "a" OR e$ = "2" OR e$ = "4" OR e$ = "5" GOTO 350 ELSE 360 |
Grüße
Hat sich schon erledigt!!! |
|
Nach oben |
|
 |
|