試験ノート - 実装ドリル 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
bsq.h
1#ifndef BSQ_H
2#define BSQ_H
3
4#include <errno.h>
5#include <fcntl.h>
6#include <stdio.h>
7#include <stdlib.h>
8#include <string.h>
9#include <unistd.h>
10
94typedef struct s_map_info {
95 int rows;
96 char empty;
97 char obstacle;
98 char full;
99 int cols;
100} t_map_info;
101
105typedef struct s_map {
107 char **data;
108} t_map;
109
113typedef struct s_square {
114 int x;
115 int y;
116 int size;
117} t_square;
118
119// プロトタイプ宣言 (実装順)
122// main.c
123int main(int argc, char **argv);
124void solve_single_map(FILE *stream);
125
126// map_parser.c
127t_map *load_map(FILE *stream);
128int parse_map_header(char *first_line, t_map_info *info);
129int read_map_data(FILE *stream, t_map *map);
130void free_map(t_map *map);
131
132// bsq_solver.c
134void print_solution(t_map *map, t_square square);
135
136// ft_utils.c
137void ft_putstr_fd(const char *s, int fd);
138void ft_error(const char *msg);
139
142#endif
void ft_putstr_fd(const char *s, int fd)
文字列をファイルディスクリプタに書き込む
Definition ft_utils.c:10
int read_map_data(FILE *stream, t_map *map)
マップデータを読み込む
Definition map_parser.c:114
int parse_map_header(char *first_line, t_map_info *info)
マップの最初の行を解析する
Definition map_parser.c:24
void free_map(t_map *map)
マップのメモリを解放する
Definition map_parser.c:244
int main(int argc, char **argv)
BSQプログラムのエントリポイント
Definition main.c:64
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
マップのメタデータを格納する構造体
Definition bsq.h:94
char empty
空き地を表す文字
Definition bsq.h:96
char obstacle
障害物を表す文字
Definition bsq.h:97
char full
正方形を埋める文字
Definition bsq.h:98
int rows
マップの行数
Definition bsq.h:95
int cols
マップの列数 (最初のデータ行を読んでから決定)
Definition bsq.h:99
マップ全体の状態を保持する構造体
Definition bsq.h:105
char ** data
マップデータ(2次元配列)。data[row][col] でアクセス
Definition bsq.h:107
t_map_info info
マップの設定情報
Definition bsq.h:106
見つかった最大の正方形の解を格納する構造体
Definition bsq.h:113
int x
正方形の左上のx座標 (0-indexed)
Definition bsq.h:114
int size
正方形の一辺の長さ
Definition bsq.h:116
int y
正方形の左上のy座標 (0-indexed)
Definition bsq.h:115