LINUX.ORG.RU
ФорумGames

Игры для будущих программистов

 ,


3

2

https://blockly-games.appspot.com
наткнулся на вот такой вот сайт-игру, интересно, и познавательно, к своему стыду застрял на лабиринте 10).
Наслаждайтесь и детям свои покажите (и не только детям)

Ответ на: комментарий от alegz

10 строк, впечатляет, чай с пирожком пока ваш, думаю короче не будет, а как вам вообще данный сайт с игрой? ваши впечатления

novichek01
() автор топика
Ответ на: комментарий от novichek01

Ну, ничо так, интересно. Хотя под Оперой 12 не пошёл, пришлось Хромом заходить. И третья или четвертая, что ли, игра с птицей как-то повисла странно — подсказка вылезла и не убиралась. Дропнул пока.

А вообще полно ж такого рода игрушек. Из онлайновых — вот, например.

alegz ★★★★
()
Ответ на: комментарий от alegz

я в вк разговаривал с разработчиком подобной игры (walking-bot), может он и делал то что по ссылке у тебя

novichek01
() автор топика
Ответ на: комментарий от Tihon_Asdop
while (notDone()) {
  if (isPathLeft()) {
    turnLeft();
    if (isPathForward()) {
      moveForward();
    }
  } else {
    if (isPathForward()) {
      moveForward();
    } else {
      turnRight();
    }
  }
}

Может и не короче, но зато проходит 10-й уровень правильно и без лишних метаний.

beastie ★★★★★
()
Ответ на: комментарий от mr_fff

если

иначе

if (getY() > 20) {

heading(270);

} else {

heading(180); - я тут почему то 90 сразу ставил (

}

novichek01
() автор топика
Ответ на: комментарий от beastie
if (isPathLeft()) {
    turnLeft();
    if (isPathForward()) {
      moveForward();
    }
  }

Ты же УЖЕ до поворота проверил, есть ли путь — нахрен проверять ещё раз? Закрывающихся дверей там нет.

alegz ★★★★
()

Так дольше идет, но 8 строк:

while (notDone()) {
  if (isPathLeft()) {
    turnLeft();
    moveForward();
  } else {
    turnRight();
  }
}

За 10 строк доходит до цели быстрее.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Ну, быстрее оно только из-за времени на поворот, путь-то тот же. Зато, если бы речь шла о хардварной реализации, в этой версии достаточно было бы только одного датчика слева — экономия.

Похоже, у нас есть победитель!

alegz ★★★★
()

Игры для будущих программистов
застрял на лабиринте

в corewar поиграй

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от alegz

достаточно было бы только одного датчика слева — экономия

Можно заодно и с одним «поворачивателем»:

while (notDone()) {
  if (isPathLeft()) {
    turnLeft();
    moveForward();
    turnLeft();
  }
  turnLeft();
}

mix_mix ★★★★★
()

далеко не первая далеко не последняя както сразу вспомнилась http://codecombat.com/

mm3 ★★★
()

чо там сложного ? делаем все три проверки и никуда он не денется

while (notDone()) {
  if (isPathLeft()) {
    turnLeft();
    moveForward();
  } else {
    if (isPathRight()) {
      turnRight();
    } else {
      if (isPathForward()) {
        moveForward();
      } else {
        turnRight();
        turnRight();
      }
    }
  }
}

anonymous
()
Ответ на: комментарий от alegz

Ну, быстрее оно только из-за времени на поворот, путь-то тот же.

Путь тот же, верно. Но количество шагов до цели большее из-за лишнего поворота.

andreyu ★★★★★
()
Ответ на: комментарий от alegz

Похоже, у нас есть победитель!

Где я могу получить приз? :)

andreyu ★★★★★
()

Строк много, зато прямо до цели.

while (notDone()) {
  if (isPathLeft()) {
    if (isPathForward()) {
      if (isPathRight()) {
        turnRight();
      } else {
        turnLeft();
      }
    } else {
      turnLeft();
    }
  } else {
    if (isPathRight()) {
      turnRight();
    }
  }
  moveForward();
}

anonymous
()

А я уж подумал, что тут боёв в памяти тред.

Myau ★★★★
()

Напоминает lightbot.

E ★★★
()

У меня получился такой вариант. Самый топорный, наверное, зато идёт прямо к цели:

while (notDone()) {
  if (isPathForward()) {
    if (isPathLeft()) {
      if (isPathRight()) {
        turnRight();
      } else {
        turnLeft();
      }
    }
  } else {
    if (isPathLeft()) {
      turnLeft();
    } else {
      turnRight();
    }
  }
  moveForward();
}

Interlace ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.