| 
| Autor | Beitrag |  
| Kenan 
          Beiträge: 18
 
 
 
 
 | 
Verfasst: Sa 21.03.09 15:11 
 
Hallo, ich brauche eine Gute Strategie im Modus Spieler gegen Computer
 Also das es der Spieler nicht so leicht hat zu gewinnen es aber möglich sein soll..
 Beim Nimm Spiel geht es darum: Es gibt 10 Hölzer und es darf pro zug nur 1, 2 oder 3 Hölzer gezogen werden und wer das letzte Holz gezogen hat verliert.
 Was ich bis jetz habe:
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 71:
 72:
 73:
 74:
 75:
 76:
 77:
 78:
 79:
 80:
 81:
 82:
 83:
 84:
 85:
 86:
 87:
 88:
 89:
 90:
 91:
 92:
 93:
 94:
 95:
 96:
 97:
 98:
 99:
 100:
 101:
 102:
 103:
 104:
 105:
 106:
 107:
 108:
 109:
 110:
 111:
 112:
 113:
 114:
 115:
 116:
 117:
 118:
 119:
 120:
 121:
 122:
 123:
 124:
 125:
 126:
 127:
 128:
 129:
 130:
 131:
 132:
 133:
 134:
 135:
 136:
 137:
 138:
 139:
 140:
 141:
 142:
 143:
 144:
 145:
 146:
 147:
 148:
 149:
 150:
 151:
 152:
 153:
 154:
 155:
 156:
 157:
 158:
 159:
 160:
 161:
 162:
 163:
 164:
 165:
 166:
 167:
 168:
 169:
 170:
 171:
 172:
 173:
 174:
 175:
 176:
 177:
 178:
 179:
 180:
 181:
 182:
 183:
 184:
 185:
 186:
 187:
 188:
 189:
 190:
 191:
 192:
 193:
 194:
 195:
 196:
 197:
 198:
 199:
 200:
 201:
 202:
 203:
 204:
 205:
 206:
 207:
 208:
 209:
 210:
 211:
 212:
 213:
 214:
 215:
 216:
 217:
 218:
 219:
 220:
 221:
 222:
 223:
 224:
 225:
 226:
 227:
 228:
 229:
 230:
 231:
 232:
 233:
 234:
 235:
 236:
 237:
 238:
 239:
 240:
 241:
 242:
 243:
 244:
 245:
 246:
 247:
 248:
 249:
 250:
 251:
 252:
 253:
 254:
 255:
 256:
 257:
 258:
 259:
 260:
 261:
 262:
 263:
 264:
 265:
 266:
 267:
 268:
 269:
 270:
 271:
 272:
 273:
 274:
 275:
 276:
 
 | using System;
 namespace NimmSpiel{
 class NimmSpiel{
 static void Main(string[] args){
 string[] Spieler = new string[3];
 int ein;
 int Hoelzer;
 string Gewinner;
 char again;
 int compein;
 char frag;
 int i;
 Spieler[2] = "Computer";
 Console.Write("Gegen Computer<C> oder gegen einen anderen Spieler<S>: ");
 frag = Convert.ToChar(Console.ReadLine());
 
 
 
 if (frag == 'C' || frag == 'c')
 {
 do
 {
 for (i = 1; i < 2; i++)
 {
 Console.Write("Spieler: ");
 Spieler[i] = Console.ReadLine();
 Console.WriteLine();
 }
 
 i = 1;
 Gewinner = "";
 Hoelzer = 10;
 ein = 0;
 while (Hoelzer != 0)
 {
 i = 1;
 while (i < 3 && Hoelzer != 0)
 {
 
 if (i == 1)
 {
 Console.WriteLine(Spieler[1] + ":");
 Console.WriteLine();
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }
 
 
 while (Hoelzer == 2 && ein > 2)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 2 Stäbe, also können max. 2 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }                                }
 if (Hoelzer == 1 && ein > 1)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 1 Stab, also kann max. 1 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }                                }
 
 Hoelzer = Hoelzer - ein;
 Console.WriteLine();
 Console.WriteLine("Genommen: " + ein);
 Console.WriteLine("Hölzer übrig: " + Hoelzer);
 Console.WriteLine();
 Console.WriteLine();
 }
 compein = 0;
 if (i == 2)
 {
 Console.WriteLine(Spieler[2] + ":");
 Console.WriteLine();
 if (ein == 3)
 {
 compein = 1;
 }
 if (ein == 2)
 {
 compein = 2;
 }
 if (ein == 1)
 {
 compein = 3;
 }
 if (Hoelzer == 2)
 {
 compein = 1;
 }
 if (Hoelzer == 1)
 {
 compein = 1;
 }
 
 Hoelzer = Hoelzer - compein;
 Console.WriteLine();
 Console.WriteLine("Genommen: " + compein);
 Console.WriteLine("Hölzer übrig: " + Hoelzer);
 Console.WriteLine();
 Console.WriteLine();
 }
 if (Hoelzer == 0)
 {
 
 
 Gewinner = Spieler[i - 1];
 if (Gewinner == null)
 {
 i++;
 Gewinner = Spieler[i];
 }
 }
 Console.WriteLine();
 
 i++;
 }
 }
 
 Console.WriteLine();
 
 Console.WriteLine("Gewinner: " + Gewinner);
 Console.WriteLine();
 Console.Write("Nochmal?<J,N>: ");
 again = Convert.ToChar(Console.ReadLine());
 if (again == 'j' || again == 'J')
 {
 Console.Clear();
 }
 Console.WriteLine();
 
 } while (again == 'J' || again == 'j');
 }
 if (frag == 'S' || frag == 's')
 {
 do
 {
 for (i = 1; i < 3; i++)
 {
 Console.Write("Spieler" + i + ": ");
 Spieler[i] = Console.ReadLine();
 Console.WriteLine();
 }
 
 i = 1;
 Gewinner = "";
 Hoelzer = 10;
 while (Hoelzer != 0)
 {
 i = 1;
 while (i < 3 && Hoelzer != 0)
 {
 Console.WriteLine(Spieler[i] + ":");
 Console.WriteLine();
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }
 
 
 while (Hoelzer == 2 && ein > 2)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 2 Stäbe, also können max. 2 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }                            }
 if (Hoelzer == 1 && ein > 1)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 1 Stab, also kann max. 1 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }                            }
 
 Hoelzer = Hoelzer - ein;
 
 if (Hoelzer == 0)
 {
 
 
 Gewinner = Spieler[i - 1];
 if (Gewinner == null)
 {
 i++;
 Gewinner = Spieler[i];
 }
 }
 Console.WriteLine();
 Console.WriteLine("Genommen: " + ein);
 Console.WriteLine("Hölzer übrig: " + Hoelzer);
 Console.WriteLine();
 Console.WriteLine();
 i++;
 }
 }
 
 Console.WriteLine();
 
 Console.WriteLine("Gewinner: " + Gewinner);
 Console.WriteLine();
 Console.Write("Nochmal?<J,N>: ");
 again = Convert.ToChar(Console.ReadLine());
 if (again == 'j' || again == 'J')
 {
 Console.Clear();
 }
 Console.WriteLine();
 
 } while (again == 'J' || again == 'j');
 }
 
 }    }
 }
 |  Es fehlen noch ein paar überprüfungen aber sonst funktioniert es!
 Hat vieleicht jemand eine Idee wie ich es:
 1. Verkürzen kann?
 2. Die Strategie vom Computer verbessern kann?
 3. Was ich als funktion machen kann
 Ich hoffe ihr könnt mir weiterhelfen!
 mfg
 Kenan |  |  |  
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Sa 21.03.09 17:19 
 
