|
|
|||||
Регистрация: Mar 2016
Сообщений: 2
|
Как правильно написать Hello World?
Недавно решил написать Hello World, и пришел к довольно сложному решению.
Я явно что-то сделал не так. Посоветуйте что можно исправить package { import flash.display.MovieClip; import flash.display.Sprite; public class main extends MovieClip { public function main() { //Каждый программист начинает изучение нового языка с написания Hello World //Однако это очень непростая задача, что очень часто отпугивает новичков //Поэтому наша команда решила написать упрощенный вариант Hello World //Создаем массив из кодов символов строки var charCodes:Array = new Array(72,101,108,108,111,32,87,111,114,108,100); //Создаем массив и переносим в него расшифрованные буквы var chars:Array = new Array ; for (var i=0; i<charCodes.length; i++) { chars[i] = String.fromCharCode(charCodes[i]); } //Создаем матрицу var pixels:Array = new Array ; for (i=0; i<100; i++) { var row:Array = new Array(0,0,0,0,0); pixels.push(row); } //Заносим пиксели каждой полученной буквы в матрицу var w = 0; i = 0; while (i<chars.length) { switch (chars[i]) { case "H" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [0,0,1,0,0]; w++; pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "e" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [1,0,1,0,1]; w++; pixels[w] = [1,0,0,0,1]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "l" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [0,0,0,0,1]; w++; pixels[w] = [0,0,0,0,1]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "o" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [1,0,0,0,1]; w++; pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "W" : pixels[w] = [1,1,1,1,0]; w++; pixels[w] = [0,0,0,0,1]; w++; pixels[w] = [0,0,0,1,0]; w++; pixels[w] = [0,0,0,0,1]; w++; pixels[w] = [1,1,1,1,0]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "r" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [1,0,1,1,0]; w++; pixels[w] = [1,1,1,0,1]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case "d" : pixels[w] = [1,1,1,1,1]; w++; pixels[w] = [1,0,0,0,1]; w++; pixels[w] = [0,1,1,1,0]; w++; pixels[w] = [0,0,0,0,0]; w++; break; case " " : pixels[w] = [0,0,0,0,0]; w++; pixels[w] = [0,0,0,0,0]; w++; pixels[w] = [0,0,0,0,0]; w++; pixels[w] = [0,0,0,0,0]; w++; break; } i++; //Lfkmit ktym lol } //Расставляем пиксели по полученной матрице //1 - есть пиксель //0 - нет пикселя for (i=0; i<pixels.length; i++) { for (var i2=0; i2<5; i2++) { if (pixels[i][i2] == 1) { var pixel:Sprite = new Sprite ; pixel.graphics.beginFill(0x000000); pixel.graphics.drawRect(i,i2,1,1); addChild(pixel); } } } //Вот так, всего за 150 строк, пишется Hello World //Мы долго работали всей коммандой чтобы создать этот код, //Чтобы вам не нужно было всё это делать самим //Чтобы купить лицензию на использование этого кода, //Переходите на наш сайт CakeEaterGames.ru } } } |
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
кидаем тект,делаем динамическим
даем имя например - vvod все,в кавычках что хочем |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
тут видимо стоит задача написать без использования текстфилдов и шрифотв.2 ТС - а зачем последний ряд у всех букв с нулями?
|
|
|||||
Нет, ну, вариант Hello World и правда упрощённый - нет всяких TextField, Font, и подобной мутни.
Так что, упростить ещё более можно только найдя места в шуме, которые соответствуют последовательностям в массивах и заменить массив на доставание значений из шума.(ох, я мастер прятать реализацию)
__________________
There is no thing in this world that is not simple. |
|
|||||
Упрощение(без использования двумерного массива)
var b:ByteArray = new ByteArray(); b.writeInt(parseInt("11100111"+ "01000010"+ "01000010"+ "01111110", 2)); b.writeInt(parseInt("01111110"+ "01000010"+ "01000010"+ "11100111", 2)); function bitFor(b:ByteArray, f:Function):void { var len:int = b.length; var cntr:int = 0; for(var i:int = 0; i < len; i ++) { var curr:int = b[i]; f(cntr,0x01 & (curr >> 7)); cntr++; f(cntr,0x01 & (curr >> 6)); cntr++; f(cntr,0x01 & (curr >> 5)); cntr++; f(cntr,0x01 & (curr >> 4)); cntr++; f(cntr,0x01 & (curr >> 3)); cntr++; f(cntr,0x01 & (curr >> 2)); cntr++; f(cntr,0x01 & (curr >> 1)); cntr++; f(cntr,0x01 & curr); cntr++; } } var bmd:BitmapData = new BitmapData(8, 8, true, 0); bitFor(b, function(i:int,bool:Boolean) { bmd.setPixel32(i%8, int(i/8), bool?0xFF000000:0x00000000); }); var bmp:Bitmap = new Bitmap(bmd, "auto", false); bmp.scaleX = bmp.scaleY = 9; addChild(bmp); Добавлено через 10 часов 35 минут Упрощённый вариант функции прохождения по битам.
__________________
There is no thing in this world that is not simple. |
Часовой пояс GMT +4, время: 23:30. |
|
« Предыдущая тема | Следующая тема » |
|
|