В настоящее время я пытаюсь создать консольную пасьянс в c.Я хочу, чтобы txt-файл «имитировал колоду», что означает, что в конфигурационном файле должны быть все карты от ЧЕРНОГО A, 2,3,4 .... до RED J, Q, K ....
Я успешно прочитал и расшифровал свой конфигурационный файл, но не знаю, как сохранить «карточки» в двусвязном списке.
Вот код, который я написал до сих пор:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct card
{
char color;
int value;
char name[2];
struct card * prev;
struct card * next;
} CARD_TYPE;
int main(int argc, char *argv[])
{
for (int i = 0; i < argc; i++)
{
printf("argv[%d] = %s\n", i, argv[i]);
}
int counter_red = 0;
int counter_black = 0;
char buffer[255];
FILE* path = fopen (argv[1],"r");
if (path == NULL)
{
printf("[ERR] Invalid file!\n");
return 3;
}
while(fgets(buffer, 255, path) != NULL )
{
if (strlen(buffer) == 1) //string is empty
{
continue;
}
CARD_TYPE* temp = malloc(sizeof(CARD_TYPE));//DONT FORGET TO FREE
temp->color = '\0';
temp->name[0] = '\0';
char *read = strtok(buffer," ");
while (read != NULL)
{
if (strcmp (read, "BLACK" ) == 0 )
{
counter_black ++;
}
else if (strcmp (read, "RED" ) == 0 )
{
counter_red ++;
}
printf("%s", read);
read = strtok(0, " ");
}
}
if (counter_black != 13)
{
printf("[ERR] Invalid file!\n");
}
Итак, теперь я хочу сохранить карточки в правильном порядке (в том же порядке, что и в файле).
Можно ли сделать все это за один цикл?
ЛюбойПомощь очень ценится!