체스 게임을위한 보드 역할을하는 2D 배열을 가지고 있습니다. 사용자 입력이 Smith Notation 일 것으로 예상됩니다. 배열이 설정되는 방식은 사용자가 8 행 (사용자의 관점에서 볼 때 맨 위)으로 또는 8 행 (위)으로 이동하려는 경우 배열에서 row[0]
과 상호 작용하는 것입니다. 그래서 이것을 처리하기 위해 사용자의 입력을 배열의 올바른 행으로 변환하는 함수를 작성했습니다. 그러나, 그것은 조금 clunky 것 그리고 나는 더 많은 경험을 가진 프로그래머가이 문제를 어떻게 해결할 지 궁금해하고 있었다.올바른 번호를 찾는 데 더 효과적인 방법이 있습니까?
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]
와 상호 작용하고, 그이 기능에 대한 필요성을 제거 할 수 있도록 사용자에게 역을 표시하는 생각 했 . 그러나 나는 아직도이 문제를 해결하는 다른 방법을 알고 싶다. 미리 답변 해 주셔서 감사합니다. row
더 확인하지 않고 사용자 입력에서 오는
int convertToCorrectRow(int row) {
assert(row > 0 && row <= 8);
return 8 - row;
}
경우에, 나는 그래도 어설를 사용하지 것이다 : 그것은 다음과 같습니다
DERP. 이제 나는 당혹 스럽다. 이 작업을 수행하는 훨씬 간단한 방법이 있다는 것을 알았지 만 생각하기에는 너무 바보 같았습니다.) 감사합니다! –