Для того чтобы игра не продолжалась бесконечно, вы должны условиться о числе линий, которые нужно пересечь (например 100). Если вы достигли этого, компьютер прославляет вас так, как вы того заслуживаете, и указывает вашу среднюю скорость.
Эту игру программировать не очень трудно, если не считать того, что нужно оказаться способным корректно дозировать число грузовиков, и что нельзя позволять дороге часто делать зигзаги, а также выходить за пределы экрана. Но здесь нет ничего, с чем вы не могли бы справиться.
Собственно игра оказывается гораздо труднее, чем можно было себе представить. Вы, конечно, можете затормозить до скорости 1. Вы оказались на краю. Но ничего смешного нет. Вы можете оказаться в самом рискованном положении, вы терпите удар за ударом. Благодаря воспроизводимым непредсказуемым последовательностям вы можете много раз возобновлять один и тот же пробег. Впрочем, здесь бывает трудно вспомнить, что же происходит на шестидесятом километре… Вы можете также попробовать маршрут, а затем предложить его вашим друзьям. И если вы на их глазах вылетели с трассы, но вовсе не факт, что они смогут на ней удержаться. Итак, желаю успеха!
?** Игра 12.Твоя песенка спета, любопытный!
Идея не нова, да и реализация поступила в рыночную продажу. Но в этой игре возникают некоторые маленькие задачи по программированию, И я предлагаю вам красивый план их реализации.. К тому же это позволит ввести вас в игры с числами.
Вы знаете телевизионную игру: вытащить случайным образом 6 шашек среди 24 fобразованных следующим образом:
двойной набор из 10 шашек с числами от 1 до 10;
четыре шашки с числами 25, 50, 75, 100.
Случайным образом выбирается трехзначное целое число (первая цифра которого — не нуль, так что оно содержится между 100 и 999, включая границы). Задача состоит в том, чтобы менее чем за 45 с обнаружить последовательность операций, использующих только значения шести выбранных шашек, причем каждую не более одного раза, и соединить их знаками + − × / (целочисленное деление разрешается только в тех случаях, когда оно выполняется нацело, без остатка).
Вот пример, который я получил с помощью своей программы.
Шашки: 4 4 7 8 9 100
Число, которое нужно получить: 380
В течение 45 с, которые я выделил своему компьютеру, я получил следующее решение:
4 × 100 = 400
9 + 8 = 17
7 + 17 = 24
24 − 4 = 20
400 − 20 = 380
Это решение использует 6 шашек. Компьютер сообщает еще через 45 с:
4 × 9 = 36
4 + 36 = 40
7 × 40 = 280
280 + 100 = 380
Это решение не использует шашки 8.
Не пытайтесь сделать эту программу, следуя методу игры: вытащить случайным образом 6 шашек, вытащить случайным образом число, которое нужно получить, сообщить и то, и другое и в продолжение следующих 45 в искать нужную комбинацию. У вас нет никаких шансов, чтобы это произошло (см. Головоломку 28). Действуйте лучше следующим образом.
Выберите случайным образом 6 шашек и их комбинацию. Если результат не лежит в промежутке от 100 до 999, — повторите выбор. Если результат допустим, то выведите сообщение, какие 6 шашек участвуют, расположив их, например, в возрастающем порядке, чтобы не было понятно, в каком порядке они были использованы; сообщите искомое число, затем сообщите оставшиеся секунды и, когда 45 с протекут, сообщите результат. Здесь есть неудобство: всегда есть хотя бы одно точное решение. И при том, что не приходится особенно обольщаться, то, что вы достигнете с его помощью, вы, может быть, сможете сделать по-другому только приближенно.
Внимание: случайным образом выбирать комбинацию на самом деле вовсе не всегда так просто, как в приведенном примере. Не забывайте, что вы можете использовать и не все шашки. Найдите способ получать ответ. Я не вполне удовлетворен своим собственным. Я предпочел бы знать и другие способы это сделать…
?** Игра 13.Две лисы и 20 кур.
Когда я был молод, мы играли в эту игру на свежем воздухе, используя маленькие булыжники в качестве кур и два булыжника побольше для лис. Мы расчерчивали эту игру мелом на асфальте или палкой на утрамбованной земле.
Вот как я представляю эту игру на экране своего компьютера. Буквы представляют кур, звездочки — две лисы. Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы также могут перемещаться только на один шаг, но также и вверх — как и вниз, влево и вправо. Лиса может съесть курицу — как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу на свободное поле и берет ее. При этом трофеи складываются. На рис. 9 одна лиса может съесть курицу b , тогда как вторая лиса может съесть за один ход кур e и f . Лисы всегда обязаны есть и, когда у них есть выбор — как на рис. 9, — они обязаны осуществить наиболее длинное поедание. Если два приема пищи имеют одинаковую длину, осуществляется один из них — по выбору лисы.
Читать дальше