Binokel
Übersicht

BroghiBetreff: Binokel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kleine Frage: Warum zeigt BlitzPlus immer Dinge, die es mit Write, Print,... ausdrucken soll, immer in enem anderen Fenster statt in dem Original-Fenster an?
Hauptproblem: Versuch grad ein Binokel-Programm z schreiben, ABER: 1.: Beim "Mischen" und zuordnen der Karten teilt das Progg nicht jede Karte zweimal aus (Da Binokel mit 48Karten(also 2x24 Karten)gespielt wird). 2.: Wenn ich jedem Spieler die Nummern der Karten, die er besitzt, zuordne und die Karten dann zeichnen will, kommt immer "Runtime Error - Invalid Image handle" Guckt euch mal den Quelltext an und sagt mir bitte, was ich falsch mach Danke Code: [AUSKLAPPEN] AppTitle "Binokel"
Graphics 1024,768 SetBuffer BackBuffer() SeedRnd MilliSecs() Dim cards(48,3) ;1=Bild;2=Ausgeteilt;3=Wert Dim Spieler$(4,16) ;1-15=Karten;16=Name; Spieler 4=Tapp ;Load Deckb=LoadImage("Images\Deckblatt.jpg") For A=1 To 24 cards(A,1)=LoadImage("Images\card"+A+".jpg") cards(A,2)=0 cards(A+24,1)=LoadImage("Images\card"+A+".jpg") cards(A+24,2)=0 Next ClsColor 0,140,0 Cls Flip ;Werte For A=1 To 6 If A=1 Then B=11 If A=2 Then B=10 If A=3 Then B=4 If A=4 Then B=3 If A=5 Then B=2 If A=6 Then B=0 cards(A,3)=B cards(A+6,3)=B cards(A+12,3)=B cards(A+18,3)=B Next ;"Mischen" For A=1 To 4 ;Spieler; Spieler4=Tapp C=15 ;Jeder Spieler bekommt 15 Karten If A=4 Then C=3 ; Der Tapp bekommt blos drei For B=1 To C .loop D=Rand(1,48) If cards(D,2)=2 Then Goto loop ;Prüfen, ob die Karte schon zweimal ausgeteilt wurde cards(D,2)=cards(D,2)+1 spieler$(A,C)=D ;Dem Spieler die Kartennummer zuweisen Write A+" "+B+": " ; Write spieler$(A,C) ;PRÜFEN, aber es werden nicht alle Karten zweimal(wenn überhaupt)ausgeteilt Print " "+cards(D,2) ; Next Next WaitMouse ;Austeilen For A=1 To 4 C=15 If A=4 Then C=3 For B=1 To C DrawImage cards(spieler$(A,B),1),B*30,50; spieler$(A,B)=Nummer der Karten des Spielers Next Flip WaitMouse Next End |
||
Wozu lernen wir überhaupt programmieren?
Damit der Computer für uns Aufgaben löst (die wir ohne ihn nie gehabt hätten!). |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
print gibbet in Blitz+ nicht mehr, dafür halt Editierfenster, Labels oder "notify" ![]() Edit: nun ja, "print" gibt es noch, aber es ist nicht mehr der Befehl, den man aus BB3d kennt |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich das sehe, verwechelst du irgendwie die Varaiblen:
Zitat: For A=1 To 4 ;Spieler; Spieler4=Tapp C=15 ;Jeder Spieler bekommt 15 Karten If A=4 Then C=3 ; Der Tapp bekommt blos drei For B=1 To C .loop D=Rand(1,48) If cards(D,2)=2 Then Goto loop ;Prüfen, ob die Karte schon zweimal ausgeteilt wurde cards(D,2)=cards(D,2)+1 spieler$(A,B)=D ;Dem Spieler die Kartennummer zuweisen Write A+" "+B+": " ; Write spieler$(A,B) ;PRÜFEN, aber es werden nicht alle Karten zweimal(wenn überhaupt)ausgeteilt Print " "+cards(D,2) ; Next Next WaitMouse ;Austeilen For A=1 To 4 C=15 If A=4 Then C=3 For B=1 To C DrawImage cards(spieler$(A,B),1),B*30,50; spieler$(A,B)=Nummer der Karten des Spielers Next Flip WaitMouse Next End So sollte sich eigentlich auch der 2. Fehler beheben.... |
||
Broghi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Karten werden jetzt angezeigt
Danke Allerdings werden sie immernoch ungleichmäßig ausgeteilt. Hab gesehen das Herz-König nur 1mal, dafur Schellen-König dreimal, da war. |
||
Wozu lernen wir überhaupt programmieren?
Damit der Computer für uns Aufgaben löst (die wir ohne ihn nie gehabt hätten!). |
Broghi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab jetzt mal die Karten gezählt, raus kam:
Herz: Ass=3 10=2 König=3 Dame=3 Bube=2 7=0 Schippen: A=4 10=1 K=2 D=2 B=2 7=0 Kreuz: A=1 10=0 K=3 D=1 B=4 7=2 Bollen: A=2 10=1 K=3 D=2 B=2 7=2 Sieht den niemand einen Fehler???????? Schaut doch mal genau hin!!!!!! ( ![]() ![]() |
||
Wozu lernen wir überhaupt programmieren?
Damit der Computer für uns Aufgaben löst (die wir ohne ihn nie gehabt hätten!). |
Broghi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
PROBLEM IST GELÖST ![]() ![]() ![]() hab zwar keine Ahnung ![]() Hab nur mal die Variable, die angibt, ob eine Karte schonzweimal ausgeteilt wurde, auf 1 gesetzt ;"Mischen" For A=1 To 4 ;Spieler; Spieler4=Tapp C=15 ;Jeder Spieler bekommt 15 Karten If A=4 Then C=3 ; Der Tapp bekommt blos drei For B=1 To C .loop D=Rand(1,48 ) If cards(D,2)=1 Then Goto loop ;Prüfen, ob die Karte schon zweimal ausgeteilt wurde cards(D,2)=cards(D,2)+1 spieler$(A,B)=D ;Dem Spieler die Kartennummer zuweisen Next Next trotzdem danke an simi und timo |
||
Wozu lernen wir überhaupt programmieren?
Damit der Computer für uns Aufgaben löst (die wir ohne ihn nie gehabt hätten!). |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group