Texas Hold'em Poker (Progger gesucht)

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

 

wutzili

Betreff: Verschieben

BeitragDi, Okt 16, 2007 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, verschieben ist doch nicht schlecht. Very Happy

BladeRunner

Moderator

BeitragDi, Okt 16, 2007 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
nur so als letzter Hinweis:

Code: [AUSKLAPPEN]
a1=10
a2=20
a3=30
a4=40
a5=50
a6=60
a7=70
print a1
print a2
print a3
print a4
print a5
print a6
print a7

Code: [AUSKLAPPEN]

dim a(7)
for i = 1 to 7
    a(i) = 10*i
    print a(i)
next

Vergleich nur mal die Schreibarbeit. Wenn Du es von Anfang an richtig machst wirst Du dir massig Zeit sparen. Damit das allerdings funktioniert darfst Du nicht wild losprogrammieren sondern musst erst lernen und verstehen.
Es liegt bei dir wie Du es machst. Allerdings werde ich mir nicht die Mühe machen die Codeungetüme die bei deinem jetzigen Stil entstehen durchzuschauen. Wenn Du Hilfe willst solltest Du allgemein anerkannte Prinzipien befolgen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Dottakopf

BeitragDi, Okt 16, 2007 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Da es aber keine Fehler sind die die Funktionalität beeinträchtigen (Schönheitsfehler eben) werde ich diese nach und nach ausmärzen wenn ich soweit bin.


Das hier ist kein schönheitsfehler: ( 54 zeilig nach unten )

Code: [AUSKLAPPEN]

Global karte0.kartenTyp
Global karte1.kartenTyp
Global karte2.kartenTyp
Global karte3.kartenTyp
Global karte4.kartenTyp
Global karte5.kartenTyp
Global karte6.kartenTyp
Global karte7.kartenTyp
Global karte8.kartenTyp


und dann damit weiter den typ erstellen

Code: [AUSKLAPPEN]

karte0.kartenTyp=New kartenTyp
karte1.kartenTyp=New kartenTyp
karte2.kartenTyp=New kartenTyp
karte3.kartenTyp=New kartenTyp
karte4.kartenTyp=New kartenTyp
karte5.kartenTyp=New kartenTyp
karte6.kartenTyp=New kartenTyp
karte7.kartenTyp=New kartenTyp


damit du so zuweisen kannst:

Code: [AUSKLAPPEN]

karte0\k_type$="Pick Ass"
karte1\k_type$="Pick König"
karte2\k_type$="Pick Dame"
karte3\k_type$="Pick Bube"
karte4\k_type$="Pick 10"
karte5\k_type$="Pick 9"
karte6\k_type$="Pick 8"
karte7\k_type$="Pick 7"
karte8\k_type$="Pick 6"


Dein kompletter type braucht unglaubliche 216 Zeilen Shocked
Da schreibe ich spaceshooter mit 5 types drinne. Die um einiges mehr beinhalten als die namen einer karte und den frame der mal angezeigt werden soll.

Das ist keine kritik! Lediglich der hinweis daraufhin, dass das im sinne deines projektes so kaum durchführbar sein wird. Ich weis das du bb anfänger bist, ich selbst habe auch so in der art angefangen zu proggen, und manchmal, wenn ich zu faul zum denken bin, mach ichs wieder.

Um dir zu zeigen, wie umständlich du es machst, schreib doch mal ne function, die alle karten gleichzeitig auf dem bildschirm malt. Kannste ja simpel "als show_all_cads()" in deine schleife mit einbinden, da wo auch "karten_mischen()" und so drinne ist. Früher oder später musst du ja mal den type ansprechen, um zu sehen was aufn tisch liegt.

mfg Dottakopf

D2006

Administrator

BeitragDi, Okt 16, 2007 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Dottakopf:
Selbst das ist noch unsauber.
Warum nicht einfach so:


Code: [AUSKLAPPEN]
Dim karte.kartenTyp(8)
For t=0 To 8
karte(t) = New kartenTyp
karte(t)\k_type$ = "Bla Blubb"
Next
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Dottakopf

BeitragDi, Okt 16, 2007 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Selbst das ist noch unsauber.
Warum nicht einfach so:


äh was ist unsauber ? ich wollte lediglich dazu anregen, dass er mal versucht alle bilder anzuzeigen. Was komplex werden könnte.


Ne frage am rande: warum mehrere karten typen ? Bin mit poker nicht wirklich vertraut, und bin glücklich, wenn ich gegen meine 9 jährige schwester 9erles gewinne ^^.

lol.karte = new kartentype

blup.karte = new kartentype

Das sind doch 2 verschiedene types. Oder brauch ich type nachhilfe ? Confused


