ДействиеСценарий / Говнокод #5732 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
package
{
	import flash.display.Sprite;
	public class ShitFucker extends Sprite
	{
		/**
		 * | - конец команды
		 * # - объявление текстовой переменной #hello|
		 * n - объявление числовую переменной n123|
		 * @ - переход стека в ячейку @123|
		 * $ - выполнение команды $1|
		 * p - печать, принимает тип значения: $ссылка или #текст p$1|  p#hello|
		 * = - приравнивание =$0!#hello  =$0!n123
		 * + - сложение +$0!$1 +$0!n1
		 */
		private var quine:String = '#Hello,|#world!|@5|p$0|@7|p$1|@3|p#fuckyea|n80|p$8|=$0!n123|=$1!n456|+$0!$1|+$0!n999921|p$0|';
		private var steck:Array = [];
		function ColorFucker():void{
			parse(quine);
			execute(steck);
		}
		private function parse(quine:String):void{
			trace('---parsing---');
			var pos:uint = 0;
			steck.push('');
			while (pos != quine.length){
				while (quine.charAt(pos) != '|'){
					steck[steck.length - 1] += quine.charAt(pos);
					pos++;
				}
				if (quine.charAt(pos) == '|'){
					trace(steck[steck.length - 1]);
					steck.push('');
					pos++;
				}}
			trace('---done---');}
		private function execute(steck:Array):void{
			trace('---executing---');
			for (var command:uint = 0; command < steck.length;command++)
			{
				if (steck[command].charAt(0) != '@')
					run(steck[command]);
				else
					command = uint(steck[command].substr(1)) - 1;
			}
			trace('---end program---');}
		private function run(arg:String):*{
			switch(arg.charAt(0)){
				case '#':
					return (arg.substr(1));
					break;
				case 'n':
					return (Number(arg.substr(1)));
					break;
				case '$':
					run(steck[uint(arg.substr(1))]);
					break;
				case '=':
					equating(arg.substr(2));
					break;
				case '+':
					sum(arg.substr(2));
					break;
				case 'p':
					print(arg);
					break;
			}}
		private function print(arg:String):void{
			switch(arg.charAt(1))
			{
				case '$':
					trace(String(run(steck[uint(arg.substr(2))])));
					break;
				case '#':
					trace(arg.substr(2));
					break;
			}}
		private function equating(arg:String):void{
			var num:String = '';
			var n:uint = 0;
			while (arg.charAt(n) != '!'){
				num += arg.charAt(n);
				n++;
			}
			steck[Number(num)] = arg.substr(n + 1);
		}
		private function sum(arg:String):void{
			var num:String = '';

			var n:uint = 0;
			while (arg.charAt(n) != '!'){
				num += arg.charAt(n);
				n++;
			}
			if (arg.charAt(n + 1) == 'n'){
				steck[Number(num)] = 'n' + Number(Number(steck[Number(num)].substr(1)) + Number(arg.substr(n + 2)));
			}
			else if (arg.charAt(n + 1) == '$'){
				steck[Number(num)] = 'n' + Number(Number(steck[Number(num)].substr(1)) + Number(steck[Number(arg.substr(n + 2))].substr(1)));
}}}}

Сегодня было нечем заняться и я принялся писать самый эпичный говнокод в своей жизни.
Вдохновленный брейнфаком, абсолютно не планируя свои действия наперед я написал этого монстра.
Команда '#Hello,|#world!|@5|p$0|@7|p$1|@3|p#fuck yea|n80|p$8|=$0!n123|=$1!n456|+$0!$1|+$0 !n999921|p$0|'
выводит: world! Hello, fuckyea 80 1000500

Посмотрев на это творение свежей головой я осознал - не сколько сам ShitFucker, а его интерпретатор достоин этого сайта =)

Запостил: KirAmp KirAmp, (Updated )

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

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8