Uff, das ist wirklich eine Mammut-Funktion    . Einige Abschnitte hast du ja wahrscheinlich einfach per Copy&Paste dupliziert, die kann man schonmal auf jeden Fall in eigene Funktionen extrahieren.
 So könnte ich mir den Aufbau vorstellen (nicht alle Methoden ausformuliert):
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 
 | void Main() {
 Console.Write("Gegen Computer<C> oder gegen einen anderen Spieler<S>: ");
 switch (Console.ReadLine().ToLower()) {
 case "c": Start(ReadPlayerName("Spieler:"), "Computer");
 case "s": Start(ReadPlayerName("Spieler 1:"), ReadPlayerName("Spieler 2:"));
 }
 }
 
 string ReadPlayerName(string caption) {...}
 void Start(string p1, string p2)
 {
 int num = 10;
 do {
 Console.WriteLine("Gewinner: " + Game(p1, p2));
 } while (WantsRestart());
 }
 
 bool WantsRestart() { ... }
 
 void Game(string p1, string p2)
 {
 string winner;
 while (true) {
 num -= Move(p1, num);
 if (num == 0)
 return p1;
 
 num -= Move(p2, num);
 if (num == 0)
 return p2;
 }
 }
 
 int Move(string player, int num)
 {
 if (player == "Computer")
 ...
 else
 ...
 }
 
 int ReadNum() { ... }
 | _________________ >λ=
 |  |  |  
| Thorsten83 
          Beiträge: 191
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: So 22.03.09 22:47 
 
Ich möchte mal behaupten dass es leichter ist, den Computer perfekt spielen zu lassen, als gut, aber schlagbar... |  |  |  
| Kenan  
          Beiträge: 18
 
 
 
 
 | 
Verfasst: Mo 23.03.09 08:12 
 
