読みやすいコードの書き方
▷配列の初期化
const char ltr[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz";
2つの文字列リテラルが与えられているように見えるが、改行・空白・タブなどのスペースをはさんで並べられた文字列リテラルは連結される。
この配列ltrに与えられている初期化子は、
”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”
という単一の文字列リテラルとなる。
2行に分けて書いたほうがわかりやすい。
▷内容ごとにまとめる
MovableArea get_movable_area_pwn(GameState game_state, BoardPoint board_point, Cell cell) {
MovableArea movable_area;
//白と黒で違う部分
int dir = (cell.side == WHT ? -1 : +1);
int start_y = (cell.side == WHT ? 6 : 1);
int move_num = 1;
int i;
//白と黒で共通の部分
if (board_point.y == start_y) {
move_num = 2;
//first_move = 1;
}
movable_area.selected_piece_point = board_point;
movable_area.movable_point_num = move_num;
movable_area.movable_points = (BoardPoint*)malloc(sizeof(BoardPoint) * move_num);
for (i = 0; i < move_num; i++) {
movable_area.movable_points[i].x = board_point.x;
movable_area.movable_points[i].y = board_point.y + dir * (i + 1);
return movable_area;
コードの内容ごとにまとめて書く。
共通部分を書く範囲、異なる部分を書く範囲・・・等、見やすくわかりやすい書き方をする。