Ejemplo n.º 1
0
//////////////////////////Vòng lặp chính của trò chơi///////////////////////////////////
int play_loop(int player)
{
    char a[100],*word_guess,res;
    int ligne, ligne_random, l_word=0, end=0,select,i=0;
    if (player == 1) // 1 player
    {
        ligne = count_ligne(a,word_guess);
        srand(time(NULL));
        ligne_random = rand()%ligne+0;  //Chọn 1 hàng ngẫu nhiên trong file
        l_word = get_word_guess(a,word_guess,ligne_random,word,l_word);
    }
    else // 2 player
    {
        system("cls");
        do {
            printf("\n\n\n\t\tPlayer1 enter a word ! (more than 2 letters) : \n");
            printf("\t\t");scanf("%s",&a);

            for (i=0;a[i]!= '\0' ; i++)
                l_word++;
            if (l_word < 2) printf("\n\t\tWrong type ! Enter again");
        } while (l_word < 2);
        for (i=0;a[i]!= '\0' ; i++)
        {
            word[i] = a[i];
            flip[i] = 0;
        }
    }
    do
    {
        system("cls");
        print_gallows(end);
        printf("\n\t");print_guess(l_word);
        printf("\n\n\tMisses: "); print_misses(i);
        if (check_correct(l_word) == 1) break; //Kết thúc game
        if (end < 7)
        {
            menu_play();
            scanf("%d",&select);
            switch(select)
            {
                case 1:
                    printf("\n\n\tGuess a letter! : ");
                    scanf("%s",&res);
                    if(check_lettre(l_word,res) == 0)
                    {
                        end++;
                        miss[i] = res;
                        i++;
                    }
                    else if (check_lettre(l_word,res) == 2)
                    	end++;
                    break;
                case 2:
                    end = 7;
                    break;
                case 3:
                    play_loop(player);
                    return 0;
                    break;
                case 4:
                    return 0;
            }
        }
        else break;
    } while(end < 8);
    // Hiện kết quả
    system("cls");
    print_gallows(end);
    if (check_correct(l_word)==1)
    {
        printf("\n\n\n\t\tYou WIN ! \n");
        solution(l_word);
    }
    else
    {
        printf("\n\n\n\t\tYou LOSE ! \n");
        solution(l_word);
    }
    printf("\n\t\t1.New \t2.Quit \t3.Menu\n");
    printf("\t\tSelect : ");
    scanf("%d",&select);
    switch(select)
    {
        case 1:
            play_loop(player);
            return 0;
            break;
        case 2:
            break;
        case 3:
            return 0;
    }
    return 1;
}
Ejemplo n.º 2
0
int main(int argc, char **argv) {

  GRRLIB_Init();	
	
  // Initialise the attached controllers
  WPAD_Init();
  WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR);
	
  // Initialise the audio subsystem
  AESND_Init(NULL);
	
  MODPlay_Init(&play);
  MODPlay_SetMOD(&play,bg_music);
  MODPlay_SetVolume(&play,63,63);
  MODPlay_Start(&play);

  cui_cursor cursor;
  cursor.tex[0]=GRRLIB_LoadTexture(player1_point_png);
  cursor.tex[1]=GRRLIB_LoadTexture(player1_grab_png);
  cursor.is_grabbing=false; 
	
  cui_board board;
	
  ENGINE engine = FIRSTCHESS;
  if(engine == TSCP){
    int i;
    for (i=0; i < CUI_TILE_NB; i++) {
      board.piece[i]=init_piece[i];
      if(init_color[i] == 1){
	board.color[i]=CUI_BLACK;
      }else if (init_color[i] == 6){
	board.color[i]=CUI_EMPTY;
      }else if (init_color[i] == 0){
	board.color[i]=CUI_WHITE;
      }
    }
			
    init_hash();
    init_board();
    open_book();
    gen();
  }


  cui_board_read_core(&board, engine);

  GRRLIB_SetBackgroundColour(0x030, 0x30, 0x42, 0xFF);
	
  board.tile_color1 = 0xAAAAAAFF;
  board.tile_color2 = 0x444444FF;
  board.piece_color1 = 0xAAAAAAFF;
  board.piece_color2 = 0x444444FF;
	
  cui_board_init(&board);

  cui_game game;
  game.board = &board;
  game.engine = engine; 
  game.cursor = &cursor;
  game.is_mute = false;
  GRRLIB_texImg *tex_wallpaper = GRRLIB_LoadTexture(wall_jpg);
  game.tex_wallpaper = tex_wallpaper;
			
	
  voice = AESND_AllocateVoice(aesnd_callback);
  AESND_SetVoiceVolume(voice, 0xFF, 0xFF);
  AESND_SetVoiceStream(voice, true);

  cui_menu current_state = CUI_MENU_MAIN;
	 
  while(current_state != CUI_MENU_EXIT) {
    switch(current_state){
    case CUI_MENU_MAIN:	current_state=menu_main(&game);break;
    case CUI_MENU_PLAY:	current_state=menu_play(&game);break;
    case CUI_MENU_OPTION:current_state=menu_option(&game);break;
    case CUI_MENU_OPTION_GENERAL:current_state=menu_option_general(&game);break;
    case CUI_MENU_OPTION_GFX:current_state=menu_option_gfx(&game);break;
    case CUI_MENU_OPTION_SND:current_state=menu_option_snd(&game);break;
    case CUI_MENU_CREDITS:current_state=menu_credits(&game);break;
    case CUI_MENU_PAUSE:current_state=menu_pause(&game);break;
    case CUI_MENU_HOME:current_state=menu_home(&game);break;
    case CUI_MENU_EXIT:current_state=menu_exit(&game);break;
    default:break;
    }
  }
	
  GRRLIB_FreeTexture(tex_wallpaper);
  GRRLIB_FreeTexture(cursor.tex[0]);
  GRRLIB_FreeTexture(cursor.tex[1]);
  GRRLIB_Exit();
  return 0;
}