Vector bewegen
-
-
XP^ schrieb:
Und bei diesem versteh ich nur eins nicht: -1.
Also ich weiß dass die Elemente mit ihren Werten zbsp. nach rechts verschoben werden wenn ich von rechts nach links gehe, aber das man vom begin aus mitfield[player2_start-1];startet, ist mir noch unklar.
Es kommt nur darauf an, wie du dein Feld adressieren möchtest.
Wenn für die das erste Feld Position Nr. 0 ist dann brauchst du ein -1 nicht.Wenn für dich jedoch das erste Feld Position Nr. 1 ist ( was für Menschen normaler klingt ) dann musst du ein -1 hinzuschreiben, da die Nr. ja immer um eins erhöht sind als normal, weil der Vector beim 0 anfängt zu zählen.
-
Noch als Tipp: Wenn du schon mit Klassen rumgespielt hast, dann mache dir eine Spielerklassse und eine Klasse für das Feld.
Wenn du aber lieber so normal was schreiben willst, dann lagere zB wenigstens die Positonsänderung in eine Funktion aus und anstatt immer zu sagen "von" mach nur ein "nach" und speichere dir immer die aktuelle Position von einem Spieler.
Zudem musste du aufpassen, dass niemand falsche Eingaben macht: http://c-plusplus.net/forum/viewtopic-var-p-is-1319931.html
-
hab jetzt mal ignoranter weise alle eure Beiträge ignoriert und schlage, falls du 2 elemente in einem array oder einem container austauschen willst std::swap aus <algorithm> vor und wenn du alle elemente um x stellen nach rechts oder links verschieben willst std::rotate(im gleichen header) vor.
-
(D)Evil schrieb:
hab jetzt mal ignoranter weise alle eure Beiträge ignoriert und schlage, falls du 2 elemente in einem array oder einem container austauschen willst std::swap aus <algorithm> vor und wenn du alle elemente um x stellen nach rechts oder links verschieben willst std::rotate(im gleichen header) vor.
Er will wie auf einem Schachfeld Elemente an andere Positionen verschieben, da bringt ein rotate() nichts und swap auch nicht, da ja nicht Position getauscht werden ( soweit ich's verstanden habe ).
-
Hallo
KasF schrieb:
Noch als Tipp: Wenn du schon mit Klassen rumgespielt hast, dann mache dir eine Spielerklassse und eine Klasse für das Feld.
Wenn du aber lieber so normal was schreiben willst, dann lagere zB wenigstens die Positonsänderung in eine Funktion aus und anstatt immer zu sagen "von" mach nur ein "nach" und speichere dir immer die aktuelle Position von einem Spieler.
Zudem musste du aufpassen, dass niemand falsche Eingaben macht: http://c-plusplus.net/forum/viewtopic-var-p-is-1319931.html
Ja, das mit einer Klasse ist eine ziemlich gute Idee, da man gleich die Prüfungen machen kann, ob was gültig oder ungültig ist.
Zuerst wollte ich mein "Vektor-Bewegen" in eine Funktion packen, aber was bringt das denn, wenn man nur testen will, obs geht

KasF schrieb:
XP^ schrieb:
Und bei diesem versteh ich nur eins nicht: -1.
Also ich weiß dass die Elemente mit ihren Werten zbsp. nach rechts verschoben werden wenn ich von rechts nach links gehe, aber das man vom begin aus mitfield[player2_start-1];startet, ist mir noch unklar.
Es kommt nur darauf an, wie du dein Feld adressieren möchtest.
Wenn für die das erste Feld Position Nr. 0 ist dann brauchst du ein -1 nicht.Aber wenn man 0 eingibt und dann zbsp. "3", dann kommt wieder Out_of_Range -.-
Hmm vielleicht hab ich ja was falsches eingegeben, aber das bezweifle ich
(D)Evil schrieb:
hab jetzt mal ignoranter weise alle eure Beiträge ignoriert und schlage, falls du 2 elemente in einem array oder einem container austauschen willst std::swap aus <algorithm> vor und wenn du alle elemente um x stellen nach rechts oder links verschieben willst std::rotate(im gleichen header) vor.
mit rotate() hab ich es versucht, scheint auch gut zu klappen, aber ich will das eigenhändig machen ^^
Mit freundlichen Grüßen,
DanielEDIT:
KasF schrieb:
(D)Evil schrieb:
hab jetzt mal ignoranter weise alle eure Beiträge ignoriert und schlage, falls du 2 elemente in einem array oder einem container austauschen willst std::swap aus <algorithm> vor und wenn du alle elemente um x stellen nach rechts oder links verschieben willst std::rotate(im gleichen header) vor.
Er will wie auf einem Schachfeld Elemente an andere Positionen verschieben, da bringt ein rotate() nichts und swap auch nicht, da ja nicht Position getauscht werden ( soweit ich's verstanden habe ).
KasF, du bringst es auf den Punkt, ja ich will ein Schach ähnliches Spiel schreiben

-
XP^ schrieb:
Ja, das mit einer Klasse ist eine ziemlich gute Idee, da man gleich die Prüfungen machen kann, ob was gültig oder ungültig ist.
Das kannst du auch so

XP^ schrieb:
Zuerst wollte ich mein "Vektor-Bewegen" in eine Funktion packen, aber was bringt das denn, wenn man nur testen will, obs geht

Es gibt dir mehr übersicht und vermeidet potentielle Fehler.
XP^ schrieb:
Aber wenn man 0 eingibt und dann zbsp. "3", dann kommt wieder Out_of_Range -.-
Hmm vielleicht hab ich ja was falsches eingegeben, aber das bezweifle ich
Naja, 0 darfst du ja auch nicht eingeben, wenn dein erstes Feld Nr. 1 ist. Ließ dir nochmal mein Beitrag in Ruhe durch

-
Hallo KasF,
Thank You for your Replies

KasF schrieb:
XP^ schrieb:
Ja, das mit einer Klasse ist eine ziemlich gute Idee, da man gleich die Prüfungen machen kann, ob was gültig oder ungültig ist.
Das kannst du auch so

Aber in einer Klasse ist es einfacher wenn man's kann

KasF schrieb:
XP^ schrieb:
Zuerst wollte ich mein "Vektor-Bewegen" in eine Funktion packen, aber was bringt das denn, wenn man nur testen will, obs geht

Es gibt dir mehr übersicht und vermeidet potentielle Fehler.
Darüber können wir uns streiten :p
KasF schrieb:
XP^ schrieb:
Aber wenn man 0 eingibt und dann zbsp. "3", dann kommt wieder Out_of_Range -.-
Hmm vielleicht hab ich ja was falsches eingegeben, aber das bezweifle ich
Naja, 0 darfst du ja auch nicht eingeben, wenn dein erstes Feld Nr. 1 ist.
Man ich überseh das immer wieder -.-
KasF schrieb:
Naja, 0 darfst du ja auch nicht eingeben, wenn dein erstes Feld Nr. 1 ist. Ließ dir nochmal mein Beitrag in Ruhe durch

Ja, das werde ich

Ich melde mich später wieder, wenn ich meine Klasse geschrieben hab & vllt. auch noch, wenn das Spiel fertig ist
Evtl. stell ich es dann unter Projekte ^^Mit freundlichen Grüßen,
Daniel
-
Gut, würde mich über deine Klassen freuen. Dann habe ich direkt was zu bemängeln

Viel Spaß
-
KasF schrieb:
Gut, würde mich über deine Klassen freuen.
Naja wird aber wohl noch etwas dauern(no comment^^)
KasF schrieb:
Dann habe ich direkt was zu bemängeln

Ebenfalls no comment

KasF schrieb:
Viel Spaß
Danke, das hab ich immer beim Programmieren^^
-
[weg :D]