Загадки
Запись от Inet_PC размещена 17.03.2014 в 22:22
Обновил(-а) Inet_PC 20.03.2014 в 14:43 (Добавлено еще 3 загадки)
Обновил(-а) Inet_PC 20.03.2014 в 14:43 (Добавлено еще 3 загадки)
Загадка №1:
Есть класс TestBase:
package { public class TestBase { public function TestBase() { super(); } public function foo(a:int, b:int):void { trace("TestBase#foo()"); } } }
Сигнатуру метода менять нельзя!
Загадка №2:
private function foo():void { // какой-то код здесь // использовать ключевое слова var нельзя player = null; } foo();
Загадка №3:
Имеется класс:
package { public class TestClass { public function TestClass() { super(); } public function foo():void { trace("foo"); } public function change(value:Function):void { } } }
foo
--> foo <--
public function Main() { var test:TestClass = new TestClass(); test.foo();//foo test.change(myTrace); test.foo();//--> foo <-- } private function myTrace(...args):void { args.push ("<--"); args.unshift("-->"); trace.apply(null, args); }
- менять код класса Main нельзя;
- использовать var, const, dynamic, prototype нельзя;
- менять метод foo нельзя;
- наследоваться нельзя.
Загадка №4:
Необходимо, не меняя значения переменных, изменить результат их сравнения.
var a:Point = new Point(5); var b:Point = new Point(1); trace(a, "<", b, "=", a < b);//(x=5, y=0) < (x=1, y=0) = false // какой-то код здесь trace(a, "<", b, "=", a < b);//(x=5, y=0) < (x=1, y=0) = true
Необходимо вызвать метод foo, так, чтобы в трейс вывелось: «foo» и «after foo»:
private function foo(...args):void { trace("foo"); throw new Error(); } // здесь нужно как-то вызвать foo trace("after foo");
-должно работать как в debug, так и в release FP;
-изменять метод foo нельзя;
-никаких окон с ошибками не должно быть.
Загадка №6:
Имеется класс Color, с перечислением цветов (фактически Enum):
public class Color { public static const RED:Color = new Color(0xFF0000);//it's OK public static const GREEN:Color = new Color(0x00FF00);//it's OK public static const RANDOM:Color = new Color(Math.random() * 0xFFFFFF);//it's OK // остальные объявления цветов private var _value:uint; public function Color(value:uint) { super(); _value = value; // какой-то код здесь } public function toString():String { return _value.toString(); } }
создать еще один экземпляр класса Color:
trace(Color.RED, Color.GREEN, Color.RANDOM);//0xFF0000 0x00FF00 0xF67D53 trace(new Color(Math.random() * 0xFFFFFF));//здесь должно упасть в run-time
-использовать динамику нельзя.
Некоторые задачи имеют несколько решений. Так же некоторые задачи используют недокументированные
возможности FP. Используйте их (лучше не используйте) на свой страх и риск. Вообщем это все just for fun!
Всего комментариев 80
Комментарии
18.03.2014 19:03 | |
18.03.2014 19:34 | |
СлаваRa, именно)
|
|
Обновил(-а) Inet_PC 20.03.2014 в 09:09
|
18.03.2014 23:21 | |
Читеры
|
19.03.2014 11:07 | |
Класс, спасибо!
|
20.03.2014 02:22 | |
Вторую не понял, куда код пишем?
|
20.03.2014 04:07 | |
20.03.2014 09:06 | |
etc, к сожалению решение неверное, использовать ключевое слово var нельзя!
in4core, именно! |
20.03.2014 11:01 | |
@etc, я упустил момент с const, его использовать тоже нельзя, согласитесь, иначе слишком простое задание получается.
|
20.03.2014 11:52 | |
20.03.2014 12:19 | |
ChuwY, решение засчитывается!
etc, именно, решение засчитано! Но эту задачу можно решить и другим путем, не используя динамические объекты! Возможно Ваш хардкор вариант подойдет? |
20.03.2014 12:37 | |
ChuwY, решение правильное, но оно аналогично решению etc, так как использует динамический объект, попробуйте решить без использования динамических объектов.
|
20.03.2014 12:39 | |
Мой хардкор вариант тоже динамику использует.
Щас подумаем над вариантом без динамики. |
20.03.2014 14:06 | |
20.03.2014 14:21 | |
20.03.2014 14:27 | |
20.03.2014 14:33 | |
@in4core, ты кстати с многоножкой foo вообще вызываешь или нет?
|
20.03.2014 15:49 | |
Ну и задача от меня:
package { /** * @author etc * @version 1.0 * @playerversion Flash 10 * @langversion 3.0 * @date Mar 20, 2014 */ public class SomeClass { //-------------------------------------------------------------------------- // // Class constants // //-------------------------------------------------------------------------- public static const TEST:String = 'test'; //-------------------------------------------------------------------------- // // Class methods // //-------------------------------------------------------------------------- public static function test():void { // Код только здесь trace(x.TEST); // test } //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- public function SomeClass() { super(); } } } |
|
Обновил(-а) etc 20.03.2014 в 16:49
|
20.03.2014 16:10 | |
Цитата:
Задача недостаточно хорошо поставлена, не указана среда выполнения и допускается ли использовать дебажные методы.
|
20.03.2014 16:23 | |
Ну раз разрешены, то можно в Flash IDE запустить в режиме Debug:
(в первом кадре) |
20.03.2014 16:24 | |
in4core, запускается как раз SomeClass.test(); Нельзя внутри test() писать SomeClass в каком-либо виде.
Трейс там должен выводить значение константы TEST. |
20.03.2014 16:32 | |
etc - с моей задачей - да , все ок молодцом. Но с вашей, я опять недопонимаю , если я напишу просто trace(TEST) разве это не будет удовлетворять вашим условиям?
|
20.03.2014 16:49 | |
in4core, поправил чутка. Короче задача сводится к тому чтобы в x получить ссылку на SomeClass
|
20.03.2014 19:20 | |
20.03.2014 19:32 | |
Конечно не пойдёт, SomeClass явно в коде указан.
|
20.03.2014 20:10 | |
20.03.2014 20:12 | |
Можно и так, но есть вариант без этого. Но таки да, меджик.
in4core, посмотрю попозже. |
20.03.2014 20:21 | |
Обновил(-а) rumc 20.03.2014 в 21:32
|
20.03.2014 20:30 | |
Цитата:
in4core, посмотрю попозже.
|
20.03.2014 20:36 | |
Inet_PC, а откуда в статичном методе доступ к prototype?
|
20.03.2014 21:04 | |
Да кстати это феил. как то неусмотрели. arguments.callee.prototype.constructor тоже не взлетит.
|
20.03.2014 21:38 | |
Ага, не работает prototype. Ещё варианты?
|
20.03.2014 21:42 | |
etc а вроде уже ответили. с дескрайбТайп
|
20.03.2014 21:52 | |
Да я видел, принимается. Есть ещё вариант, похожий, но без функции.
|
20.03.2014 22:19 | |
Цитата:
Inet_PC, а откуда в статичном методе доступ к prototype?
Цитата:
A reference to the prototype object of a class or function object. The prototype property is automatically created and attached to any class or function object that you create. This property is static in that it is specific to the class or function that you create. For example, if you create a class, the value of the prototype property is shared by all instances of the class and is accessible only as a class property. Instances of your class cannot directly access the prototype property.
Цитата:
Ага, не работает prototype. Ещё варианты?
|
|
Обновил(-а) Inet_PC 21.03.2014 в 22:50
|
21.03.2014 02:56 | |
etc - ну так что, сдаешься по моей задаче? 1:1 или поборешься?
|
21.03.2014 14:15 | |
Нет времени сейчас, потом.
|
Последние записи от Inet_PC
- Загадки (17.03.2014)