퀴즈 게임

퀴즈 게임
프로그램 을 작성 하여 스피드 컨트롤 러 게임 을 실현 하 다.이 응용 장면 은 여러 캐릭터 에 대한 우선 적 인 문 제 를 해결 하 는 선점 모델 에 적합 하 다.구체 적 으로 퀴즈 를 시작 할 때 선수 A, B, C 가 거의 동시에 눌 렀 을 때 시스템 은 버튼 이 가장 빠 른 유저 번 호 를 주 는 것 으로 나 타 났 다.디자인 퀘 스 트 요구 1 -:
  • 키보드 에 있 는 'S' 를 임의로 누 르 면 스피드 퀴즈 에 들 어가 고 출력 알림 스피드 퀴즈 가 시작된다.5 초의 스피드 퀴즈 시간 이 지나 면 스피드 퀴즈 가 무효 이 며, 출력 힌트 스피드 퀴즈 시간 이 도착 합 니 다.
  • 시작 한 후에 세 선수 의 역할 은 키보드 에 있 는 'A' B 'C' 를 거의 동시에 눌 러 서 캐릭터 의 버튼 을 맞 추 는 것 을 모 의 할 수 있다.캐릭터 가 먼저 퀴즈 버튼 을 누 르 면 퀴즈 가 끝나 고 퀴즈 권 을 빼 앗 는 캐릭터 를 출력 한다.
  • 키보드 버튼 동작 이 벤트 를 실시 간 으로 감지 할 수 있 는 윈도 시스템 함 수 를 선택해 야 한다.설계 임무 요구 2:
  • 출력 스피드 테스트 기능.각 캐릭터 의 스피드 퀴즈 버튼 시간 을 제시 하고 10ms
  • 까지 정확 해 야 합 니 다.
       
    int main()
    {
    	char begin;           //       
    	printf("   S,      :
    "
    ); scanf("%c",&begin); // S getchar(); if(begin=='S') { funtion(); } return 0; }
          
    void change_funtion(double duration1,double duration2,double duration3)
    {
    	double min;
    	min = duration1;
    	if(duration1<duration2&&duration1<duration3)
    	{
    		printf( "  A  
    "
    ); printf(" :%0.2lfS
    "
    ,duration1); } if(duration2<duration1&&duration2<duration3) { printf( " B
    "
    ); printf(" :%0.2lfS
    "
    ,duration2); } if(duration3<duration1&&duration3<duration2) { printf( " C
    "
    ); printf(" :%0.2lfS
    "
    ,duration3); } }
            
    void funtion()
    {
    	char player1,player2,player3;                  //     
    	char m;
    	char win;
    	int i; 
    	double duration1 = 0.0,duration2 = 0.0,duration3 = 0.0,duration_endl = 0.0;  //       
    	clock_t start,finish1,finish2,finish3,endl;
    	start = clock();        //       
    	if(duration_endl<5.0)
    	{
    		for(i=0;i<3&&duration_endl<5.0;i++)
    		{
    			scanf("%c",&m);
    			endl = clock();
    			duration_endl += (double)(endl-start)/(clock_t)(1000);
    	//		getchar();
    			switch(m)
    			{
    				case 'A': player1 = getchar();finish1 = clock();
    						  duration1 = (double)(finish1-start)/(clock_t)(1000);break;
    				case 'B': player2 = getchar();finish2 = clock();
    				  		  duration2 = (double)(finish2-start)/(clock_t)(1000);break;
    				case 'C': player3 = getchar();finish3 = clock();
    						  duration3 = (double)(finish3-start)/(clock_t)(1000);break; 
    				default: printf("      
    "
    );break; } } if(duration1>5.0||duration1==0.0) { duration1 = 999.0; printf(" A ,
    "
    ); } else printf(" A :%0.2lfS
    "
    ,duration1); if(duration2>5.0||duration2==0.0) { duration2 = 999.0; printf(" B ,
    "
    ); } else printf(" B :%0.2lfS
    "
    ,duration2); if(duration3>5.0||duration3==0.0) { duration3 = 999.0; printf(" C ,
    "
    ); } else printf(" C :%0.2lfS
    "
    ,duration3); if((duration1>5.0||duration1==0.0)&&(duration2>5.0||duration2==0.0)&&(duration3>5.0||duration3==0.0)) printf(" , 。
    "
    ); else change_funtion(duration1,duration2,duration3); } else printf(" , 。
    "
    );

    입력 설명: 스피드 퀴즈 신호 S 를 보 낸 후 리 턴 버튼 + 선수 이름 을 눌 러 참가 선 수 를 하나씩 입력

    좋은 웹페이지 즐겨찾기