вот я не пойму, как это вообще возможно:
Один раз я проиграл из-за того,
что нажал кнопку, обратную
направлению змейки. Хотя по
логике на эту клавишу не
должно реагировать.вы поймете, если я выложу сорец.
Реализованно так:
у змеи есть 4 константы направления и есть переменная принимающая значения этих 4 констант.
В змее есть метод snakeMoving() который смотрит чему равна переменная направления, и в соответствии с этим передвигает змею вызывает один из четырех методов передвижения. За тем есть в ядре метод keyListner который проверяет какие клавиши нажаты. В нем, если нажата клавиша вверх, в змее пеменной направления присваивается направление соответствующее клавише, при условии что направление змеи не равно противоположному.