Ja aber ich brauche dazu eine Taktik aber ich weiß nicht welche ich nehmen soll! |  |  |  
| Th69 
          
  Beiträge: 4800
 Erhaltene Danke: 1059
 
 Win10
 C#, C++ (VS 2017/19/22)
 
 | 
Verfasst: Mo 23.03.09 12:22 
 
Das Prinzip ist doch einfach, man muß nur schauen, daß man dem Gegner noch genau 5 Hölzer übrigläßt. Denn dann muß er ja 1 - 3 Hölzer wegnehmen und man selber kann dann auf genau 1 Holz reduzieren.
 Und dann kann man ja eine gewisse Wahrscheinlichkeit einbauen, daß er eben nicht so perfekt spielt...
 |  |  |  
| Kenan  
          Beiträge: 18
 
 
 
 
 | 
Verfasst: Mo 23.03.09 15:52 
 
Wie kann ich es machen das im Modus Computer gegen Spieler per zufall der Anfänger ausgewählt wird aber das dann immer abwechselnd gespielt wird? 
 Ich habs mit zufallszahlern probiert aber dann kommt es vor das der Computer oder der Spieler 2 mal hintereinander dran kommt!
 |  |  |  
| Kenan  
          Beiträge: 18
 
 
 
 
 | 
Verfasst: Mo 23.03.09 17:19 
 
