Просто найденный Легкий Бот . Программируйте свой робот, чтобы переместить и выполнить задачи завершить загадку. Даже включает подпрограммы. Программируйте бота путем перетаскивания мозаик в слоты. Игра очень полируется.
Обновление Lightbot является теперь новой версией игры и имеет версии, специально предназначенные для возрастов детей 4-8 или возрастов 9 + (без верхнего предела) и также вид функций если
экран lightbot 1 http://www.lostateminor.com/wp-content/uploads/2008/10/light-bot.jpg
Я не знаю, чего вы действительно хотите, но нет проблем с сохранением его в VARCHAR с кодировкой utf-8
UTF-8 0xE282AC
UCS-16 0x20AC
ISO-8859-15 (latin-9) 0xA4
Хотя я также рекомендую UTF-8, я хотел добавить некоторые пояснения, почему у вас могут возникнуть проблемы с сохранением символа евро в других кодировках.
Символ евро был добавлен как патч в существующие устаревшие кодировки Windows и Mac около 1997 года. В Windows-1252, набор символов Windows latin-1, выбранная кодовая точка была 0x80, а MacRoman выбрал другое расположение. Это все нормально, но многие приложения указывают кодировку iso-8859-1 в своей схеме базы данных MySql для текста Latin 1-General или отмечают свой HTML-вывод в веб-приложениях с помощью iso-8859-1. Насколько мне известно, стандарт ISO-8859-1 никогда официально не обновлялся для сопоставления кода символа евро. Кодировка latin1, которая поддерживает евро, - это редко используемая кодировка iso-8859-15.
Итак, если вы используете кодировку iso-8859-1 в своей схеме, у вас будет undefined,
.1. В Perl конструктор - это просто подпрограмма с именем new.
Да, по соглашению new
является конструктором. Он также может выполнять инициализацию или нет. new
должен возвращать объект в случае успеха или выдавать исключение ( die
/ croak
), если произошла ошибка, препятствующая созданию объекта.
Вы можете назвать ваш конструктор может иметь любое количество конструкторов и даже создавать объекты благословения в любом пространстве имен, которое вы пожелаете (не то чтобы это хорошая идея).
.2. Я вообще не понимаю, что делает my $ type = shift;
, но я всегда это вижу. Мне он нужен?
shift
без аргументов берет аргумент из заголовка @_
и присваивает его $ type
. -> Оператор
передает инициатор (левая часть) в качестве первого аргумента подпрограммы. Итак, эта строка получает имя класса из списка аргументов. И да, вам это нужно.
.3. Как массив входных данных становится хешем % params
? my% params = @_;
Назначение хешу выполняется в контексте списка, при этом пары элементов списка сгруппированы в пары ключ / значение. Итак, % foo = 1, 2, 3, 4;
создает такой хеш, что $ foo {1} == 2
и $ foo {3} == 4
. Обычно это делается для создания именованных параметров для подпрограммы. Если подпрограмме передано нечетное количество аргументов, будет сгенерировано предупреждение, если предупреждения включены.
.4. Что означает 'my $ self = {}; `do?
Эта строка создает анонимную ссылку на хэш и присваивает ее переменной с лексической областью видимости $ self
. Ссылка на хэш будет хранить данные для объекта. Обычно ключи в хэше имеют однозначное соответствие атрибутам объекта. Итак, если у класса Foo есть атрибуты 'size' и 'color', если вы проверите содержимое объекта Foo, вы увидите что-то вроде $ foo = {size => 'm', color => 'black'} ;
.
.5. Учитывая $ self -> {'High'} = $ params {'High'};
откуда берется $ params {'High'}
?
Этот код основан на аргументы переданы в новый
. Если новый
назывался как Foo-> new (High => 46)
, тогда хеш, созданный в соответствии с вопросом 3, будет иметь значение для ключа High
(46). В этом случае это эквивалентно $ self -> {High} = 46
. Но если метод вызывается как Foo-> new ()
, то значение не будет доступно, и у нас будет $ self -> {High} = undef
.
.6 . Что делает bless
?
bless
берет ссылку и связывает ее с конкретным пакетом, чтобы вы могли использовать ее для вызовов методов. С одним аргументом ссылка ассоциируется с текущим пакетом. С двумя аргументами второй аргумент указывает пакет, с которым нужно связать ссылку. Лучше всегда использовать форму с двумя аргументами, чтобы ваши конструкторы могли быть унаследованы подклассом и по-прежнему функционировали должным образом.
Наконец, я '
Если таблица или столбец настроены на использование кодировки utf8, что-то вроде этого работает нормально:
insert into test values (1, '€ <- euro');
Кроме того, добавьте это в строку подключения в клиенте чтобы убедиться, что соединение использует UTF8:
CharSet=UTF8;
Таблица, которую я использовал для тестирования, следующая:
CREATE TABLE `g`.`test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(10) character set utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8