我正在編寫客戶端服務器的網絡編程項目Rock Paper Scissors代碼。我完成了代碼,在測試過程中它運行良好,然後將此行添加到代碼中。帶分段的客戶端服務器代碼錯誤錯誤
findWinner(gameType,pcChoice);
當我將代碼行添加到代碼時,代碼開始給我一個關於來自服務器端的分段錯誤的錯誤。這是我添加該行的地方。
while(1)
{
int gameType;
printf("Paper, Scissors, Rock game start.\n");
rc = read(client_sockfd, &gameType, 1);
srand(time(NULL));
pcChoice = (rand() % 3)+1;
findWinner(gameType,pcChoice);
gameType = pcChoice;
write(client_sockfd, &gameType, 1);
}
我是C中的一個熟人,不知道該怎麼做。
int pcChoice;
它是一個整數,以保持一個隨機整數1至3個(巖紙或剪刀)
findwinner():
void findWinner(int player,int pc)
{
const char *items[3]={"Paper","Scissors","Rock"};
printf("Client: %s\n",items[player-1]);
printf ("Computer: %s\n",items[pc-1]);
switch (player)
{
case 1:
switch (pc)
{
case 1:
printf("it is a DRAW\n");
break;
case 2:
printf("Computer Wins\n");
break;
case 3:
printf("Computer Loses\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
case 2:
switch (pc)
{
case 1:
printf("Computer Loses\n");
break;
case 2:
printf("it is a DRAW\n");
break;
case 3:
printf("Computer Wins\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
case 3:
switch (pc)
{
case 1:
printf("Computer Wins\n");
break;
case 2:
printf("Computer Loses\n");
break;
case 3:
printf("it is a draw\n");
break;
default:
printf("ERROR\n");
exit(0);
};
break;
default:
printf("ERROR\n");
exit(0);
}
}
現在可能是學習如何使用調試器的好時機。 – melpomene
請提供findWinner函數代碼以及pcChoice的類型和用法信息。 – Jay
我編輯了問題 – femchi