1. Java / Говнокод #16409

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public Move move(final Board board) {
    	for (final Move move : Move.values()) {
    		if ((move.getDx() == Math.signum(this.target.x - board.getCx()))
    			&& (move.getDy() == Math.signum(this.target.y - board.getCy()))) {
    			return move;
    		}
    	}
    	return null;
    }

    выбираем направление движения. как? перебором!

    Запостил: Lure Of Chaos, 23 Июля 2014

    Комментарии (11) RSS

    • Move хранит в себе массив Move ? шшшикарно
      Ответить
      • это java enum, так мы получаем список
        Ответить
        • Move тут Enum? Херня какая то
          Ответить
          • enum Move {
            	UP(0, -1), DOWN(0, 1), LEFT(-1, 0), RIGHT(1, 0);
            	private int dx;
            	private int dy;
            
            	private Move(final int dx, final int dy) {
            		this.dx = dx;
            		this.dy = dy;
            	}
            
            	public int getDx() {
            		return this.dx;
            	}
            
            	public int getDy() {
            		return this.dy;
            	}
            }
            ну вот примерно такой
            values() возвращает UP, DOWN, LEFT, RIGHT
            Ответить
            • То бишь должно быть
              int vertical =  Math.signum(this.target.y - board.getCy());
              return vertical==0?new Move(Math.signum(this.target.x - board.getCx()),0): new Move(0,vertical)


              Ну или у меня крыша поехала от функторов

              В жабе есть компораторы, которые возвращают -1,0,1 (как в руби <=>)?
              Ответить
              • >В жабе есть компораторы, которые возвращают -1,0,1 (как в руби <=>)?
                Тип Comporator.
                http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
                Ответить
                • компоратор тут уже проимплементирован, и сортирует в порядке объявления, блядь.
                  Ответить
                  • Очевидно что в енум реализует компоратор, но это был ответ на его вопрос.
                    Ответить
                • Спс, то, о чем я и спрашивал
                  Ответить
              • неа, в жабе низя new Move
                Ответить
                • а, в жабе у енума могут быть методы. Вот оно че. В шарпике то нет. Ну тогда говно в методе - это следствие говна в енуме
                  Ответить

    Добавить комментарий