Modulo Problem für Spielerwechsel
Übersicht

![]() |
US-Blitzehemals "SimssmiS"Betreff: Modulo Problem für Spielerwechsel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 800,600,32,3 SeedRnd MilliSecs() SetBuffer BackBuffer() ClsColor 0,150,0 ;Load Images Local Dice=LoadImage ("Bilder\Dice.png") MaskImage Dice,255,0,0 Local dice_one=0 Local dice_two=0 Local dice_add=0 Dim Num_p(2) Local goon=1 Local player=1 Color 0,0,0 Local Fon=LoadFont ("ComicSansMs",50) Local norm=LoadFont ("ComicSansMs",20,True) Dim wuerfe(2) Repeat While goon=1 Cls FlushKeys dice_one=Rnd(1,6) dice_two=Rnd(1,6) dice_add=dice_one+dice_two If dice_add=7 Then dice_add=dice_add*-1 Num_p(player)=Num_p(player)+dice_add wuerfe(player)=wuerfe(player)+1 DrawImage Dice,100,100 DrawImage Dice,230,100 SetFont Fon Text 140,125,dice_one Text 270,125,dice_two Text 20,20,"Weiterwürfeln(Enter) Würfel weitergeben(Backspace)" SetFont norm Text 400,125,("Punkte Spieler 1: "+Num_p(1)+" nach "+wuerfe(1)+" Würfen") Text 400,155,("Punkte Spieler 2: "+Num_p(2)+" nach "+wuerfe(2)+" Würfen") WaitKey() If KeyHit(14) Then goon=0 Flip Wend player=((player+1) Mod 2)+1 goon=1 Until KeyHit (1) habe ewig nicht mehr mit b3d gearbeitet da ich mit java genug zu tuen hatte nun will ich aber eine aufgabe mit b3d lösen mein problem ich bekomme den spielerwechsel auf tastendruck backspace nicht hin |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie wärs mit nem einfachem Wechseln zwischen 1 und 0 ? 0 heißt : Spieler 1 ist dram 1 Spieler 2. Wechseln kannst du in dem du den Wert von 1 abziehst oder mit Not (oder Xor).
Code: [AUSKLAPPEN] SpielerDran = 1 - SpielerDran
SpielerDran = Not SpielerDran SpielerDran = 1 Xor SpielerDran Sonst wenn du mehrere Spieler hast : Code: [AUSKLAPPEN] SpielerDran = ( SpielerDran + 1 ) Mod SpielerMax
Bei 3 Spielern wäre das dann Zitat: 0 : SpielerDran = 0
1 : SpielerDran = 1 2 : SpielerDran = 2 3 : SpielerDran = 0 mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
US-Blitzehemals "SimssmiS" |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe ich das denn nicht gemacht? player=((player+1) Mod 2)+1 damit ist es zwar 1 und 2 aber sonst ändert sich doch nichts
habe grade festgestellt mit 0 und 1 klappt es also das ganze player=((player+1) Mod 2) halt ohne das letzte +1 aber warum |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem liegt in dieser Zeile: BlitzBasic: [AUSKLAPPEN] player=((player+1) Mod 2)+1 Du kannst im Kopf durchgehen was passiert: Entweder ist player=1, dann wird (player+1)=2 und (2 Mod 2)=0 und 0+1=1, kurz: Wenn player=1 ist, wird player=1 gesetzt. Ein anderer Fall kommt bei dir gar nicht zustande, da ja diese "Formel" das einzige ist, was player beeinflusst. Ansonsten kann ich mich ToeB nur anschliessen: Der Computer beginnt im Gegensatz zum Menschen bei Null mit zählen. Als Programmierer sollte man sich das auch angewöhnen. So hat zum Beispiel das erste Element in einem Array immer 0, das zweite 1, das dritte 2 u.s.w als Index. Gewöhnt man sich nicht korrekt an diese Zählweise, hat das halt Folgen. Das können milde (wie im obigen Fall mit dem Modulo-Fehler, den ich einfach auch mal stinkfrech darauf zurückführe ![]() mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
- Zuletzt bearbeitet von Holzchopf am Sa, Jan 22, 2011 16:51, insgesamt einmal bearbeitet
![]() |
US-Blitzehemals "SimssmiS" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut hab ich geändert. Danke an euch beide!
ps: als netgemeinte kritik nicht: das erste Element in einem Array immer 0, das zweite 1, das dritte 3 sondern das zweite. Nur damit es später keine Missverstände gibt. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
O.T.
Auch Menschen beginnen immer ab 0 an zu zählen. Nur wird es nicht ausgesprochen. Wenn ich in meine Geldbörse rein sehe und ein absolutes Tal vorhanden ist, dann habe ich 0 Euro. Habe also bereits bei 0 angefangen, denn sonst wenn man nicht von 0 ausgehen würde, würde man auch nie auf 0 kommen können (1, 2, 3... wann soll hier bitte die 0 kommen?). |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: (1, 2, 3... wann soll hier bitte die 0 kommen?).
hehe hectic.. ausgehend das wir uns noch in einen 10ner system befinden, wird der übertrag nur nach hinten geschoben. also wäre dann unsere letzte zahl im 10er sytem die 0 Zahlenstreifen Code: [AUSKLAPPEN] 1 2 3 4 5 6 7 8 9 0
*Klugscheis ![]() |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group