~Edit~
ist zwar nicht so cool wie vom admin aber des wäre die 2te variante:
Code: [AUSKLAPPEN]

            For x = 0 To 53   

                x_koord = x_koord + 50   
               
                 info.karte = New karte
                    info\kx      = x_koord
                    info\ky      = 200
                    info\k_frame = x
            Next


und dann halt noch mit for bla ech blup type ansprechen und malen

Maskimage nicht in einer schleife ausführen,sondern nach dem bilder laden.

mfg Dottakopf

Mr.Keks

BeitragDi, Okt 16, 2007 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
lol.karte = new kartentype

blup.karte = new kartentype

Das sind doch 2 verschiedene types. Oder brauch ich type nachhilfe ?
nein, das sind zwei verschiedene instanzen eines types. das lol/blup ist ein zeiger auf eben solch eine instanz. manche nennen types auch klassen und instanzen auch objekte... das ist mit normalem sprachgebrauch auch leichter nachzuvollziehen. lol und blup sind zwar zwei verschiedene objekte, aber objekte derselben klasse, nämlich karte. beide sind karten. da karte der type ist, ist es nur ein type.

deine methode unterscheidet sich nicht so sehr von dees. dee speichert lediglich die objektadressen in einem array, wodurch sich später der zugriff vereinfacht. aber wie du schon erkannt hast, ist das nicht zwingend notwendig, da blitz ganz von selbst darauf achtet, das kein objektschäfchen verloren geht, und sie dir alle über foreach abrufbar hält (=
MrKeks.net
 

wutzili

BeitragDi, Okt 16, 2007 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
[quote="Dottakopf"]Zitat:

Ne frage am rande: warum mehrere karten typen ? Bin mit poker nicht wirklich vertraut, und bin glücklich, wenn ich gegen meine 9 jährige schwester 9erles gewinne ^^.


Also ich habe das As 4 mal so wie alle restlichen 12 Karten (2,3,4,5,6,7,8,9,10,b,d,k,a), jede der Karten möchte ich einen Wert zuordnen. Ich denke mal mit der unteren Schleife könnte ich das machen! Aber
dann muß ich 13 verschiedene Types erstellen für jede Kartenansammlung (Gleiche Karten z.B.: 4,4,4,4)
also habe ich das erstmal so gelöst bis ich eine Idee habe es anders zu lösen. Dim feld(10) ok währe eine Lösung oder Arrays sowie Mehrdimensionale Arrays. Aber erstmal gehts so. Warum eigentlich soll ich alle Karten ausgeben? He ich weiß das ich das über for....next machen kann. Sehe darin keinen sinn sorry.

Wenn Du etwas ungestresster schreiben würdest dann könnte sogar ich es verstehen.

[quote="Dottakopf"]Zitat:

Code: [AUSKLAPPEN]

            For x = 0 To 53   

                x_koord = x_koord + 50   
               
                 info.karte = New karte
                    info\kx      = x_koord
                    info\ky      = 200
                    info\k_frame = x
            Next




Also mit obenstehender Schleife oder die vom Admin währe der Karten Types bestimmt verkürzt.
So werde ich das auch noch machen, nur sind das dann 13 verschiedene Types wegen den verschiedenen Wertigkeiten und Kartennamen! z.b. Karo As oder Pick As sollen beide eine Wertigkeit bekomme (die selbe) Aber es sind bei verschiedenen Spielarten völlig verschiedene Karten! Also Pick ist höher wie Karo. Ok das ist noch weit weg aber so wird oder soll es sein.

Wenn jemand mir bei den Types helfen kann ohne das ich 13 verschiedene (pro Kartenansammlung eine) mache muß währe das echt suppi lieb. und Dottakopf ich brauche keine karten x - Y Koordinaten im Types.
Die x - y Koordinaten gebe ich so aus da diese immer gleichbleiben.

Mit freundlichem Gruß
wutzili

BladeRunner

Moderator

BeitragDi, Okt 16, 2007 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Die x - y Koordinaten gebe ich so aus da diese immer gleichbleiben.

Und machst dir damit das leben schwer da du für dutzende Karten die Koordinaten irgendwo hinschreibst anstatt sie anhand eines simplen Einzeilers berechnen zu lassen.
Und Du brauchs nicht soviele Types. Jedes Objekt welches Du von einem Type erstellst wird intern in einer Liste verwaltet und kann JEDERZEIT aufgerufen werden, ohne dass Du für jede Instanz eine eigene Variable erstellst.
Du hast also den Sinn von Types bislang noch nicht mal im Ansatz erfasst.
Types sind ja grade für den Fall dass man sehr viele Objekte braucht sehr gut, da man jedes Objekt in einer Schleife durchlaufen kann und dann anhand der Felder in ihnen entscheidet ob es grade zu bearbeiten ist oder nicht.

In deinem Fall jedoch würde ich das Spiel selbst (also die Karten) sogar noch eher als Array verwalten, da Du ja eine feste Kartenzahl hast welche sich nie ändert.
Mit einem simplen Karten(13,4) hast Du alle Karten abgedeckt und kannst zB in die einzelnen Zellen die Nummer des Spielers eintragen der die Karte grade hält. Anhand des numerischen Wertes der Arrayposition ist es auch kein Problem das Frame für die visuelle Darstellung zu errechnen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

wutzili

BeitragDi, Okt 16, 2007 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
[quote="BladeRunner"]Zitat:

Du hast also den Sinn von Types bislang noch nicht mal im Ansatz erfasst.


Doch ich denke schon, nur hat jeder einzelne Datensatz in dem Types einen anderen Namen.

wie also soll ich das mit einer for machen? 13 mal Pick, 13 mal Karo usw. Das ist das einzigste was ich nicht hinbekomme. Ok ich könnte das auf 4 (karo, herz, pick, kreuz) Types eingrenzen aber mehr schaffe ich z.Z. nicht.

Und die x - y Koordinaten brauche ich nur einmal für die Community Cards und je zwei für alle Spieler.
Wozu also errechnen lassen wenn ich die Werte fest eingeben kann und nur die kartennummer des aufzuruffenden Bildes sich ändert? Das währe auch nicht viel kürzer.

Very Happy

BladeRunner

Moderator

BeitragDi, Okt 16, 2007 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, soehe oben in meinem Beispiel. Das ist dasselbe Prinzip. Anstatt 7 Zuweisungen und 7*print (14 Zeilen) hab ich 5 Zeilen Code, und das geht auch für die Anzeige. Du musst nur die Anzeige abstrahieren, nach gleichförmigkeiten suchen. Die karten werden schon der Optik wegen in einem regelmäßigen Abstand liegen, also wird es eine Formel geben anhand derer du sie einzeichnen lassen kannst.
Und nein, Du brauchst nicht mehrere Types.

Beispiel:
Code: [AUSKLAPPEN]
Type test
    Field name$
    Field wert%
End Type

For i = 1 To 4
    For j = 1 To 13
        a.test = New test
        a\wert = j
        Select i
        Case 1           
           a\name="kreuz"
        Case 2
           a\name="pik"
        Case 3
           a\name="Herz"
        Case 4
           a\name="karo"
        End Select
    Next
Next

For a = Each test
    Print a\name+" "+a\wert
    WaitKey
Next

Ich bilde mit einem Type und in weniger als 25 Zeilen mehr ab als Du in 130. Du hast es nicht verstanden, glaub es mir. Du solltest noch weiter üben bevor Du das hier weiter machst.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

wutzili

BeitragDi, Okt 16, 2007 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:

Code: [AUSKLAPPEN]

For i = 1 To 4
    For j = 1 To 13
        a.test = New test
        a\wert = j
        Select i
        Case 1           
           a\name="kreuz"
        Case 2
           a\name="pik"
        Case 3
           a\name="Herz"
        Case 4
           a\name="karo"
        End Select
    Next
Next

For a = Each test
    Print a\name+" "+a\wert
    WaitKey
Next



He suppi danke, habe das mal umgesetzt und so gehts, mit dem Select da bin ich net drauf gekommen.
Cool danke. Das hat meinen code um 163 zeilen verkürzt! DANKE DANKE
Aber die Typen habe ich verstanden " Was man damit bezweckt" aber wie ich mit Ihnen in deren unterschiedlichsten anwendungsweisen umgehe nicht. Nochmal Danke
 

pepetigo

BeitragDi, Okt 16, 2007 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin zwar noch nicht so gut würde aber gerne mal mitbekommen wie das so funktioniert.
Vielleicht lerne ich auch etwas.
Und ich denke nur aus "Praxis" lernt man.

The_Nici

BeitragDi, Okt 16, 2007 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie was funktioniert? Arrays?
 

wutzili

BeitragDi, Okt 16, 2007 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
The_Nici hat Folgendes geschrieben:
Wie was funktioniert? Arrays?


Wenn Du etwas weiter oben anfangen würdest zu lesen würdest Du auch wissen was gemeint ist!
Ich denke mal das Du nicht alles gelesen hast und somit auch den zusammenhang nicht verstehst!
So mal eben doppelt gemoppelt Wink BladeRunner wird wissen was ich meine und auf Ihn oder besser seinen
Kommentar war dieses auch bezogen! Danke nochmal an

-------------------------------------------------
DICH-----------------------------------------/
-----------------------------------------------| <--- MEISTER KLASSE | DEN RAT HATTE ICH GEBRAUCHT | DANKE
BladeRunner--------------------------------\
-------------------------------------------------

Very Happy So nun mach ich mal schöööön weiter in meinem
codesalat Smile

MFG
 

wutzili

Betreff: Ich habe mir mal mühe gegeben !!!

BeitragMi, Okt 17, 2007 11:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der Link mit dem Aktuellen Stand des Spiels! Very Happy

http://www.designer-poker.de/texas%20hold%20em.rar

Habe die Nacht bis jetzt durchgemacht Wink

Die ganze struktur ist nun umgebaut und es funktioniert auch alles bis jetzt.
Zwar hab ich noch nicht den ganzen Alten Code überarbeitet, das kommt
daher das ich auf ein Komentar von einem der es drauf hat warte. Ich möchte
gerne wissen ob ich nun auf dem richtigen Weg bin oder ob meine Struktur nun
immer noch höchstens für die Ablage P taugt (P = Papiertonne) Wink

Ich würd mich TIERISCH FREUEN wenn jemand sagt so und noch ca. 82% mehr dann
biste kein Anfänger mehr Wink Also Downloaden und daran rummeckern oder net!

Mit freundlichem Gruß
wutzili

Dottakopf

BeitragMi, Okt 17, 2007 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
auf jeden fall besser.

Die main kann man für meinen geschmack so lassen. (von der gliederung her).
Auch find ichs gut, dass du mal die includes sinvoll benannt hast und der inhalt der sich da drin befindet da auch reinpasst.
Trotzdem passt des so immer noch nicht, bzw. ich würde es anders machen, da es mir einfach zu nervig wäre immer von einer include zur anderen zu hüpfen nur um mal kurz ne varriable hinzuzufügen bzw. einen kleinen wert zu verändern.

Vorschlag:
Die main kannste so eig. lassen aber ich würde da noch die ganzen grafiken nach den includes laden.
Die main-loop glieder ich bei jedem projekt immer so:
Code: [AUSKLAPPEN]

repeat

   if menu = 0 
      cls
      show_menu

   elseif menu = 1
      cls
      karten_geben()
      karten_auswerten()
      usw()

   elseif menu = 2
      pause()

   elseif menu = 3
      game_over()
   
   end if
flip
until keyhit(1)


So kann ich den programmablauf in meinem game leicht und simpel kontrolieren.

Die restlichen includes naja..... Statt eine "functionen.bb" zu schreiben, solltest du lieber karten_zeug.bb machen. Da kommen dan so funktionen rein die mit karten zu tun haben. Karten_mischen(),karten_geben(), karten_auswerten(). Sowas in der art.
Alle varriablen die du für die gerade gennanten funktionen brauchst müssen dan auch in der karten_zeug.bb stehen. Das gilt auch für die types.

Ich schlage vor, dass du das programm in 3 teile unterteilst
- main die alles zusammenfasst
- karten_zeug.bb ("oder sinvollerer name ka welche ^^)
- menu.bb (Das hat einfach nix mit karten zu tun....daher extra .bb)

Ich behaupte, dass das gut an strukturiert rankommt. So ist es möglich, dass auch ein fremder dein progamm nachvollziehen kann.

mfg Dottakopf
 

wutzili

Betreff: DANKESCHÖN

BeitragMi, Okt 17, 2007 12:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja habe das mal so umgesetzt mit der MAIN...
Das klappt so sehr viel besser.

Werde mich noch daran setzen das ich die Funktionen und Types etwas sinvoller Verteile.
OK, habe es ja einer Datei unterteielt also wirds nicht all zu schwer Wink

He ein lichtchen am ende des Tunnels !! Jippy... Das freut mich...
He gebe mir echt mühr net so zu sein wie die die das gleiche wie ich vorhatten und aufgegeben haben.
Das macht mir volle elle spass. Soll net so rüberkommen das ich mich anstelle wenn jemand der Erfahrener
ist wie ich sagt he lass es. Nein ich möcht da halt Durch und so macht das doch spass! Blade... Der hat mir schon mal dolle geholfen mit dem SELECT... hatte es vor augen aber nicht genutzt und nun ne ganze Nacht durchgemacht und dann Tatsäcklich n Lob.. <--- Mein erstes Wink ..... He so macht es spass, wird zwar noch n ganzes stück arbeit ( noch 90% zu Proggen ) denke ich aber das wird schon...

So werde mal Optimieren und dann den Code wieder Neu Online als Download stellen.

MFG
wutzili

Laughing

D2006

Administrator

BeitragMi, Okt 17, 2007 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
D2006 hat Folgendes geschrieben:
Noch ein Doppelpost und der Thread ist dicht. Benutze den Edit-Button.


Leider gehören leere Drohungen nicht zu meinem Repertoire, daher:

~GESCHLOSSEN~
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Gehe zu Seite Zurück  1, 2, 3

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group