EXAM DRILL 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
main.c
1#include "bsq.h"
2
26void solve_single_map(FILE *stream) {
27 t_map *map;
28 t_square largest_square;
29
30 map = load_map(stream);
31 if (!map) {
32 ft_error("map error");
33 return;
34 }
35
36 largest_square = find_largest_square(map);
37 print_solution(map, largest_square);
38 free_map(map);
39}
40
64int main(int argc, char **argv) {
65 int i;
66 FILE *stream;
67 int first_map_processed = 0;
68
69 if (argc == 1) {
70 // 引数なしの場合、標準入力から読み込む
71 solve_single_map(stdin);
72 } else {
73 // 引数がある場合、各ファイルを処理する
74 i = 1;
75 while (i < argc) {
76 if (first_map_processed)
77 ft_putstr_fd("\n", STDOUT_FILENO);
78 stream = fopen(argv[i], "r");
79 if (!stream) {
80 ft_error("map error");
81 } else {
82 solve_single_map(stream);
83 fclose(stream);
84 }
85 first_map_processed = 1;
86 i++;
87 }
88 }
89 return (0);
90}
void ft_putstr_fd(const char *s, int fd)
文字列をファイルディスクリプタに書き込む
Definition ft_utils.c:10
void free_map(t_map *map)
マップのメモリを解放する
Definition map_parser.c:244
t_map * load_map(FILE *stream)
マップ全体をロードする
Definition map_parser.c:192
void solve_single_map(FILE *stream)
単一のマップを処理する
Definition main.c:26
void ft_error(const char *msg)
エラーメッセージ標準エラー出力に出力し、改行する
Definition ft_utils.c:21
void print_solution(t_map *map, t_square square)
解決策をマップに適用し、結果を出力する
Definition bsq_solver.c:210
t_square find_largest_square(t_map *map)
動的計画法 (DP) を使用して最大の正方形を見つける
Definition bsq_solver.c:72
int main(int argc, char *argv[])
ライフゲーム・シミュレーターのエントリポイント
Definition main.c:117
マップ全体の状態を保持する構造体
Definition bsq.h:106
見つかった最大の正方形の解を格納する構造体
Definition bsq.h:114