printf("\n");
return 0;
}
else {
return 1;
}
}
else if (strcmp(computer[com], computer[2]) == 0) {
printf("당신은 '%s', 컴퓨터는 '%s' 컴퓨터의 신들린 무빙입니다.\n\n", Player, computer[com]);
--*Gi;
return 0;
}
else if (strcmp(computer[com], computer[3]) == 0) {
printf("당신은 '%s', 컴퓨터는 '%s' 칼 맞대기\n\n", Player, computer[com]);
--*Gi;
return 0;
}
else {
printf("당신은 '%s', 컴퓨터는 '%s' 컴퓨터를 베어버렸습니다. 이겼습니다!\n\n", Player, computer[com]);
*Gi = 0;
fputs("다시 시작하겠습니까?(네, 아니오) : ", stdout);
scanf("%s", choice);
if (strcmp(choice, "네") == 0) {
fflush(stdin);
printf("\n");
return 0;
}
else {
return 1;
}
}
}
else {
printf("기력이 부족합니다. 당신은 기를 '%d'개 모아야합니다. 현재 : %d\n\n", 1 - *Gi, *Gi);
return 0;
}
}
int SAttack(char Player, int com, char choice[], int * Gi)
{
if (*Gi >= 2) {
if (strcmp(computer[com], computer[5]) == 0 || strcmp(computer[com], computer[6]) == 0) {
printf("당신은 '%s', 컴퓨터는 '%s' 컴퓨터가 더 쌔네요. 졌습니다.\n", Player, computer[com]);
*Gi = 0;
fputs("다시 시작하겠습니까?(네, 아니오) : ", stdout);
scanf("%s", choice);
if (strcmp(choice, "네") == 0) {
printf("\n");
return 0;
}
else {
return 1;
}
}
else if (strcmp(computer[com], computer[4]) == 0) {
printf("당신은 '%s', 컴퓨터는 '%s' 쌍칼 맞대기\n\n", Player, computer[com]);
*Gi = *Gi - 2;
return 0;
}
else {
printf("당신은 '%s', 컴퓨터는 '%s' 컴퓨터를 두동각내버렸네요. 축하드려요.\n\n", Player, computer[com]);
*Gi = 0;
return 1;
}
}
else {
printf("기력이 부족합니다. 당신은 기를 '%d'개 모아야합니다. 현재 : %d\n\n", 2 - *Gi, *Gi);
return 0;
}
}
int POE(char Player, int com, char choice[], int * Gi)
{
if (*Gi >= 3) {
if (strcmp(computer[com], computer[6]) == 0) {
printf("당신은 '%s', 컴퓨터는 '%s' 당신은 재가 되었습니다.\n", Player, computer[com]);
*Gi = 0;
fputs("다시 시작하겠습니까?(네, 아니오) : ", stdout);
scanf("%s", choice);
if (strcmp(choice, "네") == 0) {
fflush(stdin);
printf("\n");
return 0;
}
else {
return 1;
}
}
else if (strcmp(Player, computer[com] == 0)) {
printf("당신은 '%s', 컴퓨터는 '%s' 같은 공격입니다. 아직 살아있어요.\n\n", Player, computer[com]);
*Gi -= 3;
return 0;
}
else {
printf("당신은 '%s', 컴퓨터는 '%s' 컴퓨터 사무라이에 구멍이 뚫렸습니다.\n\n", Player, computer[com]);
*Gi = 0;
fputs("다시 시작하겠습니까?(네, 아니오) : ", stdout);
scanf("%s", choice);
if (strcmp(choice, "네") == 0) {
fflush(stdin);
printf("\n");
return 0;
}
else {
return 1;
}
}
}
else {
printf("기력이 부족합니다. 당신은 기를 '%d'개 모아야합니다. 현재 : %d\n\n", 3 - *Gi, *Gi);
return 0;
}
}
int SamuraiPoe(char Player[], int com, char choice[], int * Gi)
{
if (*Gi >= 5) {
if (strcmp(Player, computer[com] == 0)) {
printf("당신은 '%s', 컴퓨터는 '%s' 막강한 파워의 대결입니다.\n\n", Player, computer[com]);
*Gi -= 5;
return 0;
}
printf("당신은 '%s', 컴퓨터는 '%s' 사무라이포를 이길 기술은 없지요.\n\n", Player, computer[com]);
*Gi = 0;
fputs("다시 시작하겠습니까?(네, 아니오) : ", stdout);
scanf("%s", choice);
if (strcmp(choice, "네") == 0) {
fflush(stdin);
printf("\n");
return 0;
}
else {
return 1;
}
}
else {
printf("기력이 부족합니다. 당신은 기를 '%d'개 모아야합니다. 현재 : %d\n\n", 5 - *Gi, *Gi);
return 0;
}
}
int computers(int * comGi)
{
int com;
if (*comGi == 0) {
com = rand() % 3;
if (com == 0)
++*comGi;
return com;
}
else if (*comGi == 1) {
com = rand() % 4;
if (com == 0)
++*comGi;
else if (com == 3)
--*comGi;
return com;
}
else if (*comGi == 2) {
com = rand() % 5;
if (com == 0)
++*comGi;
else if (com == 3)
--*comGi;
else if (com == 4)
*comGi -= 2;
return com;
}
else if (*comGi == 3 || *comGi == 4) {
com = rand() % 6;
if (com == 0)
++*comGi;
else if (com == 3)
--*comGi;
else if (com == 4)
*comGi -= 2;
else if (com == 5)
*comGi -= 3;
return com;
}
else {
com = rand() % 7;
if (com == 0)
++*comGi;
else if (com == 3)
--*comGi;
else if (com == 4)
*comGi -= 2;
else if (com == 5)
*comGi -= 3;
else if (com == 6)
*comGi -= 5;
return com;
}
}
이게 기충전, 방어, 회피, 공격, 강공격, 포, 사무라이포 입력해서 싸우는 텍스트 대전게임인데요.
이상하게 강공격, 포, 사무라이포를 입력하면 오류가 발생하네요...?
아무리 코드를 수정해도 오류가 발생하는데 뭐가 문제죠??
아 처음에 com을 6으로 초기화한건 오류 수정하려고 잠시 바꾼거에요.
원래는 com = computers(&comGi);
ㅈㅅ너무어렵네요\ㅠㅠ
씹샘기야 뭔 에러거 뜨는지 써야지 알거아냐
ㄴ 그냥 프로그램의 작동이 중지됬다면서 종료됩니다.
디버깅을 해보렴
디버깅하면 찾고 아니면 오류도 안 나오는 상황이라서 못찾는단다. 디버깅은 main에서 멈추게 하고 한 step씩 진행시키는 버튼을 눌러가면서 상황을 지켜볼 수 있으니 검색해봐
ㄴ 감사합니다. 한번 해보도록 할게요!
메모리 잘못 접근했다에 10원 건다.
일단 강공격이랑 적에는 첫번째 인자를 배열로 안받노 ?
2.60 // 헐.. 정말 감사합니다. 그게 문제였네요!!!!! 아.. 저것때문에 몇 시간을 고생했는지 ㅠㅠㅠ 감사합니다. 진짜 감사합니다.