1. C++ / Говнокод #2424

    +65

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    for(;;)
        {
            try
            {
                game();
            }
            catch(game_end e)
            {
                if(e.reason == GAME_WIN)
                {
                    printf("** Would you like to play again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_LOSE)
                {
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    printf("** Are you coward? (y-n) ");
                    if(get_y_n()) break;
                    printf("** Try again? (y-n) ");
                    if(get_y_n()) continue;
                    break;
                }
                else if(e.reason == GAME_RESTART)
                {
                    continue;
                }
                else
                {
                    break;
                }
            }
        }

    Писал игру в школе

    Запостил: GovnocoderJr, 16 Января 2010

    Комментарии (10) RSS

    • Оттуда же :)
      std::vector<int> proper_rooms;
      for(int i=MIN_ROOM; i<=MAX_ROOM; ++i)
      {
      if( ( _no_player && i == player.room_ex ) ||
      ( _no_wumpus && i == wumpus.room_ex ) ||
      ( _no_bats && rooms.ex(i).bats ) ||
      ( _no_pits && rooms.ex(i).pit ) ||
      ( _player_min_dist_2 && rooms.dist(i, player.room_ex) < 2) ||
      ( _player_min_dist_3 && rooms.dist(i, player.room_ex) < 3) )
      continue;
      proper_rooms.push_back(i);
      }
      return proper_rooms[rgen(proper_rooms.size())];
      Ответить
    • Где говнокод? Все нормально.
      Ответить
    • процесс игры game() в try-catch )))))) блин, ну не говнокод ))) но меня улыбнуло ))) по доброму )))))
      Ответить
    • Оригинальный способ =)
      Ответить
    • не говнокод) но +. Приятное решение
      Ответить
    • Да не, нормально. Хоть и необычно. Завершение игры тоже можно считать исключением :-)
      Ответить
    • А немножечко говнокода тут есть, исключение лучше по ссылке поймать, нежели заставлять делать копию объекта.
      Ответить
      • Это дело вкуса, а иногда возможностей. В этом плане это точно не говнокод. Даже немножечко.
        Ответить
    • Try again?
      Are you coward?
      Try again?
      Ответить
    • для полноты картины надо было обернуть в цикл первых два условия в GAME_LOSE
      Ответить

    Добавить комментарий