Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

würfelpoker - "stärkstes" erkennen !

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 15:42    Titel: würfelpoker - "stärkstes" erkennen ! Antworten mit Zitat

hi leute, ich muss ein Würfel poker schreiben und hab folgende frage:

wie mache ich dass er zum schluss nur eben ein ergebnis ausgibt: also zb nur ein pärchen oder nur ein fullhouse etc. also dass er erkennt was das stärkste ist was gewürfelt wurde und das dann ausgibt ! weil wenn bei mir 5 gleiche sind printet er eben alles, vom pärchen bis zum grande ! habs mit 2 wegen versucht doch keines der beiden hat richtig gefunkt traurig

thx im vorraus !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 30.11.2006, 15:52    Titel: Antworten mit Zitat

Die Würfel bekommen alle je eine Variable. Den Variablen werden Zufallszahlen zugewiesen. Dann wird ausgewertet. Die Sachen, die sich ähnlich sind, aber jede noch etwas zusätzlich braucht, werden hintereinander gesetzt und abgeprüft. Und zwas so, dass das mit am meisten zusätzlich hat, als erstes kommt. Ist es das, wird die Auswertung abgebrochen und des Ergebnis angezeigt. Ist es nicht das, wird die Auswertung abgebrochen.

mfg

The real Agent D
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 16:08    Titel: Antworten mit Zitat

The real Agent D hat Folgendes geschrieben:
Die Würfel bekommen alle je eine Variable. Den Variablen werden Zufallszahlen zugewiesen. Dann wird ausgewertet. Die Sachen, die sich ähnlich sind, aber jede noch etwas zusätzlich braucht, werden hintereinander gesetzt und abgeprüft. Und zwas so, dass das mit am meisten zusätzlich hat, als erstes kommt. Ist es das, wird die Auswertung abgebrochen und des Ergebnis angezeigt. Ist es nicht das, wird die Auswertung abgebrochen.

mfg

The real Agent D



ich glaub du hast mich falsch verstanden ! ich hab ja schon alle würfeln mit den zufalls zahlen usw. nur eben ich will machen dass er nur das stärkste ergebnis anzeigt. also wenn 3 gleiche sind dass er nicht pärchen und drilling anzeigt sondern nur drilling !

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The real Agent D



Anmeldungsdatum: 24.11.2005
Beiträge: 605
Wohnort: Hall i. T.

BeitragVerfasst am: 30.11.2006, 16:13    Titel: Antworten mit Zitat

korn3l hat Folgendes geschrieben:

ich glaub du hast mich falsch verstanden ! ich hab ja schon alle würfeln mit den zufalls zahlen usw. nur eben ich will machen dass er nur das stärkste ergebnis anzeigt. also wenn 3 gleiche sind dass er nicht pärchen und drilling anzeigt sondern nur drilling !

mfg

Ganu das hab ich dir gesagt. Du musst zu erst überprüfen, ob es drilling ist, dann, ob es ein Pärchen ist. Wenn es ein drilling ist, beenden der Überprüfung und anzeigen des Ergebnisses.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 16:34    Titel: Antworten mit Zitat

hmmm ja aber wie geht der code dass er aufhört zu überprüfen? also bei mir is das pärchen jetzt so:


Code:

IF wurfel1% = wurfel2% OR wurfel1% = wurfel3% OR wurfel1% = wurfel4% OR wurfel1% = wurfel5% OR wurfel2% = wurfel3% OR wurfel2% = wurfel4% OR wurfel2% = wurfel5% OR wurfel3% = wurfel4% OR wurfel3% = wurfel5% OR wurfel4% = wurfel5% THEN
    PRINT paar$
END IF

und ein teil vom drilling:

Code:


IF wurfel1% = wurfel2% AND wurfel1% = wurfel3% THEN
        PRINT drei$
END IF



mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 30.11.2006, 16:50    Titel: Antworten mit Zitat

Ist dir eigentlich klar, das du laut dem benutzerzähler(auf der startseite unten) der 1000 Nutzer bist? zwinkern

Herzlichen Glückwunsch grinsen
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 16:58    Titel: Antworten mit Zitat

programmierer hat Folgendes geschrieben:
Ist dir eigentlich klar, das du laut dem benutzerzähler(auf der startseite unten) der 1000 Nutzer bist? zwinkern

Herzlichen Glückwunsch grinsen


stimmt grinsen hab ich erst jetzt bemerkt happy

dann muss doch jemand den code für mein poblem haben grinsen für den 1000 user lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Key



Anmeldungsdatum: 03.10.2006
Beiträge: 95

BeitragVerfasst am: 30.11.2006, 17:01    Titel: Antworten mit Zitat

erstmal herzlichen glückwunsch happy

Wenn du das mit ELSEIF machst dann geht das:

Code:

IF wurfel1% = wurfel2% AND wurfel1% = wurfel3% THEN
        PRINT drei$
ELSEIF wurfel1% = wurfel2% OR wurfel1% = wurfel3% OR wurfel1% = wurfel4% OR wurfel1% = wurfel5% OR wurfel2% = wurfel3% OR wurfel2% = wurfel4% OR wurfel2% = wurfel5% OR wurfel3% = wurfel4% OR wurfel3% = wurfel5% OR wurfel4% = wurfel5% THEN
    PRINT paar$
