| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include "rubiks.h"
- void usage(char *av0)
- {
- printf("Usage: %s action [-f filename] [-c count=20] [-move movment=20]\n", av0);
- printf("\taction: generate|gen create a new grid\n");
- }
- static int getInt(char *params, char *av0)
- {
- int varNum;
- if (!params)
- {
- fprintf(stderr, "Expected number\n");
- usage(av0);
- return -1;
- }
- if ((varNum = atoi(params)) <= 0)
- {
- fprintf(stderr, "Invalid number\n");
- usage(av0);
- return -1;
- }
- return varNum;
- }
- int parse_params(char **params, t_params *p, char *av0)
- {
- int varNum;
- p->count = 20;
- p->file = NULL;
- p->nbMovment = 20;
- for (int i=0; params[i]; ++i)
- {
- if (!strcmp(params[i], "-f"))
- {
- if (!params[i+1])
- {
- fprintf(stderr, "Error: expected filename\n");
- usage(av0);
- return 0;
- }
- p->file = strdup(params[i+1]);
- i++;
- }
- else if (!strcmp(params[i], "-c"))
- {
- if ((p->count = getInt(params[1+i], av0)) == -1)
- return -1;
- i++;
- }
- else if (!strcmp(params[i], "-move"))
- {
- if ((p->nbMovment = getInt(params[1+i], av0)) == -1)
- return -1;
- i++;
- }
- else
- {
- fprintf(stderr, "Invalid token: %s\n", params[i]);
- usage(av0);
- return -1;
- }
- }
- return 1;
- }
|