Если вы используете одно и то же число по вертикали и горизонтали практически не квадратных квадратов, то результат будет не квадратным. То же самое относится и к скорости, если вы перемещаете одинаковое количество шагов в секунду по горизонтали и вертикали, но длина шага отличается, поскольку это ширина и высота неквадратной плитки, тогда воспринимаемая скорость будет разные.
Обратите внимание, что ширина двух символов по горизонтали намного ближе к высоте одного символа по вертикали, чем ширина одного символа.
Таким образом, вместо того, чтобы, например, представлять эту ситуацию (квадрат со змеей) с таким же количеством символов по горизонтали и по вертикали
##########
# #
# ooO #
# o #
# o #
# o #
# o #
# #
# #
##########
Попробуйте это для той же ситуации, то есть вставьте горизонтальный пробел после каждого непустого символа, в результате чего число символов по горизонтали вдвое больше, чем вертикально. Их гораздо более длинная высота, чем ширина, и тот факт, что верхняя половина большинства печатных символов в основном пуста, приводит к равномерному, гораздо более скварированному впечатлению sh.
# # # # # # # # # #
# #
# o o O #
# o #
# o #
# o #
# o #
# #
# #
# # # # # # # # # #
Таким образом, вы получаете гораздо больше сквари sh впечатление, а также некоторая постоянная скорость по горизонтали и вертикали.
Если вам не нравятся пропуски, которые неизбежны по вертикали и преднамеренно по горизонтали, то нормальная терминальная среда не подходит для вашей игры и вам нужно перейти в графическую среду c, которая позволяет вам с точностью до пикселя контролировать результат.