質問するログイン新規登録

回答編集履歴

2

追記

2025/10/07 12:13

投稿

jimbe
jimbe

スコア13422

answer CHANGED
@@ -1,4 +1,4 @@
1
- cygwin で動かした所、特にエラーには成りませんでしたがコードや動作がに見えた所がありましたのでソコだけ指摘させて頂きます。
1
+ cygwin で動かした所、特にエラーには成りませんでしたがコードや動作がに見えた所がありましたのでソコだけ指摘させて頂きます。
2
2
 
3
3
  ### set_board_from_dataretu 関数
4
4
  ```c
@@ -19,14 +19,16 @@
19
19
  for (int step = 1; step <= max_steps; step++) {
20
20
  int ny = y + dirs[i].dy * step;
21
21
  ```
22
- get_moves 内で dirs にデータをコピーしていますが、コピーされた件数が返されないため i のループが固定で回っています。
22
+ `get_moves` 内で `dirs` にデータをコピーしていますが、コピーされた件数が返されないため `i` のループが固定で回っています。
23
- get_moves 内でコピーされなかった所にデタラメなデータが残っていた場合、動作が不明になりそうです。
23
+ `get_moves` 内でコピーされなかった所にデタラメなデータが残っていた場合、動作が不明になりそうです。
24
+ `get_moves` の返り値が 1/0 でしか利用されていませんので、関数値としてコピーした件数を返すようにすれば不要なループをしなくて済むように出来ると思います。
25
+ ただ、 `highlight_moves` (と `get_moves`) の構造で、"角"・"飛"の成った"馬"・"龍"の動きが表現出来るかが疑問です。
24
26
 
25
27
  ```c
26
28
  mvaddstr(ORIGIN_Y + ny * CELL_H, ORIGIN_X + nx * CELL_W, "□");
27
29
  ```
28
- `□`がフォントによっては半角サイズになり、表示が崩れます。さらに、敵の'v'が付いた駒の所はどのように移動(取得)可能と表示するのでしょうか。
30
+ `□`がフォントによっては半角サイズになり、表示が崩れます( PDcurses と cygwin で違うかもしれません)。さらに、敵の'v'が付いた駒の所はどのように移動(取得)可能と表示するのでしょうか。
29
31
 
30
32
  ### どこに何を表示するのか纏まってない?
31
33
  カーソルの下に(敵/味方)駒がある/無い場合、選択中で下に(敵/味方)駒がある/無い場合、選択中で選択した駒が移動可能な位置で下に敵駒がある/無い場合等で、それぞれどのような表示にするのかは纏まっていらっしゃるでしょうか。
32
- 現状、highlight_moves で表示された所ではカーソルが隠れてしまいます。
34
+ 現状、`highlight_moves` で表示された所ではカーソルが隠れてしまいます。

1

追記

2025/10/07 07:21

投稿

jimbe
jimbe

スコア13422

answer CHANGED
@@ -25,7 +25,7 @@
25
25
  ```c
26
26
  mvaddstr(ORIGIN_Y + ny * CELL_H, ORIGIN_X + nx * CELL_W, "□");
27
27
  ```
28
- `□`がフォントによっては半角サイズになり、表示が崩れます。
28
+ `□`がフォントによっては半角サイズになり、表示が崩れます。さらに、敵の'v'が付いた駒の所はどのように移動(取得)可能と表示するのでしょうか。
29
29
 
30
30
  ### どこに何を表示するのか纏まってない?
31
31
  カーソルの下に(敵/味方)駒がある/無い場合、選択中で下に(敵/味方)駒がある/無い場合、選択中で選択した駒が移動可能な位置で下に敵駒がある/無い場合等で、それぞれどのような表示にするのかは纏まっていらっしゃるでしょうか。