1. ActionScript / Говнокод #7179

    −106

    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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    public function Rotate():void
    		{
    			switch(type)
    			{
    				case 'line':
    					if (figure[0][1])
    					{
    						figure = [[1], [1], [1], [1]];
    						position.y += 1;
    						position.x -= 1;
    					}
    					else
    					{
    						figure = [[1, 1, 1, 1]];
    						position.y -= 1;
    						position.x += 1;
    					}
    					break;
    				case 'square':
    					return;
    					break;
    				case 'pyramide':
    					if (!figure[0][0] && figure[1][0] && figure.length == 2)
    					{
    						figure = [[0, 1], [1, 1], [0, 1]];
    					}
    					else if (!figure[0][0] && figure[0][1] && figure.length == 3)
    					{
    						figure = [[1, 1, 1], [0, 1, 0]];
    					}
    					else if (figure[0][0] && figure[0][1] && figure.length == 2)
    					{
    						figure = [[1, 0], [1, 1], [1, 0]];
    					}
    					else if (figure[0][0] && !figure[0][1] && figure.length == 3)
    					{
    						figure = [[0, 1, 0], [1, 1, 1]];
    					}
    					break;
    				case 'lL':
    					if (figure[0][0] && !figure[0][1])
    						figure = [[0, 0, 1], [1, 1, 1]];
    					else if (!figure[0][0] && !figure[0][1])
    						figure = [[1, 1], [0, 1], [0, 1]];
    					else if (figure[0][0] && figure[0][1] && figure.length == 3)
    						figure = [[1, 1, 1], [1, 0, 0]];
    					else if (figure[0][0] && figure[0][1] && figure.length == 2)
    						figure = [[1, 0], [1, 0], [1, 1]];
    					break;
    				case 'rL':
    					{
    					if (!figure[0][0] && figure[0][1])
    						figure = [[1, 0, 0], [1, 1, 1]];
    					else if (figure[0][0] && !figure[0][1])
    						figure = [[1, 1], [1, 0], [1, 0]];
    					else if (figure[0][0] && figure[0][1] && figure.length == 3)
    						figure = [[1, 1, 1], [0, 0, 1]];
    					else if (figure[0][0] && figure[0][1] && figure.length == 2)
    						figure = [[0, 1], [0, 1], [1, 1]];
    					}
    					break;
    				case 'lZ':
    					if (figure[0][0] && !figure[0][1])
    						figure = [[0, 1, 1], [1, 1, 0]];
    					else if (!figure[0][0] && figure[0][1])
    						figure = [[1, 0], [1, 1], [0, 1]];
    					break;
    				case 'rZ':
    					if (!figure[0][0] && figure[0][1])
    						figure = [[1, 1, 0], [0, 1, 1]];
    					else if (figure[0][0] && figure[0][1])
    						figure = [[0, 1], [1, 1], [1, 0]];
    					break;
    			}
    		}

    "Поворот" фигур в тетрисе

    Запостил: KirAmp, 06 Июля 2011

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

    • Честно пытался написать алгоритм поворота массива... На ночь глядя
      Ответить
    • Вобщем-то да... простым решением было бы использовать Matrix.rotate() + Matrix.transformPoint() :)
      Ответить
      • /facepalm.gif =(
        Ответить
        • Ну это как бы будет немного перебором т.как не только поворот на К*90 градусов можно будет описать, а на К градусов... Но с дгугой стороны - проще :)
          Ответить
    • ой, это же из моего "тетриса"! = )))
      Ответить
    • У меня до сих пор нет своего тетриса, кстати. Надо будет исправить.
      Ответить
      • Я тоже как-то свой тетрис не писал. Печалька

        Но свой ЯП писал :)
        Ответить
        • А я сейчас пишу свой язык. Только не программирования, а 3Д-моделирования.
          Ответить
        • я свой ЯП все придумывал (реализовать было слишком сложно). А потом нашел Katahdin и перестал придумывать
          Ответить
          • у меня есть план для отличного ЯП, точнее, фреймворка (грубо говоря, лучшее от питона скрещенное с лучшим от дотнета -- может звучать весело, но это действительно крутой коктейль). но жаль времени и желания нет на реализацию. вот ежли бы у меня были кодеры-рабы...
            Ответить
    • на плюсах?
      Ответить
    • налицо говнокодец от лица не имеющего дела с академическими язычками, коим ActionScript не является. Любой уважающий себя жавист создадал бы на каждый кейс по реализации интерфейса с rotate() методом.
      Ответить
    • показать все, что скрытоvanished
      Ответить

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