Hilfe bei Vier Gewinnt
-
//züge zurücknehmen
ja das mit dem array habsch mir auch schon überlegt...
aber ich brauch ja nen y und nen x wert... und die beiden werte kannsch ja nicht in einen speicher tun...
will das man 5 züge zurückgehen kann...
ich könnte entweder 2 arrays nehmen einmal für x und einmal für y oder
oder des array doppelt so groß machen...
aber da es da leichter zu fehlern kommen kann wär es doch angebrachter 2 zu nehmen oder??//Exe erstellung
und noch ne frage... wenn ich des spiel über f9 starte... dann erstellt er mir ja auch eine exe das ist ja aber nur ne kleine... wenn ich die auf anderen computern ausführe geht die ja nicht...
wie mach cih das das es eine "richtige" ist die alle erforderlichen infos enthält???was ist STL???
-
Du brauchst nur einen Wert, den der Spalte. Du kannst immer nur den obersten in der Spalte wieder rausnehmen.
EXE: Sieh mal in die FAQ unter Standalone EXE.
STL: Schau mal in die Hilfe Deines BCB.
-
so nun wieder zeit für cpp

ich brauch trotzdem 2 werte.. weil ich muss ja wissen welche spalte er ist und in welcher reihe er ist.
weil wie soll ich herrausfinde welches der oberste ist ???
was soll mir STL bringen???
also die hilfe hat mir net wirklich was Gebracht....//nochwas nebenbei...
kann man den code zur gewinnabfrage so lassen?wenn er so ok ist mach ich des struktogramm dafür
//Gewinnfeststellung--------------------------------------------------------- bool TVierGewinnt::viergewinnt(int countx, int scolor) { int count=0, count2=0, count3=0, count4=0; for(int cy=MAXY-1; cy>=3; cy--)//beginn der diagonalen von rechts { for (int cx = MAXX-1; cx >= 3; cx--) { count4 = 0; for(int cv = 0; cv<=3; cv++) { if(feldwerte[cy-cv][cx-cv] == scolor) count4++; } if(count4 == 4) return(true); count4 = 0; } }//ende for schleife //ende der diagonalen von rechts for(int cy=MAXY-1; cy>=3; cy--)//beginn der diagonalen von links und der senkrechten { for (int cx = 0; cx<=4; cx++) { count3 = 0; count2 = 0; for(int cv = 0; cv<=3; cv++) { if(feldwerte[cy-cv][cx+cv] == scolor) count3++; if(feldwerte[cy][cx+cv] == scolor) count2++; } if(count2==4 || count3==4) return(true); count3 = 0; count2 = 0; } }//ende for schleife //ende der diagonalen von links for(int cy=MAXY-1; cy>=0; cy--)//beginn der senkrechten { count = 0; for (int cv = 0; cv <=3; cv++){ if(feldwerte[cy -cv][countx] == scolor) count++; } if (count == 4) return(true); count = 0; //ende der senkrechten }//ende for schleife if(start==0) start++; else start--; return(false); }
-
Hallo
ich brauch trotzdem 2 werte.. weil ich muss ja wissen welche spalte er ist und in welcher reihe er ist.
weil wie soll ich herrausfinde welches der oberste ist ???
In dem besagten Array brauchst du nur einen Wert, den der Spalte (also den Wert, auf den du die Gewinnüberprüfung machst). Denn genau so wie du immer nur von oben einen neuen Stein setzen kannst, kannst du auch immer nur einen Stein von oben wieder wegnehmen.
Um jetzt den obersten Stein einer Spalte zu finden, gehst du nur die betreffende Spalte von unten nach oben durch und suchst den letzten Stein der Spalte, das heißt das nächste Feld der Spalte ist leer.nochwas nebenbei...
kann man den code zur gewinnabfrage so lassen?wenn er so ok ist mach ich des struktogramm dafür
Funktioniert denn der Code, so wie du willst? Es geht erstmal nicht darum, das der Code perfekt ist, sondern das du weißt wie er funktioniert.
bis bald
akari
-
In dem besagten Array brauchst du nur einen Wert, den der Spalte (also den Wert, auf den du die Gewinnüberprüfung machst). Denn genau so wie du immer nur von oben einen neuen Stein setzen kannst, kannst du auch immer nur einen Stein von oben wieder wegnehmen.
Um jetzt den obersten Stein einer Spalte zu finden, gehst du nur die betreffende Spalte von unten nach oben durch und suchst den letzten Stein der Spalte, das heißt das nächste Feld der Spalte ist leer.also speicher ich im prinzip die xachse von mienem array und suche von unten ab die erste 2 (2 = leer) und lösche ein feld darunter und mach dies auch gleich weiss...
hmm muss ich mal gucken wie ich des mache... setz mich gleich mal ran
//------------------------------------------------------------------
Funktioniert denn der Code, so wie du willst? Es geht erstmal nicht darum, das der Code perfekt ist, sondern das du weißt wie er funktioniert.
der code funktioniert genauso wie ich will könnte net besser laufen

und verstehen tu icH IHn auch
hab ja jetzt mittlerweile die anwendung von bool drauf
greetz
morphY
-
wow morphY, dann bist duanscheinend schon fertig

wird wohl ne 1 beim master-g ^^
-
@apfelsaft
jo bestimmt
@all
hab jetzt auch den button zum zurücksetzen drinne
ud er funzt optimal 
@akari
hast du icq? oder email? email haste bestimmt ^^ willste mir die mal geben?
will dir nen code schicken... soll aber halt net jeder sehen da es einige gibt die des gleiche game programmieren ^^ net das die dann den gleichen code haben ^^