So ich habe jetzt ein paar Funktionen in mein Programm eingebaut!
 Aber ich kapiere es irgendwie nicht wie ich auf diese Strategie komme das des Spieler immer auf 5 Hölzchen kommt! 
 Könnte mir vielleicht jemand dabei behilflich sein bin schon seit 3 tagen am programieren aber bekomme es nicht hin das es so leuft wie es soll!
 												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 71:
 72:
 73:
 74:
 75:
 76:
 77:
 78:
 79:
 80:
 81:
 82:
 83:
 84:
 85:
 86:
 87:
 88:
 89:
 90:
 91:
 92:
 93:
 94:
 95:
 96:
 97:
 98:
 99:
 100:
 101:
 102:
 103:
 104:
 105:
 106:
 107:
 108:
 109:
 110:
 111:
 112:
 113:
 114:
 115:
 116:
 117:
 118:
 119:
 120:
 121:
 122:
 123:
 124:
 125:
 126:
 127:
 128:
 129:
 130:
 131:
 132:
 133:
 134:
 135:
 136:
 137:
 138:
 139:
 140:
 141:
 142:
 143:
 144:
 145:
 146:
 147:
 148:
 149:
 150:
 151:
 152:
 153:
 154:
 155:
 156:
 157:
 158:
 159:
 160:
 161:
 162:
 163:
 164:
 165:
 166:
 167:
 168:
 169:
 170:
 171:
 172:
 173:
 174:
 175:
 176:
 177:
 178:
 179:
 180:
 181:
 182:
 183:
 184:
 185:
 186:
 187:
 188:
 189:
 190:
 191:
 192:
 193:
 194:
 195:
 196:
 197:
 198:
 199:
 200:
 201:
 202:
 203:
 204:
 205:
 206:
 207:
 208:
 209:
 210:
 211:
 212:
 213:
 214:
 215:
 216:
 217:
 218:
 219:
 220:
 221:
 222:
 223:
 224:
 225:
 226:
 227:
 228:
 229:
 230:
 231:
 232:
 233:
 234:
 235:
 236:
 237:
 
 | using System;
 namespace NimmSpiel{
 class NimmSpiel{
 
 static int ein;
 static int Hoelzer;
 static int compein;
 
 static void Main(string[] args){
 
 string[] Spieler = new string[3];
 string Gewinner;
 char again;
 char frag;
 int i;
 int z;
 Spieler[2] = "Computer";
 
 Console.Write("Gegen Computer<C> oder gegen einen anderen Spieler<S>: ");
 frag = Convert.ToChar(Console.ReadLine());
 while (frag != 'C' && frag != 'c' && frag != 'S' && frag != 's')
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, man kann nur 'C' oder 'S' eingeben!");
 Console.Write("Gegen Computer<C> oder gegen einen anderen Spieler<S>: ");
 frag = Convert.ToChar(Console.ReadLine());
 Console.WriteLine();
 }
 
 if (frag == 'C' || frag == 'c')
 {
 do
 {
 i = 1;
 while (i < 2)
 {
 Console.Write("Spieler: ");
 Spieler[i] = Console.ReadLine();
 while (Spieler[i] == "Computer" || Spieler[i] == "computer")
 {
 Console.WriteLine("Bitte einen anderen Namen wählen, Sie heißen bestimmt nicht 'Computer'!");
 Console.Write("Spieler: ");
 Spieler[i] = Console.ReadLine();
 }
 Console.WriteLine();
 i++;
 }                    Gewinner = "";                    Hoelzer = 10;
 ein = 0;
 while (Hoelzer != 0)
 {
 i = 1;
 while (i < 3 && Hoelzer != 0)
 {
 
 if (i == 1)
 {
 Console.WriteLine(Spieler[1] + ":");
 Console.WriteLine();
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 BigSmall();
 max2();
 max1();
 Hoelzer = Hoelzer - ein;
 Console.WriteLine();
 Console.WriteLine("Genommen: " + ein);
 Console.WriteLine("Hölzer übrig: " + Hoelzer);
 Console.WriteLine();
 Console.WriteLine();
 }                            compein = 0;
 if (i == 2)
 {
 Console.WriteLine(Spieler[2] + ":");
 Console.WriteLine();
 if (ein == 3)
 {
 compein = 1;
 }
 if (ein == 2)
 {
 compein = 2;
 }
 if (ein == 1)
 {
 compein = 3;
 }
 if (Hoelzer == 2)
 {
 compein = 1;
 }
 if (Hoelzer == 1)
 {
 compein = 1;
 }
 
 Hoelzer = Hoelzer - compein;                                Console.WriteLine();
 Console.WriteLine("Genommen: " + compein);                                Console.WriteLine("Hölzer übrig: " + Hoelzer);                                Console.WriteLine();
 Console.WriteLine();
 }
 if (Hoelzer == 0)
 {
 
 
 Gewinner = Spieler[i - 1];
 if (Gewinner == null)
 {
 i++;
 Gewinner = Spieler[i];
 }
 }                            Console.WriteLine();
 
 i++;                        }                    }                    Console.WriteLine();
 Console.WriteLine("Gewinner: " + Gewinner);                    Console.WriteLine();
 Console.Write("Nochmal?<J,N>: ");                    again = Convert.ToChar(Console.ReadLine());
 if (again == 'j' || again == 'J')
 {
 Console.Clear();                    }
 Console.WriteLine();
 
 } while (again == 'J' || again == 'j');
 }
 if (frag == 'S' || frag == 's')
 {
 do
 {
 for (i = 1; i < 3; i++)
 {
 Console.Write("Spieler" + i + ": ");
 Spieler[i] = Console.ReadLine();
 Console.WriteLine();
 }
 i = 1;
 Gewinner = "";                    Hoelzer = 10;
 while (Hoelzer != 0)
 {
 i = 1;
 while (i < 3 && Hoelzer != 0)
 {
 Console.WriteLine(Spieler[i] + ":");
 Console.WriteLine();
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 BigSmall();                            max2();                            max1();                            Hoelzer = Hoelzer - ein;
 if (Hoelzer == 0)
 {
 Gewinner = Spieler[i - 1];                                if (Gewinner == null)
 {
 i++;
 Gewinner = Spieler[i];
 }                            }                            Console.WriteLine();
 Console.WriteLine("Genommen: " + ein);
 Console.WriteLine("Hölzer übrig: " + Hoelzer);
 Console.WriteLine();
 Console.WriteLine();
 i++;
 }                    }                    Console.WriteLine();
 Console.WriteLine("Gewinner: " + Gewinner);
 Console.WriteLine();
 Console.Write("Nochmal?<J,N>: ");
 again = Convert.ToChar(Console.ReadLine());
 if (again == 'j' || again == 'J')
 {
 Console.Clear();
 }
 } while (again == 'J' || again == 'j');
 }        }
 public static void BigSmall()
 {
 while (ein <= 0 || ein > 3)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es könen nur 1, 2 oder 3 Stäbchen genommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 }
 }
 public static void max2()
 {
 while (Hoelzer == 2 && ein > 2)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 2 Stäbe, also können max. 2 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 BigSmall();
 }
 }
 public static void max1()
 {
 if (Hoelzer == 1 && ein > 1)
 {
 Console.WriteLine();
 Console.WriteLine("Fehler, es sind nur noch 1 Stab, also kann max. 1 weggenommen werden!");
 Console.Write("Wie viele Stäbchen?<1,2,3>: ");
 ein = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine();
 BigSmall();
 }
 }
 
 }
 }
 |  |  |  |  
| Kenan  
          Beiträge: 18
 
 
 
 
 | 
Verfasst: Mi 25.03.09 21:16 
 
Bin schon fast am verzweifeln Morgen muss ich das Programm abgeben aber ich brauche die Taktik das der Computer immer gewinnt!
 aber ich weiß nicht wie ich es Programieren soll kann mir vielleicht jemand behilflich sein?
 
 mfg
 |  |  |  
| Thorsten83 
          Beiträge: 191
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Do 26.03.09 12:04 
 
wiki:
 	  | Zitat: |  	  | Das Prinzip lässt sich auf modifizierte Regeln anwenden. Bei einem Ziel z und einer Zugbreite von 1 bis n sind die Schlüsselzahlen z-(n+1), z-2(n+1), z-3(n+1), ... | 
 |  |  |  |