Я был пойман играть Slither во время класса. Мое наказание заключалось в том, чтобы запрограммировать игру в малой базовой.если заявления странные поведение
Теперь у меня есть ряд шариков, и если первый шар перекатывается над маленькими точками. Точки исчезнут, и вы получите очко. Условное утверждение, что проверяет, если большой шар находится на маленькой точке это:
If (foodX[x] - SnakeHeadX) < precision And (foodX[x] - SnakeHeadX) > -precision And (foodY[x] - SnakeHeadY) < precision And (foodY[x] - SnakeHeadY) > -precision Then
Это, если утверждение в for loop
For x = 1 To 500
Так что я получаю мои очки, но когда большой бал его х значение и значение y меньше, чем 20. Я также получаю очки. Что-то, чего не должно быть.
Это сценарий (The @ является большим шаром)
---------------------------------------------------------------------------------------------
|@ *
|
| *
| *
| * *
|
| *
---------------------------------------------------------------------------------------------
Как вы можете увидеть большой шар не касается маленьких точек. Но я набираю очки. Почему это правда? И как мне это исправить?
Если вы упростите это на 'If Math.Abs (foodX [x] - SnakeHeadX) <точность и математика. (FoodY [x] - SnakeHeadY) <точность Затем', это помогает? Вы не указали ценность или цель «точности», которая может иметь значение. –
Прецизионность - это своего рода трезол. Если вы сделаете это больше, большой шар не должен приближаться к точке, чтобы он исчез. –