second
This commit is contained in:
parent
d572e07e85
commit
ce24b2642a
4
Makefile
4
Makefile
@ -12,10 +12,10 @@
|
||||
|
||||
NAME = push_swap
|
||||
SRCS = push_swap.c \
|
||||
utils.c \
|
||||
process.c\
|
||||
main.c
|
||||
OBJS = ${SRCS:.c=.o}
|
||||
CFLAGS = -Wall -Wextra -Werror
|
||||
CFLAGS = -Wall -Wextra
|
||||
RM = rm -rf
|
||||
LIBFT = ./libft
|
||||
|
||||
|
||||
15
process.c
15
process.c
@ -12,7 +12,7 @@
|
||||
|
||||
#include "push_swap.h"
|
||||
|
||||
void ft_sa_sb(t_list **list, t_list **process)
|
||||
void ft_sa_sb(t_list **list, t_list **process, char *type)
|
||||
{
|
||||
t_list *swap;
|
||||
|
||||
@ -22,7 +22,7 @@ void ft_sa_sb(t_list **list, t_list **process)
|
||||
(*list)->next->next = swap;
|
||||
}
|
||||
|
||||
void ft_ra_rb(t_list **list, t_list **process)
|
||||
void ft_ra_rb(t_list **list, t_list **process, char *type)
|
||||
{
|
||||
t_list *swap;
|
||||
|
||||
@ -34,13 +34,18 @@ void ft_ra_rb(t_list **list, t_list **process)
|
||||
|
||||
void ft_pa(t_list **list_a, t_list **list_b, t_list **process)
|
||||
{
|
||||
ft_lstadd_front(list_a, *list_b);
|
||||
|
||||
t_list *swap;
|
||||
|
||||
swap = *list_b;
|
||||
*list_b = (*list_b)->next;
|
||||
ft_lstadd_front(list_a, swap);
|
||||
}
|
||||
|
||||
void ft_pb(t_list **list_a, t_list **list_b, t_list **process)
|
||||
{
|
||||
t_list *swap;
|
||||
t_list *swap;
|
||||
|
||||
swap = *list_a;
|
||||
*list_a = (*list_a)->next;
|
||||
ft_lstadd_front(list_b, swap);
|
||||
}
|
||||
|
||||
48
push_swap.c
48
push_swap.c
@ -14,21 +14,45 @@
|
||||
|
||||
int is_nbr(int nbrarg, char **list)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
char *save;
|
||||
|
||||
save = *list;
|
||||
i = 0;
|
||||
while (nbrarg)
|
||||
{
|
||||
i = 0;
|
||||
*list++;
|
||||
while ((*list)[i])
|
||||
save++;
|
||||
while (save[i])
|
||||
{
|
||||
if (((*list)[i] < '0' || (*list)[i] > '9') && (*list)[i] != '-')
|
||||
if ((save[i] < '0' || save[i] > '9') && save[i] != '-')
|
||||
return (0);
|
||||
i++;
|
||||
}
|
||||
nbrarg--;
|
||||
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
|
||||
int is_double(int nbrarg, char **list)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
char *save;
|
||||
|
||||
i = 0;
|
||||
j = 0;
|
||||
save = *list + 1;
|
||||
while (save + j + 1)
|
||||
{
|
||||
while (j + i + save)
|
||||
{
|
||||
i++;
|
||||
if (ft_strncmp(save + j, save + j + i, ft_strlen(save)) == 0)
|
||||
return (0);
|
||||
}
|
||||
j++;
|
||||
i = 0;
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
@ -37,24 +61,26 @@ int push_swap(int nbrarg, char **list)
|
||||
{
|
||||
t_list *start;
|
||||
|
||||
if (is_nbr(nbrarg++, list) == 0)
|
||||
start = 0;
|
||||
if (!is_nbr(nbrarg++, list) || !is_double(nbrarg++, list))
|
||||
{
|
||||
ft_putstr_fd("Error\n", 2);
|
||||
return (0);
|
||||
}
|
||||
start = set_list(nbrarg++, list++)
|
||||
start = set_list(nbrarg++, list);
|
||||
return (1);
|
||||
}
|
||||
|
||||
int set_list(int nbrarg, char **list)
|
||||
t_list *set_list(int nbrarg, char **list)
|
||||
{
|
||||
t_list *start;
|
||||
|
||||
start = ft_lstnew(&ft_atoi(*list))
|
||||
(*list)++;
|
||||
start = ft_lstnew(*list);
|
||||
while (nbrarg)
|
||||
{
|
||||
*list++;
|
||||
ft_lstadd_back(&start, ft_lstnew(&ft_atoi(*list)));
|
||||
(*list)++;
|
||||
ft_lstadd_back(&start, ft_lstnew(*list));
|
||||
}
|
||||
return (start);
|
||||
}
|
||||
|
||||
@ -19,5 +19,7 @@
|
||||
|
||||
int push_swap(int nbrarg, char **list);
|
||||
int is_nbr(int nbrarg, char **list);
|
||||
t_list *set_list(int nbrarg, char **list);
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user