END IF


so wird jetz zuerst abgefragt ob ein 3er vorhanden ist und erst wenn das NICHT der Fall ist wird nach nem paar gesucht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 17:04    Titel: Antworten mit Zitat

ok aber ich hab beim dreier und den anderen mehrere if, wie verbinde ich die mit einander ?

also :

Code:

IF wurfel1% = wurfel2% AND wurfel1% = wurfel3% THEN
        PRINT drei$
END IF


IF wurfel1% = wurfel2% AND wurfel1% = wurfel4% THEN
        PRINT drei$
END IF

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
korn3l



Anmeldungsdatum: 30.11.2006
Beiträge: 13

BeitragVerfasst am: 30.11.2006, 17:19    Titel: Antworten mit Zitat

ok bin selber draufkommen grinsen alles mit elseif grinsen

thx @ alle lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 30.11.2006, 17:20    Titel: Antworten mit Zitat

Ich hatte mal ein Kniffel in BlitzBasic geschrieben, das hier sind die Abfragen für die einzelnen Folgen.
Code:
If b7 = 3 And Punkte (spieler, 7) = -1 Then ;Dreierpasch prüfen
               p = 0
               dreier = False
               For Wuerfel = Each Wuerfel
                  p = p + Wuerfel\w
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1
                  If ww[Wuerfel\w] >= 3 Then dreier = True
               Next
               If dreier = False Then p = 0
               Punkte(spieler, 7) = p
               Return True                  
         End If

         If b8 = 3 And Punkte (spieler, 8) = -1 Then ;Viererpasch prüfen
               p = 0
               dreier = False
               For Wuerfel = Each Wuerfel
                  p = p + Wuerfel\w
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1
                  If ww[Wuerfel\w] >= 4 Then dreier = True
               Next
               If dreier = False Then p = 0
               Punkte(spieler, 8) = p
               Return True                  
         End If

         If b9 = 3 And Punkte (spieler, 9) = -1 Then ;Full House prüfen
               p = 25
               fullhouse = False
               For Wuerfel = Each Wuerfel
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1                  
               Next
               zwei = 0: drei = 0
               For a = 1 To 6
                  If ww[a] >= 3 Then drei = 1 ElseIf ww[a] >= 2 Then zwei = 1
               Next
               If zwei < 1 Or drei < 1 Then p = 0
               Punkte(spieler, 9) = p
               Return True               
         End If

         If b10 = 3 And Punkte (spieler, 10) = -1 Then ;Kleine Straße
               p = 30
               klstrasse = False
               For Wuerfel = Each Wuerfel
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1                  
               Next
               If (ww[3] >= 1 And ww[4] >= 1) And ( (ww[1] >= 1 And ww[2] >= 1) Or (ww[2] >= 1 And ww[5] >= 1) Or (ww[5] >= 1 And ww[6] >= 1) ) Then klstrasse = True
               If Not klstrasse Then p = 0
               Punkte(spieler, 10) = p
               Return True               
         End If
         
         If b11 = 3 And Punkte (spieler, 11) = -1 Then ;Große Straße
               p = 40
               grstrasse = False
               For Wuerfel = Each Wuerfel
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1                  
               Next
               If (ww[2] >= 1 And ww[3] >= 1 And ww[4] >= 1 And ww[5] >= 1) And (ww[1] >= 1 Or ww[6] >= 1) Then grstrasse = True
               If grstrasse = False Then p = 0
               Punkte(spieler, 11) = p
               Return True               
         End If

         If b12 = 3 And Punkte (spieler, 12) = -1 Then ;Chance
               p = 0
               For Wuerfel = Each Wuerfel
                  p = p + Wuerfel\w
               Next               
               Punkte(spieler, 12) = p
               Return True               
         End If

         If b13 = 3 And Punkte (spieler, 13) = -1 Then ;Kniffel
               p = 50
               kniffel = False
               For Wuerfel = Each Wuerfel
                  ww[Wuerfel\w] = ww[Wuerfel\w] + 1                  
                  If ww[Wuerfel\w] = 5 Then kniffel = True
               Next
               If kniffel = False Then p = 0
               Punkte(spieler, 13) = p
               Return True               
         End If

Ist jetzt zwar kein reines QB, aber ich denke, man kann es auch als QBler einfach lesen...

Der komplette Code ist hier: http://www.blitzforum.de/upload/file.php?id=332

Und das kompilierte Spiel hier http://thomasdecker1.googlepages.com/wuerfel.exe[/url]
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 30.11.2006, 18:28    Titel: Antworten mit Zitat

Ein ähnlicher Thread wurde sonst bereits früher einmal gestartet:

http://forum.qbasic.at/viewtopic.php?t=3179
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 02.12.2006, 16:47    Titel: Antworten mit Zitat

"SELECT CASE" ist in solchen fällen besser geeignet als "IF"... ist zumindes meine meinung.

mfg OdinX
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz