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

    +163

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    //
    				if (delay == 0)
    				{
    					Uint8 *keys = SDL_GetKeyState(NULL);
    					// Checking for letters
    					for (c = 97; c < 123; c++)
    						if (cpos < 9)
    							if (keys[c] && !delay)
    							{
    								mapname[cpos] = c;
    								mapname[++cpos] = '\0';
    								delay = 5;
    								
    								bg.show(400, 240, 0);
    								text.print(mapname, 200, 180);
    								render.backend();
    								
    								break;
    							}
    					// Checking for numbers
    					for (c = 48; c < 58; c++)
    						if (cpos < 9)
    							if (keys[c] && !delay)
    							{
    								mapname[cpos] = c;
    								mapname[++cpos] = '\0';
    								delay = 5;
    								
    								bg.show(400, 240, 0);
    								text.print(mapname, 200, 180);
    								render.backend();
    								
    								break;
    							}
    					// On pressing ENTER
    					if (keys[13] && !delay && strlen(mapname) > 2)
    						break;
    					// On pressing BACKSPACE
    					if (keys[SDLK_BACKSPACE] && cpos > 0 && !delay)
    					{
    						mapname[--cpos] = '\0';
    						delay = 5;
    						
    						bg.show(400, 240, 0);
    						if (cpos > 0) text.print(mapname, 200, 180);
    						render.backend();
    					}
    				}
    				
    				if (delay > 0)
    					delay--;

    Уверен, можно было сделать намного проще =)

    Запостил: wh_, 10 Декабря 2010

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

    • В 36 строке strlen вроде лишний, cpos же есть
      Ответить
    • что-то в этом коде не так
      Ответить
      • Блин, какого тут пробелы убираются даже внутри тега code?
        Я типа хотел пошутить над длиной отступов, а тут такой облом.
        Ответить
        • сайт на PHP же
          Ответить
        • Мне в лом было табуляции удалять :)
          Ответить
          • notepad++
            выделение кода и shift+tab и всё сдвинется влево.

            повторю: это фишка редактора notepad++.
            Ответить
            • а причем тут notepad++? идея в том, чтобы места где код были дружественны к \t. вон например stackoverflow жутко гордится своей программерской ориентированностью, а Tab в textarea хер введешь.
              Ответить
    • многа букафф ниасилил
      Ответить
    • а где здесь?
      Ответить
    • >>SDL_GetKeyState(NULL);
      >>NULL
      >>C++

      Oo
      Ответить
      • В <cstring> определён
        Ответить
        • NULL в С++ это моветон. То, что он в <cstring> определен ни о чем не говорит, <cstring> это не часть стандартной библиотеки и частью языка не является. Короче то, что оно определено в каком-то там хедере говорит лишь о том, что там говнокод и не важно, что его мс родил
          Ответить
    • Поклянитесь мне в верности и я вас прощу!
      Ответить

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