8.05.2017

08.05 creating character

#include <stdio.h>
#include <stdlib.h>

typedef struct Character {
        char nickname[12];
        int strength, level, exp; //체력, 레벨, 경험치
}character;
character* c;

void create(int index) {
        c = (character*)realloc(c, sizeof(character) * (index+ 1));

        printf("Enter character's nickname.\n");
        scanf("%s", c[index].nickname);
        printf("Enter character's strength.\n");
        scanf("%d", &c[index].strength);
        printf("Enter character's level.\n");
        scanf("%d", &c[index].level);
        printf("Enter character's experience point.\n");
        scanf("%d", &c[index].exp);
}
void show(int index) {
        for (int i = 0; i < index; i++) {
                printf("About your character...\n");
                printf("nickname : %s \n", c[i].nickname);
                printf("strength : %d \n", c[i].strength);
                printf("level : %d \n", c[i].level);
                printf("experience point : %d \n", c[i].exp);
        }
}
void deleteCharacter(int index) {
        char name[20];
        printf("Which nickname do you want to erase?");
        scanf("%s", name);
        for (int i = 0; i < index; i++) {
                if (!strcmp(c[i].nickname, name));
                //strcmp (compare values) : if same -> 0
                // if different -> 1, -1
                for (int k = i; k < index- 1; k++) {
                        //앞으로 당겨주는 작업을 할 반복문
                        c[i] = c[i + 1];
                        c = (character*)realloc(c, sizeof(character)*(index- 1));
                }//end for(k)
                break; //더 이상 입력할 닉네임을 찾을 필요가 없기 때문
        }//end if

}
void main() {
        int input = 0, index = 0;

        c = (character*)malloc(sizeof(character));
        while (input != 4) {
                printf("[menu]\n1.Create your own Character 2.Show your character 3.Delete your character 4.End this program\n");
                scanf("%d", &input);
                if (input == 1) {
                        create(index);
                        index++;
                }
                else if (input == 2) show(index);
                else if (input == 3) {
                        deleteCharacter(index);
                        index--;
                }
        }
}

댓글 없음:

댓글 쓰기