> Wie kann ich zusätzlich abfragen, ob xpos und ypos tatsächlich
> Zahlen zwischen 1 und 10 sind und nicht Buchstaben?
Im Gegensatz zu meinen Vorrednern beantworte ich diese Frage in diesem
Zusammenhang
1 | unsigned short xpos;
|
2 | ...
|
3 | cin >> xpos;
|
mit: gar nicht.
Du hast keine Chance das was du vorhast, so zu realisieren.
cin >> xpos;
ERWARTET, dass sich dein Benutzer an die Spielregeln hält und eine
korrekte Zahlen-Eingabe abliefert. Du kannst hinten nach lediglich noch
feststellen ob sich diese Zahl in dem von dir festgelegten Bereich
befindet, so wie du das gemacht hast.
Wenn du das ändern willst, dann gibt es nur eine Möglichkeit:
Du musst deinen Benutzer erst mal seine Eingabe in einen String machen
lassen, denn dort darf er alles eingeben.
Dann überprüft dein Programm, ob die Eingabe (=der String) den
Erfordernissen genügt (sprich: ob in deinem Fall tatsächlich nur Zeichen
im für Digits erlaubten Bereich eingegeben wurden; da kommt dann
isdigit ins Spiel) und erst dann kann dein Programm gefahrlos den String
in die entsprechende Zahl umwandeln lassen. Aber solange du den kurzen,
einfachen Weg mittels
cin >> xpos;
gehen willst, musst du darauf vertrauen, dass dein Benutzer nach den
Regeln spielt.