Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.06.2016, 07:55
Cake_Eater вне форума Посмотреть профиль Отправить личное сообщение для Cake_Eater Найти все сообщения от Cake_Eater
  № 1  
Ответить с цитированием
Cake_Eater

Регистрация: Mar 2016
Сообщений: 2
По умолчанию Как правильно написать Hello World?

Недавно решил написать Hello World, и пришел к довольно сложному решению.
Я явно что-то сделал не так. Посоветуйте что можно исправить

Код AS3:
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
		}
	}
}
Посоветуйте альтернативу по-проще пожалуйста

Старый 20.06.2016, 10:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Неплохо
Я уж подумал серьезно кто-то про hello world спрашивает)
__________________
Ко мне можно и нужно обращаться на ты)

Старый 27.06.2016, 20:17
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 3  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
кидаем тект,делаем динамическим
даем имя например - vvod
Код AS3:
vvod.text="1111"
все,в кавычках что хочем

Старый 27.06.2016, 21:13
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
тут видимо стоит задача написать без использования текстфилдов и шрифотв.2 ТС - а зачем последний ряд у всех букв с нулями?

Старый 27.06.2016, 22:32
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 5  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Нет, ну, вариант Hello World и правда упрощённый - нет всяких TextField, Font, и подобной мутни.
Так что, упростить ещё более можно только найдя места в шуме, которые соответствуют последовательностям в массивах и заменить массив на доставание значений из шума.(ох, я мастер прятать реализацию)
__________________
There is no thing in this world that is not simple.

Старый 28.06.2016, 07:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
а зачем последний ряд у всех букв с нулями?
Как я понял, для пробела
__________________
Ко мне можно и нужно обращаться на ты)

Старый 28.06.2016, 11:23
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Одно из упрощенй: развернуть каждый одномерный массив буквы в двумерный, чтобы на выходе слово представляло собой пиксели в трехмерном массиве: [буква][x][y]. Тогда свитч заменится на более удобочитаемую и поддерживаемую конструкцию:
Код AS3:
case "H" :
    pixels.push([
         [1,1,1,1,1],
         [0,0,1,0,0],
         [1,1,1,1,1],
         [0,0,0,0,0]
    );
    break;
__________________
тут я

Старый 02.07.2016, 01:12
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Упрощение(без использования двумерного массива)
Код AS3:
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 минут
Упрощённый вариант функции прохождения по битам.
Код AS3:
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]; 
		for(var j:int = 7; j > -1; j--)
			f(cntr,0x01 & (curr >> j)), cntr++;
	}
}
__________________
There is no thing in this world that is not simple.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.