array mit bool werten
-
hallo!
ich bin ein c++ anfänger und programmiere gerade zur übung dieses spielchen nach, wo man abwechselnd oben ein steinchen reinschmeißen muss und man eine reihe von 4 steinchen erreichen muss. an einer stelle ist folgende frage aufgetaucht:
angenommen ich habe ein array von boolwerten. ich will nun alle werte darin mit && verbinden. man kann das natürlich per hand tun:
boolarray[0] && boolarray[1] && ...
aber das ist natürlich der falsche weg, weil möglicherweise viel zu schreiben und im nachhinein schwer zu modifizieren. gibt es eine anweisung hierfür wie das automatisch geht?
-
Das kannst du mit einer Schleife implementieren.
-
etwa so?
bool arrayund(bool boolarray) { int arraylänge = sizeof(boolarray)/sizeof(bool); for(int i = 0; i < arraylänge; i++) { if(!boolarray[i]) return false; } return true; }in meinem programm wäre das aber noch mehr schreibarbeit, deshalb wollte ich wissen, ob es auch eine einfache anweisung dafür gibt.
-
Ja, so in etwa geht das.
btw:
Deutsche Namen gehen gerade noch, aber Umlaute?int arraylaenge = sizeof(boolarray)/sizeof(bool);Wenn, dann so, oder am besten gleich Englische Namen.
EDIT:
Standardisiert (2.10) für die Bezeichnern sind lediglich a-zA-Z0-9 und _.
Also keine Umlaute, Sonderzeichen o.ä. Also benutze auch keine!
-
Da gibt es unzählige Möglichkeiten. Hier was ganz altes von mir:
class Stellung { private: Farbe brett[9][8];//jeweils 2 mehr für den Todesrand int hoehe[9]; ... int Stellung::pruefung(Farbe farbe,int x,int y,int deltax,int deltay) const { int anzahl=0; x+=deltax; y+=deltay; while(brett[x][y]==farbe) { ++anzahl; x+=deltax; y+=deltay; } return anzahl; } int Stellung::pruefungNO(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,1,1); } int Stellung::pruefungO(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,1,0); } int Stellung::pruefungSO(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,1,-1); } int Stellung::pruefungS(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,0,-1); } int Stellung::pruefungSW(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,-1,-1); } int Stellung::pruefungW(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,-1,0); } int Stellung::pruefungNW(Farbe farbe,int x,int y) const { return pruefung(farbe,x,y,-1,1); } Wert Stellung::bewerte() const//Aus Sicht dessen, der gerade dran ist { if(istUnentschieden()) return UNENTSCHIEDEN; int x=sageLetztenZug(); int y=hoehe[x]-1; Farbe farbe=werWarDran(); if(at(x,y)==farbe) { if(pruefungS(farbe,x,y)>=3) return verlorenBeiZug(zugNummer); if(pruefungW(farbe,x,y)+pruefungO(farbe,x,y)>=3) return verlorenBeiZug(zugNummer); if(pruefungSW(farbe,x,y)+pruefungNO(farbe,x,y)>=3) return verlorenBeiZug(zugNummer); if(pruefungNW(farbe,x,y)+pruefungSO(farbe,x,y)>=3) return verlorenBeiZug(zugNummer); } return UNBEKANNT; }