Главная страница
Навигация по странице:

  • В ЭТОЙ ГЛАВЕ РАССМАТРИВАЮТСЯ СЛЕДУЮЩИЕ ТЕМЫ

  • Рис. 13.2. Сочетание нескольких колец позволяет увидеть, где может быть спрятан сундукПример запуска игры «Охотник за сокровищами»

  • Учим Python, делая крутые игры 2018. Invent your owncomputer gameswith python


    Скачать 6.56 Mb.
    НазваниеInvent your owncomputer gameswith python
    Дата10.12.2022
    Размер6.56 Mb.
    Формат файлаpdf
    Имя файлаУчим Python, делая крутые игры 2018.pdf
    ТипДокументы
    #837554
    страница21 из 39
    1   ...   17   18   19   20   21   22   23   24   ...   39

    В ЭТОЙ ГЛАВЕ РАССМАТРИВАЮТСЯ СЛЕДУЮЩИЕ ТЕМЫ:
    • Структуры данных
    • Теорема
    Пифагора
    • Метод списка remove()
    • Строковый метод isdigit()
    • Функция sys.exit()

    218
    Глава 13
    Нужно найти и поднять на палубу 3 сундука, игрок может использовать только 20 гидролокаторов для их обнаружения. Представьте, что не видите сундук с сокровищами на рис. 13.1. Поскольку гидролокаторы могут опреде- лять только расстояние до сундука, но не его направление, сокровище может быть в любой позиции на кольце вокруг гидролокатора.
    Рис. 13.1.
    Кольцо гидролокатора касается (спрятанного) сундука с сокровищами
    Но несколько таких устройств, работающих сообща, могут сузить об- ласть поиска сундука до точных координат там, где кольца пересекаются
    (рис. 13.2).
    Рис. 13.2.
    Сочетание нескольких колец позволяет увидеть, где может быть спрятан сундук
    Пример запуска игры
    «Охотник за сокровищами»
    Ниже показано, что видит пользователь, когда запускается программа
    «Охотник за сокровищами» .
    Текст, который вводит игрок, выделен полужирным шрифтом.

    Игра «Охотник за сокровищами»
    219
    Охотник за сокровищами!
    Показать инструктаж? (да/нет)
    нет
    1 2 3 4 5 012345678901234567890123456789012345678901234567890123456789 0

    ``````````````````````````````` 0 1 ```````````````````````````` 1 2 ``````````````````````````````````` 2 3 ````````````````````````````````` 3 4 ```````````````````````` 4 5 ````````````````````````````````````` 5 6 ````````````````````````````````` 6 7 `````````````````````````````` 7 8 ``````````````````````````````````` 8 9 ```````````````````````````````` 9 10 ```````````````````````````` 10 11 ````````````````````````````````` 11 12 ``````````````````````````` 12 13 `````````````````````````````` 13 14 ````````````````````````````````````` 14 012345678901234567890123456789012345678901234567890123456789 1 2 3 4 5
    Осталось гидролокаторов: 20. Осталось сундуков с сокровищами: 3.
    Где следует опустить гидролокатор? (координаты: 0-59 0-14) (или введите "выход")
    25 5
    1 2 3 4 5 012345678901234567890123456789012345678901234567890123456789 0 ``````````````````````````````` 0 1 ```````````````````````````` 1 2 ``````````````````````````````````` 2 3 ````````````````````````````````` 3 4 ```````````````````````` 4 5 ```````````````5````````````````````` 5 6 ````````````````````````````````` 6 7 `````````````````````````````` 7 8 ``````````````````````````````````` 8 9 ```````````````````````````````` 9 10 ```````````````````````````` 10 11 ````````````````````````````````` 11 12 ``````````````````````````` 12 13 `````````````````````````````` 13 14 ````````````````````````````````````` 14

    220
    Глава 13 012345678901234567890123456789012345678901234567890123456789 1 2 3 4 5
    Сундук с сокровищами обнаружен на расстоянии 9 от гидролокатора.
    Осталось гидролокаторов: 19. Осталось сундуков с сокровищами: 3.
    Где следует опустить гидролокатор? (координаты: 0-59 0-14) (или введите "выход")
    30 5
    1 2 3 4 5 012345678901234567890123456789012345678901234567890123456789 0 ``````````````````````````````` 0 1 ```````````````````````````` 1 2 ``````````````````````````````````` 2 3 ````````````````````````````````` 3 4 ```````````````````````` 4 5 ```````````````5```3````````````````` 5 6 ````````````````````````````````` 6 7 `````````````````````````````` 7 8 ``````````````````````````````````` 8 9 ```````````````````````````````` 9 10 ```````````````````````````` 10 11 ````````````````````````````````` 11 12 ``````````````````````````` 12 13 `````````````````````````````` 13 14 ````````````````````````````````````` 14 012345678901234567890123456789012345678901234567890123456789 1 2 3 4 5
    Гидролокатор ничего не обнаружил. Все сундуки с сокровищами вне пределов досягаемости.
    Осталось гидролокаторов: 18. Осталось сундуков с сокровищами: 3.
    Где следует опустить гидролокатор? (координаты: 0-59 0-14) (или введите "выход")
    25 10
    1 2 3 4 5 012345678901234567890123456789012345678901234567890123456789 0 ``````````````````````````````` 0 1 ```````````````````````````` 1 2 ``````````````````````````````````` 2 3 ````````````````````````````````` 3 4 ```````````````````````` 4 5 ```````````````5```3````````````````` 5 6 ````````````````````````````````` 6 7 `````````````````````````````` 7 8 ``````````````````````````````````` 8 9 ```````````````````````````````` 9 10 ``````````4`````````````````` 10 11 ````````````````````````````````` 11 12 ``````````````````````````` 12 13 `````````````````````````````` 13 14 ````````````````````````````````````` 14

    Игра «Охотник за сокровищами»
    221
    012345678901234567890123456789012345678901234567890123456789 1 2 3 4 5
    Сундук с сокровищами обнаружен на расстоянии 8 от гидролокатора.
    Осталось гидролокаторов: 17. Осталось сундуков с сокровищами: 3.
    Где следует опустить гидролокатор? (координаты: 0-59 0-14) (или введите "выход")
    29 8
    1 2 3 4 5 012345678901234567890123456789012345678901234567890123456789 0 ``````````````````````````````` 0 1 ```````````````````````````` 1 2 ``````````````````````````````````` 2 3 ````````````````````````````````` 3 4 ```````````````````````` 4 5 ```````````````X```X````````````````` 5 6 ````````````````````````````````` 6 7 `````````````````````````````` 7 8 ````````````````X`````````````````` 8 9 ```````````````````````````````` 9 10 ``````````X`````````````````` 10 11 ````````````````````````````````` 11 12 ``````````````````````````` 12 13 `````````````````````````````` 13 14 ````````````````````````````````````` 14 012345678901234567890123456789012345678901234567890123456789 1 2 3 4 5
    Вы нашли сундук с сокровищами на затонувшем судне!
    Осталось гидролокаторов: 16. Осталось сундуков с сокровищами: 2.
    Где следует опустить гидролокатор? (координаты: 0-59 0-14) (или введите "выход")
    --
    пропуск--

    222
    Глава 13
    Исходный код игры «Охотник за сокровищами»
    В редакторе файлов создайте новый файл, вы- брав команду меню File
    New File (Файл ⇒ Но- вый файл). В открывшемся окне введите приве- денный ниже исходный код и сохраните файл под именем sonar.py. Затем нажмите клавишу F5 и запу- стите программу. Если при выполнении программы возникают ошибки, сравните код, который вы на- брали, с оригинальным кодом с помощью онлайн- инструмента на сайте inventwithpython.com/diff/.
    sonar.py
    1. # Охотник за сокровищами
    2.
    3. import random
    4. import sys
    5. import math
    6.
    7. def getNewBoard():
    8. # Создать структуру данных нового игрового поля размером 60х15.
    9. board = []
    10. for x in range(60): # Главный список из 60 списков.
    11. board.append([])
    12. for y in range(15): # Каждый список в главном списке содержит 15 односимвольных строк.
    13. # Для создания океана используем разные символы, чтобы сделать его реалистичнее.
    14. if random.randint(0, 1) == 0:
    15. board[x].append('')
    16. else:
    17. board[x].append('`')
    18. return board
    19.
    20. def drawBoard(board):
    21. # Изобразить структуру данных игрового поля.
    22. tensDigitsLine = ' ' # Создать место для чисел вниз по левой стороне поля.
    23. for i in range(1, 6):
    24. tensDigitsLine += (' ' * 9) + str(i)
    25.
    26. # Вывести числа в верхней части поля.
    27. print(tensDigitsLine)
    28. print(' ' + ('0123456789' * 6))
    Make sure you’re using Python 3, not Python 2!
    УБЕ ДИТЕСЬ,
    ЧТО ИСПО ЛЬЗУЕТЕ
    PY THON 3,
    А НЕ PY THON 2!

    Игра «Охотник за сокровищами»
    1   ...   17   18   19   20   21   22   23   24   ...   39


    написать администратору сайта