1. Список говнокодов пользователя fljot

    Всего: 6

  2. ActionScript / Говнокод #15539

    −127

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (itemsPossibleToStrike.length == 0)
    {
        e = _gameField.stageItemsGetters.getRandomFruit();
        while (_gameField.stageItemsGetters.getJellyOverItem(e) || e.kind == Fruits.HARVESTING_OR_COLLECTIBLE_FRUIT || e.kind == Fruits.BOMB || e.kind == Fruits.DRAGON_FRUIT || combo.indexOf(e) > -1 ||
                e == elementToBeTransformedToBomb || e == elementToBeTransformedToDragonFruit || e == richFruitsShouldBeAddedOver)
        {
            e = _gameField.stageItemsGetters.getRandomFruit();
        }
        itemsPossibleToStrike.push(e);
    }

    Match3, как вы понимаете.

    Описание: http://www.youtube.com/watch?v=Oqa9tKarkNA

    fljot, 20 Марта 2014

    Комментарии (5)
  3. Objective C / Говнокод #12093

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    - (void)addFavourite:(NSString *)path
    {    
        NSMutableArray *favourites;
        
        // Create an array if it’s not already there
        if (![[NSUserDefaults standardUserDefaults] objectForKey:@"Favourites"]) {
            favourites = [[[NSMutableArray alloc] init] autorelease];
        } else {
            favourites = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"Favourites"]];
        }
    
        // Check if already exists
        NSUInteger idx = [favourites indexOfObjectPassingTest: ^BOOL (id obj, NSUInteger idx, BOOL *stop) {
            return [obj isEqualToString:path];
        }];
        if (idx == NSNotFound) {
            [favourites addObject:path];
        }
        
        // ...
    }

    Мало того, что работа с "избранным" раскидана по всему приложению (часть кода в AppDelegate, часть в тулбаре(!), часть во вьюшке, где рисуется таблица избранных), так ещё и изобретаем свои алгоритмы поиска.

    fljot, 10 Ноября 2012

    Комментарии (9)
  4. ActionScript / Говнокод #9616

    −127

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    <fx:Script>
    <![CDATA[
    ...
    transformGesture.addEventListener(org.gestouch.events.TransformGestureEvent.GESTURE_TRANSFORM, onGesture);
    ...
    private function onGesture(e:Event):void
    {
    	var event:org.gestouch.events.TransformGestureEvent = e as org.gestouch.events.TransformGestureEvent;
    	...
    }
    
    ]]>
    </fx:Script>

    Вот приходится говнокодить... А что поделать, в mxml-е видите ли идёт конфликт с неиспользуемым и нигде не упомянутым родным TransformGestureEvent!

    fljot, 05 Марта 2012

    Комментарии (13)
  5. ActionScript / Говнокод #6443

    −106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    var dictionary:Dictionary = new Dictionary(true);
    var a:Sprite = new Sprite();
     
    dictionary[a] = new Object();
    trace(dictionary[a]); //Outputs [object Object]
     
    a = null; //Clear reference to the Sprite.
     
    trace(dictionary[a]); //Outputs undefined

    Человек в блоге объясняет прелесть Dictionary со слабыми ссылками.

    fljot, 21 Апреля 2011

    Комментарии (1)
  6. ActionScript / Говнокод #6098

    −103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    public static function trimExtraLineBreaks(string:String):String
    {
    	var trimmedString:String = string;
    
    	for(var i:int = 0; i < 20; i++)
    	{
    		trimmedString = trimmedString.replace(new RegExp("\r\r","g"),"\r");
    		trimmedString = trimmedString.replace(new RegExp("\r\n","g"),"\r");
    		trimmedString = trimmedString.replace(new RegExp("\n\n","g"),"\n");
    		trimmedString = trimmedString.replace(new RegExp("\n\r","g"),"\n");
    		trimmedString = trimmedString.replace(new RegExp("\n ","g"),"\n");
    		trimmedString = trimmedString.replace(new RegExp("\r ","g"),"\n");
    		trimmedString = trimmedString.replace(new RegExp(" \n","g"),"\n");
    		trimmedString = trimmedString.replace(new RegExp(" \r","g"),"\n");
    	}
    
    	return trimmedString;
    }

    Натолкнулся на просторах github'а во время поиска чего-то там... Ей богу сразу забыл, что искал.

    fljot, 27 Марта 2011

    Комментарии (17)
  7. ActionScript / Говнокод #5783

    −91

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    /**
     *  @private
     *  The exponent used in the easer function for the main part of the throw animation.
     *  NOTE: if you change this, you need to re-differentiate the easer
     *  function and use the resulting derivative calculation in createThrowMotionPath. 
     */
    private static const THROW_CURVE_EXPONENT:Number = 3.0;
    
    ...
    
    // Set the velocity for the next loop iteration.  Make sure it matches the actual velocity in effect when the
    // throw reaches the end of the list.
    //
    // The easer function we use for the throw is 1-((1-x)^3), the derivative of which is 3*x^2-6*x+3.
    // (I used http://www.numberempire.com/derivatives.php to differentiate the easer function).
    // Since the slope of a curve function at any point x (i.e. f(x)) is the value of the derivative at x (i.e. f'(x)),
    // we can use this to determine the velocity of the throw at the point it reached the beginning of the bounce.
    var x:Number = partialTime / effectTime;
    var y:Number = 3 * Math.pow(x, 2) - 6 * x + 3;

    Flex 4.5 Hero.
    Благо на работу кода это не сказывается, но всё-таки...

    Разработчикам: Вообще класс и непосредственно алгоритм touch/kinetic скролла там сделан отвратительно, но с некоторыми весьма хорошими фишками (отпределение скорости, например). Советую вам покопаться.

    fljot, 23 Февраля 2011

    Комментарии (6)