У меня есть 2D-массив, который выступает в качестве доски для шахматной игры. Я ожидаю, что пользовательский ввод будет в обозначении Смита . Мой массив настроен так, что, если пользователь говорит, что хочет, чтобы кусок перемещался в 8-ю строку или из нее (верхняя с точки зрения пользователя), он взаимодействует с row[0]
в массиве. Чтобы справиться с этим, я написал функцию, которая преобразует ввод пользователя в правильную строку для массива. Однако это кажется немного неуклюжим, и мне было интересно, как программисты с большим опытом решат эту проблему.
int convertToCorrectRow(int row)
{
int newRow;
switch (row) {
case 1:
newRow = 7;
break;
case 2:
newRow = 6;
break;
case 3:
newRow = 5;
break;
case 4:
newRow = 4;
break;
case 5:
newRow = 3;
break;
case 6:
newRow = 2;
break;
case 7:
newRow = 1;
break;
case 8:
newRow = 0;
break;
default:
assert(false);
break;
}
return newRow;
}
Я действительно думал о том, чтобы перевернуть массив и отобразить его в обратном порядке для пользователя, чтобы, когда пользователь взаимодействует со строкой 8, он фактически взаимодействовал с row[7]
в массиве, и это устраняло бы необходимость в этой функции. Однако мне все же хотелось бы узнать другие способы решения этой проблемы.
Заранее спасибо за ваш ответ.