int initialize_parser(t_files *file, t_parser *parser, t_list *list, t_tetris *game) { struct stat buff; file->fd = open((file->link = concat("./tetriminos/", file->dirent->d_name)), O_RDONLY); if ((parser->name = separate_name(file->dirent->d_name)) == NULL) return (0); count_height(file, parser); parser->valid = 1; lstat(file->link, &buff); if (buff.st_size != 0) while ((file->s = get_next_line(file->fd))) { if (parser->valid == 1) parser_tetriminos(parser, list, file->s, game); free(file->s); } else { file->s = "invalid"; parser_tetriminos(parser, list, file->s, game); } return (1); }
// 오목을 검사하는 루틴 가로 세로 대각선 5줄을 판단 int five_in_a_row(int r, int c, char bo[19][19]) { int width, height, diagonal1,diagonal2; //좌표를 기준으로 좌 우. width=count_width(r,c,bo); // 좌표를 기준으로 위 아래. height=count_height(r,c,bo); // 좌표를 기준으로 대각선 diagonal1=count_diagonal1(r,c,bo); // 좌표를 기준으로 대각선 diagonal2=count_diagonal2(r,c,bo); if(width==5||height==5||diagonal1==5||diagonal2==5) { return 1; } else return 0; }