Jawa / Говнокод #16409 Ссылка на оригинал

0

  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 Lure Of Chaos, (Updated )

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

        • 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 (как в руби <=>)?
            Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8