#include<stdio.h>
#include<string.h> //문자열
#include<time.h> //난수
#include<stdlib.h> //난수
struct guest //플레이어
{
int player;
char* jop;
}data[12];//총 인원수 1 ~ 11
void setup(void); //직업 초기화
void jop(int a); //직업 분류및 배정
void main()
{
int num; //현재 인원수
while(1)
{
printf("현재 인원수를 입력해주세요 : ");
scanf("%d", &num);
if(num>11)
{
printf("인원수 초과 다시입력하세요.\n");
}
else
break;
}
setup();//직업 초기화
jop(num);//직업 분류및 배정
//테스트
for(int i=1 ; i<num+1 ; i++)
{
printf("%d플레이어는 %s 입니다.\n",data[i].player=i, data[i].jop);
}
}
void setup(void) //직업 초기화
{
for(int i=0 ; i<12 ; i++) //[1~11만 플레이어사용 (0은제외)]
{
data[i].player=i;
data[i].jop="시민";
}
}
void jop(int a) //직업 분류및 배정
{
char *human[12]={"없쪟","시민","검시관","저격수","마피아","스파이","외계인","용병","기억상실자","경찰","경비원","경호원"};// 직업설정
int h[12]; //직업 선택
int p[12]; //플레이어
//난수삽입
srand(time(NULL)); //랜덤생성
if(a<11)//인원 다 못채울경우
{
printf("원하는 직업을 골라주세요(%d).\n",a);
printf("1.시민 2.검시관 3.저격수 4.마피아 5.스파이 6.외계인 7.용병 8.기억상실자 9.경찰 10.경비원 11.경호원\n");
for(int i = 1 ; i < a+1; i ++)
{
scanf("%d", &h[i]);
for(int j=0 ; j < i ; j++)//중복 테스트
{
if(h[j]==h[i])
{
printf("중복되었습니다. 다시골라주세요 \n");
--i;
}
}//for문 안
}//for문 마지막
for(int i = 1 ; i < a+1; i ++)
{
p[i]=rand()%(a)+1;//플레이어 섞기 3 5 1 4 2
for(int j=1 ; j < i ; j++)//중복 테스트
{
if(p[i] ==p[j])//난수 중복 생성 방지
{
--i;
}
}//for 안
data[p[i]].jop=human[h[i]]; //직업 결정요..
}//for 마지막
}//if끝
else if(a==11)//인원 풀인경우
{
for(int i = 1 ; i < 12; i ++)
{
p[i]=rand()%(a)+1;//플레이어 섞기 3 5 1 4 2
for(int j=1 ; j < i ; j++)//중복 테스트
{
if(p[i] ==p[j])//난수 중복 생성 방지
{
--i;
}
}//for 안
data[p[i]].jop=human[i]; //직업 결정요..
}//for 마지막
}
}