Отказ от ответственности: я новичок в c ++ и программировании в целом.
У меня есть функция, которая принимает строковый параметр длиной всего 2 целых числа. Я хочу использовать первый и второй int параметра для индексации в chessBoard [8] [8], чтобы выбрать пробел на доске. Каждый индекс (пробел) в двумерном массиве (доске) содержит символ, представляющий тип фигуры.
Предполагается, что функция определяет тип фигуры, а затем вызывает функцию перемещения для конкретной фигуры.
Вот часть кода, примененного к королевской пьесе.
int movePiece(string startPos) {
string pieceType = chessBoard[startPos[0]][startPos[1]];
cout << chessBoard[startPos[0]][startPos[1]] <<endl;
if (tolower(pieceType) == 'k') {
kingMove(startPos);
}
Строка 5 - это тест, чтобы увидеть, что именно возвращается. По какой-то причине он печатает «» (пробел), что означает, что он сравнивает «» с «k» или любым другим символом, представляющим типы фрагментов. Тем не менее, я могу поставить 'cout >> chessBoard [0] [3]' и заставить его напечатать 'k' (фигура в этом месте на доске). Пробел также возвращается для любого пробела на доске, а не только для [0] [3].
'startPos' - это строка, поэтому я должен иметь возможность использовать startPos [0] и startPos [1]со строковым потоком для доступа к целым числам, верно? Что я делаю не так?