понедельник, 26 июля 2021 г.

Phoenix Point

 Когда я впервые услышал о Phoenix Point, я сразу же предзаказал игру в EGS, так как все поначалу выглядело впечатляюще. Трейлер показывал нам правильный X-com, лишенный его классических недостатков и от гейм-дизайнера X-com (нам часто придется прибегать к этому сравнению), имя которого никто не знает. Предзаказываю я очень редко, но кредит доверия к этой игре был очень высок. X-com я люблю, но серия после 2-ой части встала на паузу (о X-com: Chimera Squad еще не было слышно, а хороших тактик в жанре "пришельцы напали на землю" на удивление мало. 

В начале релиза игра смотрится очень дешево и отпугивает своими пластмассовыми изображениями героев на загрузочных экранах. Потом, к этому привыкаешь и после обучения тебя выкидывают на глобальную карту, где ты начинаешь свой крестовый поход против инопланетной заразы.

 Первые половину игры играть очень интересно и увлекательно и, если и есть какие-то недостатки, то ты не хочешь обращать на них внимания. Нововведения кажутся правильными и логичными, почему раньше этого никто не делал? Прицел с двумя радиусами, в первый который ты 100% попадаешь, а во второй 50%. Передвижение на не фиксированное количество клеток от очков действия. Все это радует и освежает привычные тактические бои, которые негласно копируют классический режим боя в x-com, а именно - два действия, либо одно большое; выстрел рассчитывается броском кубика (условно).

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

Осознание несовершенства и недоработок приходит после первой половины игры. Вначале они кажутся мелкими и неважными, потом раздражают тебя, а в конце они хоронят все твои позитивные мысли об игре.

Враги перестают удивлять, так как после 10 часов игры новые не появляются. То, что разработчики слегка изменили дизайн, сунули в лапу пушку, и дали приписку к имени пришельца в стиле "альфа, бета, гамма, лидер" не делает его новым! Так как он двигается так же и выглядит так же! Что в них нового? И вы до конца игры будете встречать одних и тех же опостылевших врагов.

Общий цветовой грязно-серо-желтый стиль игры и локаций, на которых будут происходить бои - утомляет и надоедает. Генерация уровней не удивляет - она стандартна и скучна.

Фракции - интересное введение. Вначале расскажут, какие цели они преследуют и потом предоставят выбор, присоединиться к одной, попытаться подружиться с несколькими или продолжать нести бремя в одиночку. Уровень доверия дает возможность получать их технологии, которые помогут нам в борьбе с пришельцами. Звучит все замечательно. К сожалению, вы не можете просмотреть ветки технологий всех фракций, чтобы выбрать, например, чье развитие вам больше всего нравится и чьи усовершенствования вы хотите получить в дальнейшем. 

Но, допустим, вы погуглили, и решили помогать определенной фракции. Готовьтесь выполнить несколько однотипных заданий для них (как правило - убей всех на карте), но этого будет мало для максимального доверия. Чтобы открыть доступ ко всем ветке технологий, нужно летать по всей карте и спасать их убежища от нашествий пандоранов (даже если защита базы явно выигрывает). Если не летать, то фракция обижается. и очки доверия снижаются. И тут мы переходим к ...

Беспощадному гринду. Если вы хотите, что бы у вас все было в шоколаде, готовьтесь к куче потраченного времени на десятки однотипных боев. Они всегда будут одинаковые, только цели разные: бой за ресурсы, бой за базу, бой за фракцию, бой за побочный квест (где в награду вам даются те же ресурсу, изредка что-нибудь интересное), бой по сюжетной линии (ничем не отличается кроме брифинга под сменяющиеся картинки). А так как враги не меняются и не обновляются, генерация уровней однообразна, цветовая гамма одинаковая - вторая половина игры это серая и не запоминающаяся каша из однотипных боев. Я думаю, здесь большинство игроков игру и забросило.

Конечно, можно не летать на вызовы фракции и не выполнять задания сбора припасов (благо, на точках разведки можно их порядочно найти, плюс торговля на обмен нужных ресурсов тут есть), но тогда вы рискуете остаться в конце игры технологически отсталым. Я расскажу на своем примере.

Помотавшись по миру, активировав почти 80 процентов баз, я порядком утомился уже помогать фракции и проводить разведки. Я решил идти только по сюжету, не отвлекаясь. "Добить" игру, так как ничего нового она мне уже не даст. А вот и нет. Висит у меня по сюжету задание "Уничтожьте цитадель". Что за цитадель, где она находится, непонятно. Игра никаких подсказок не дает. Гугл дает мне совет, цитадель может образоваться из логова, либо появиться сразу после того, как отобьешь базу от атаки пандоранов. Только я уже несколько раз отбивал атаки, и у меня появлялись только логова - цитадель ни разу. Пришлось ждать следующей атаки. К тому времени, у меня уже конец игры, все исследовал, и, после уничтожения цитадели, у меня должно открыться  финальное задание. Так как забил я на помощь фракциям, концовка выходит у меня только за себя отряд Феникса.

Нападения я дождался, только, после него открылось только логово. Отбив второе нападение (под конец игры они начинают пачками нападать, наверное, игра думает, что боев я маловато провел за игру), цитадель наконец то появилась. Отлично, думаю я, и загружаю туда отряд.

Первая попытка. Вторая. Третья - не получается никак. Каждый ход появляется по 4-5 новых пришельца, а тебе надо еще и махину колупать, у которой под 4к здоровья. Невозможно. Гуглю опять, смотрю как другие ребята уничтожают цитадель. Есть у них два отличия от меня: либо они уничтожали ее в начале и середины сюжетки,  либо у них прокачано оружие по максимуму через одну из фракций.

И тут я понимаю, что попал впросак. Пройти нынешним составом и текущим состоянием - невозможно. Игра мне не подсказала и не подстроилась под меня, она просто ставит меня перед фактом, причем сгенерировала этот случай она сама, попадись мне цитадель раньше, а не убер прокачанная как сейчас, я бы прошел бы ее, как и все остальное.

Единственный выход - загружаться намного раней, либо начинать сначала. Но заново играть 25 часов однотипных боев я уж точно не собираюсь. Поэтому придется оставить игру так, как есть - перед финишной прямой.

Ах да, финальное исследование: вирофагово оружие, которое мне должно помочь в финале, у меня они снайперские винтовки? У меня снайпер в каждой команде только один, остальным что делать? Ножиком панцири ковырять? 

Ну и недостатки игры по мелочи:

Вкладка сортировки оружия или брони по классам: если мне нужно выделить броню только для одного класса, мне надо снять выделения со всех классов, так как выделение включено для всех. А это много-много кликов.

Побочные задания - одно название. Абзац текста вначале миссии и в конце. Сводится к тому чтобы прилететь в точку - всех убить - награда ресурсы.

Почему когда пандораны атакуют у меня треть состава встречает их у трапа, остальные две трети в самой дальней комнате? Мне их приходится подтягивать весь бой к трапу. Почему они не вместе? Почему нельзя хотя бы расставить их?

Сами базы, которые надо активировать на карте - никакие дополнительные здания не надо строить, нужен только генератор и радар, для всего остального, есть основная база. Можно же было как то поинтересней задействовать базы раскиданные по миру.

Изготовление оружия или брони - я понимаю, почему исследование длиться так долго, но изготовление одного оружия несколькими заводами по 7 часов? Бред.

Когда я начинал играть, у очень удивлялся оценке игры на метакритике - 5,7 из 10. Теперь же - понимаю, она более чем справедлива для нее.

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

Можно ее рекомендовать любителям тактики, но только первую половину игры, дальше ничем она вас не удивит.

понедельник, 3 сентября 2018 г.

Майкл Доусон - Программируем на Python, ответ на 1-ое задание 7-ой главы...

Доработайте игру "Викторина" таким образом, чтобы у каждого вопроса появился свой "номинал" - уникальное количество очков. В конце игры сумма очков пользователя должна стать равной сумме номиналов вопросов, на которые он ответил верно.

В начале я очень запутался.
Меня очень долго вводила в смущение фраза "В конце игры сумма очков пользователя должна стать равной сумме номиналов вопросов, на которые он ответил верно." Тогда просто ставим счетчик после значения score, который так же будет считать + 1 каждый раз, когда ответили верно. Будет выполняться одно условие, но тогда не будет уникальности номиналов.
Если же номинал будет разный, то мы не сможем сделать равное кол-во с очками.
В общем пришлось поломать голову.
Достал оригинал, там написано: "the players score should be the total of all the points values of the questions he or she answers correctly", то есть "очки игроков должны быть суммой очков, на которые он правильно ответил".
Интересно, я условие первоначальное один так интерпретировал, или здесь перевод на самом деле неккоректный?

По поводу номиналов. Можете убрать очки, чтобы не путаться, а можете просто добавить номиналы  в первоначальное тело программы.
Я сделал так, что после каждого ответа рандомилось число от 1 до 4 - это и будет номинал, добавляемый в общую копилку.

Майкл Доусон - Программируем на Python, ответ на 4-е задание 6-ой главы...

Напишите такую функцию computer_move(), которая сделала бы стратегию компьютера безупречной. Проверьте, можно ли создать непобедимого противника. 

Да, можно.
Поискав примеры в интернете, может кто-то уже пытался это сделать и мы возьмем его алгоритм. Их много, выделю основные.
Вот пример на С#, его мы и возьмем за основу. 
Ну а по самой теории, можно почитать здесь.

Прочитав все, мы имеем два варианта.
Либо пишем максимально разветвленную структуру в зависимости от хода человека (не сложно, но много писать).
Либо улучшаем параметр BEST_MOVES на основе вычитанной стратегии, присваивая ему значения (5, 0, 8, 6, 2, 1, 3, 7, 5) вместо (4, 0, 2, 6, 8, 1, 3, 5, 7).
После этого, я много раз пытался его победить, но не получилось. Так что может это и есть безпроигрышная стратегия.

среда, 22 августа 2018 г.

Майкл Доусон - Программируем на Python, ответ на 3-е задание 6-ой главы...

# Доработайте новую версию игры «Отгадай число» (которую вы создали, решая
# предыдущую задачу) так, чтобы основная часть программы стала функцией main().
# Для того чтобы игра началась, не забудьте вызвать эту функцию глобально.

import random

print("\t\tДобро пожаловать в игру 'Отгадай число'!")
print("Компьютер загадал натуральное число из диапазона от 1 до 100.")
print("Попытайтесь отгадать его зха минимальное число попыток.\n")

Майкл Доусон - Программируем на Python, ответ на 2-ое задание 6-ой главы...

# Доработайте игру «Отгадай число» из главы З так,
# чтобы в ней нашла применение функция ask_number().

# Игра "отгадай число"

import random

print("\t\tДобро пожаловать в игру 'Отгадай число'!")
print("Компьютер загадал натуральное число из диапазона от 1 до 100.")
print("Попытайтесь отгадать его зха минимальное число попыток.\n")

Майкл Доусон - Программируем на Python, ответ на 1-ое задание 6-ой главы...

# Доработайте функцию ask_number() так, чтобы ее можно было вызывать
# еще с одним параметром - кратностью (величиной шага).
# Сделайте шаг по умолчанию равным 1.

def ask_number(question, low, high, step = 1):
    """Просит ввести число из диапазона"""
    response = None
    while response not in range(low, high, step):
        response = int(input(question))
    return response

вторник, 21 августа 2018 г.

Майкл Доусон - Программируем на Python, ответ на 4-ое задание 5-ой главы...

# coding=utf-8
"""
Доработайте программу "Кто твой папа? так, чтобы можно было,
введя имя человека, узнать, кто его дед. Программа должна
по-прежнему пользоваться словарем с парами "сын-отец".
Подумайте, как включить в этот словарь несколько
поколений. """

Майкл Доусон - Программируем на Python, ответ на 3-е задание 5-ой главы...

# coding=utf-8
"""
Напишите программу "Кто твой папа?", в которой пользователь будет
вводить имя человека, а программа - называть отца этого человека.
Чтобы стало интересней, можно "научить" программу родственным
отношениям среди литературных персонажей, исторических персонажей,
исторических лиц и современных знаменитостей.
Предоставьте пользователю возможность добавлять,
заменять и удалять пары "сын-отец"."""

Майкл Доусон - Программируем на Python, ответ на 2-ое задание 5-ой главы...

""" coding=utf-8
Напишите программу "Генератор персонажей" для ролевой игры.
Пользователю должно быть предоставлено 30 пунктов,которые можно
распределить между четырями характеристиками: Сила, Здоровье,
Мудрость и Ловкость. Надо сдлать так, чтобы пользователь мог
не только брать эти пункты из общего"пула", но и возвращать их туда из
характеристик, которым он решит присвоить другие значения."""

""" Также, хоть это и не требуется в задании, мы будем требовать
от игрока, чтобы он улаживался в отведенные 30 очков и использовал их все.

Майкл Доусон - Программируем на Python, ответ на 1-ое задание 5-ой главы...

# coding=utf-8
# Создайте программу, которая будет выводить список слов в случайном порядке.
# На экране должны печататься без повторений все слова из представленного списка.
import random

print("Введите 4 слова для демонстрации программы:")
a = input("Первое слово: \n")
b = input("Второе слово: \n")
c = input("Третье слово: \n")
d = input("Четвертое слово: \n")

среда, 26 августа 2015 г.

Майкл Доусон - Программируем на Python, ответы на 4-ую главу...

Майкл Доусон - Программируем на Python.

Ответы на 4-ую главу.


Задание №1

# coding=utf-8
# Программа считает числа из заданного интервала, значения которых задает пользоваетель.
itog = int("0")
first = int(input("Введите начальное значение: "))
last = int(input("Введите последнее значение: "))
interval = int(input("Введите интервал между 
целыми  числами: "
))
last += 1
for i in range(first, last, interval):
    itog += i
print("Сумма введеных вами чисел: ", itog)
input("\n\nВведите Enter, чтобы выйти...")

Задание №2

# coding=utf-8
# Программа, которая принимает текст
 пользовательского ввода и печатает его наоборот

message = str(input("Введите любой текст и вы
 получите его наоборот: "
))
new_message = ""
for i in message[::-1]:
    new_message += i
print("А вот ваш новый текст:", new_message)
input("\n\nНажмите Enter, чтобы выйти из программы...")

Задание №3

  1. # coding=utf-8
  2. import random
  3.  
  4. # Создадим последовательность слов, из которых компьютер будет выбирать
  5. WORDS = ("питон",
  6.          "анаграмма",
  7.          "простая",
  8.          "сложная",
  9.          "ответ",
  10.          "подстаканник")
  11.  
  12. # случайным образом выбираем из последовательности одно слово
  13. word = random.choice(WORDS)
  14.  
  15. # Создадим переменную, с которой будет сопоставлена версия игрока
  16. correct = word
  17.  
  18. # Создаем переменную и подсказку, которая будет появляться при запросе игрока "Не знаю"
  19. i_dont_know = "Не знаю"
  20. podskazka = word[0] + word[1] + word[2]
  21.  
  22. # создаем анаграмму выбранного слова, в которой буквы будут расставлены хаотично
  23. jumble = ""
  24. while word:
  25.     position = random.randrange(len(word))
  26.     jumble += word[position]
  27.     word = word[:position] + word[(position + 1):]
  28.  
  29. # Создаем очки для игроков. Те, кто не использовал подсказку, получают больше.
  30. scores = 10
  31.  
  32. # Начало игры
  33. print(
  34.     """
  35.                                      Добро пожаловать в игру 'Анаграммы'!
  36.                         Надо переставить буквы так, чтобы получилось осмысленное слово.
  37.                                Если вам нужна подсказка введите: "Не знаю".
  38.            Но учтите, если вы не будете использовать подсказку, кол-во заработанных очков будет больше.
  39.                             (Для выхода нажмите Enter, не вводя своей версии.)
  40.     """
  41. )
  42. print("Вот анаграмма: ", jumble)
  43. guess = input("\nПопробуйте отгадать исходное слово: ")
  44. while guess != "" and guess != correct:
  45.     if guess != correct and not guess == i_dont_know:
  46.         print("К сожалению, вы неправы.")
  47.     if guess == i_dont_know:
  48.         scores -= 5
  49.         print("\nПодсказка! Первые три буквы слова!", podskazka)
  50.     guess = input("Попробуйте отгадать исходное слово: ")
  51.     if guess == correct:
  52.         print("Да, именно так! Вы отгадали!\n")
  53.  
  54. # Если игрок слишком часто использовал подсказку (что странно, ведь она одна и та же), избегаем отрицательного значения
  55. # приводя к нулю
  56. if scores < 0:
  57.     scores = 0
  58. print("Спасибо за игру! У вас", scores, "очков!")
  59. input("\n\nНажмите Enter, чтобы выйти...")

Задание №4

  1. # coding=utf-8
  2. import random
  3. # Создадим последовательность слов, из которых компьютер будет выбирать
  4. WORDS = ("питон",
  5.          "анаграмма",
  6.          "простая",
  7.          "сложная",
  8.          "ответ",
  9.          "подстаканник")
  10.  
  11. # случайным образом выбираем из последовательности одно слово
  12. word = random.choice(WORDS)
  13.  
  14. print("\t\tЗдравствуй игрок!")
  15. print("Попробуй угадать с пяти попыток слово, которое загадал компьютер.")
  16. print("Ты можешь спрашивать, есть ли определенная буква в слове. А потом скажешь слово.")
  17. print("Итак, поехали!")
  18. print("\nКоличество букв в слове:", len(word))
  19.  
  20. # Цикл отгадывания букв
  21. tries = 5
  22. letter = ()
  23. while tries >= 1:
  24.     letter = str(input("В загаданном слове есть буква: "))
  25.     if letter not in word:
  26.         tries -= 1
  27.         print("\nВы ошиблись, такой буквы нет в слове!")
  28.         print(" У вас осталось", tries, "попыток(ки)!")
  29.     if letter in word:
  30.         tries -= 1
  31.         print("\nВы угадали, эта буква есть в слове!")
  32.         print("У вас осталось", tries, "попыток(ки)!")
  33.  
  34. # Вторая часть отгадывания.
  35. i_dont_know = "Не знаю"
  36. print("\nВаши 5 попыток закончились, вы готовы угадать слово?")
  37. print("Если вы сдались и не хотите продолжать, напишите 'Не знаю'.")
  38. correct = (input("\nЭто слово: "))
  39.  
  40. while correct != word:
  41.     print("Попробуйте еще раз!")
  42.     correct = (input("\nЭто слово: "))
  43.     if correct == word:
  44.         print("\nПоздравляю! Вы выиграли!")
  45.     if correct == i_dont_know:
  46.         print("\nОчень жаль!")
  47.         break
  48.  
  49. input("\nНажмите Enter, чтобы выйти...")


воскресенье, 23 августа 2015 г.

Майкл Доусон - "Программируем на Python", ответы на задания 3-ой главы...


Майкл Доусон - Программируем на Python. Ответы на задания 3 главы.

Задание №1

  1. # Задание: Написать программу симулятор пирожка с "сюрпризом",
  2. #которая бы при запуске отображала один из пяти различных "сюрпризов",
  3. #выбранных случайным образом.
  4.  
  5. print("\t\t\t\tДобрый вечер!")
  6. print("Вы, как 100-ый клиент за день, получаете пирожок с секретной начинкой!")
  7. print("У нас 5 секретных начинок, и мы не знаем какая вам достанется. Удачи!\n")
  8.  
  9. import random
  10. stuffing = random.randint(1, 5)
  11. if stuffing == 1:
  12. print("Вам попалась начинка с рисом и яйцом! Поздравляю!")
  13.  
  14. elif stuffing == 2:
  15. print("Вам попалась начинка с курагой! Поздравляю!")
  16.  
  17. elif stuffing == 3:
  18. print("Вам попалась начинка с картошкой! Поздравляю!")
  19.  
  20. elif stuffing == 4:
  21. print("Вам попалась начинка с сосиской! Поздравляю!")
  22.  
  23. elif stuffing == 5:
  24. print("Вам попалась начинка с салатом! Поздравляю!")
  25.  
  26. else:
  27. print("Что-то сломалось наверное, приходите за призом завтра...")
  28.  
  29. input("Нажмите Enter, чтобы покинуть розыгрыш...")
  30.  

Задание №2

  1. #Дом. задание: Написать программу, которая бы "подбрасывала" условную монету
  2. #100 раз и сообщала, сколько раз выпала "решка" или "орел".
  3.  
  4. import random
  5. print("Сейчас программа 'подбросит' монетку и подсчитает сколько раз выпадет")
  6. print("'решка', или 'орел'.")
  7.  
  8. reshka = 0
  9. orel = 0
  10. kol_podbros = 0
  11.  
  12. while kol_podbros != 100:
  13. podbros = random.randint(1, 2)
  14.  
  15. if podbros == 1:
  16. orel += 1
  17. else:
  18. reshka += 1
  19. kol_podbros += 1
  20.  
  21. print("\nОрлов выпало: ", orel)
  22. print("Решек выпало: ", reshka)

Задание №3

  1. # Игра "отгадай число"
  2.  
  3. import random
  4.  
  5. print("\tДобро пожаловать в игру 'Отгадай число'!")
  6. print("Компьютер загадал натуральное число из диапазона от 1 до 100.")
  7. print("Вам нужно угадать его за максимум 5 попыток.\n")
  8.  
  9. # Начальные значения
  10. the_number = random.randint(1, 100)
  11. guess = int(input("Ваше предположение: "))
  12. tries = 1
  13.  
  14. # Цикл отгадывания
  15. while guess != the_number:
  16. if guess > the_number:
  17. print("Меньше...")
  18. elif guess < the_number:
  19. print("Больше...")
  20. if guess > the_number and tries >= 6:
  21. print("Соберись, тряпка!")
  22. elif guess < the_number and tries >= 6:
  23. print("Неудачник!")
  24.  
  25. guess = int(input("\nВаше предположение: "))
  26. tries += 1
  27.  
  28. print("\nПоздравляю! Вам удалось отгадать число!")
  29. print("вы затратили всего лишь", tries, "попытки(ок)!")
  30. if tries >= 6:
  31. print("\nВсего лишь", tries, "попытки(ок)), Карл?! Да ты издеваешься?")
  32.  
  33. input("\nНажмите Enter, чтобы покинуть игру...")

Задание №4

  1. # coding=utf-8
  2.  
  3. print("\t\t\tЗдравствуй, игрок!")
  4. print("Тебе предстоить сыграть с компьютером в 'Числа'.")
  5. print("Надо загадать число от 1 до 100, а компьютер попытается отгадать его.")
  6. number = int(input("Введите загаданное число: "))
  7.  
  8. # Задаем начальные значения и задаем первую попытку угадывания, задействуя метод Хартли.
  9. # То есть делим интервал угадывания наполовину, чтобы быстрей добраться до искомого числа.
  10. computer_number = 50
  11. tries = 1
  12. low = 1
  13. high = 100
  14. print(computer_number)
  15.  
  16. # Цикл отгадывания
  17. while computer_number != number:
  18. if computer_number > number:
  19. high = computer_number # Задаем загаданное число верхней границей интервала
  20. # Продолжаем делить полученный интервал наполовину.
  21. computer_number = computer_number - ((high-low)//2)
  22. print(computer_number)
  23. elif computer_number < number:
  24. low = computer_number # Задаем загаданное число нижней границей интервала
  25. computer_number = computer_number + ((high-low)//2)
  26. print(computer_number)
  27. tries += 1
  28.  
  29. print("Компьютер потратил", tries, "попытки(ок) на отгадывание твоего числа.")
  30. input("\n\nНажмите Enter, чтобы выйти из программы...")

вторник, 30 июня 2015 г.

Майкл Доусон - "Программируем на Python", ответы на задания 2-ой главы...

Ответы на задания 2-ой главы.

Первое устное задание рассматривать не будем.

Задача №2
Напишите программу, в окно которой пользователь сможет ввести названия двух своих любимых блюд. Программа должна сцеплять две эти строки и выводить полученную строку, как название нового, невиданного блюда.
name1 = input("Введите первое свое любимое блюдо: ")
name2 = input("Введите второе свое любимое блюдо: ")
print("\nА теперь, внимание! Я придумал блюдо, которое объединяет ваше оба любимых: ")
print(name1+name2)
input("\n\nВведите Enter, чтобы выйти из приложения...")

Задача №3
Напишите программу "Щедрый посетитель", в окно которой пользователь сможет ввести сумму счета за обед в ресторане. Программа должна выводить два значения: чаевые из расчета 15% и 20% от указанной суммы.
print("Здравствуйте, уважаемый посетитель стриптиз-клуба 'Вертихвостка'!")
# Не могу удержаться. Процитируем Гарри Гаррисона :-)
print("Наш девиз: ЗАХОДИТЕ К НАМ, ЗАСРАНЦЫ, ЖДУТ ВАС ВЫПИВКА И ТАНЦЫ!")
print("Вас приветствует приложение для подсчета чаевых для официантки,")
print("которая, обслуживала вас.")
check = int(input("\nДля начала введите сумму счета в долларах (без центов): "))
 
# Рассчитываем чаевые по американской системе
tip_good = check / 100 * 20
tip_bad = check / 100 * 10
print("\nЕсли вам понравилось обслуживание, то оставьте официантке ",tip_good, "долларов")
print("Если же нет, то оставьте ", tip_bad, "долларов")
 
input("\n\nНажмите Enter, чтобы закрыть приложение...")

Задача №4
Напишите программу "Автодилер", в окно которой пользователь сможет ввести стоимость автомобиля без наценок. Программа должна прибавлять к ней несколько дополнительных сумм: налог, регистрационный сбор, агентский сбор, цена доставки машины по месту назначения.Пусть налог и регистрационный сбор вычисляются как доля от начальной стоимости, а остальные наценки будем считать фиксированным величинами. Окончательная цена автомобиля должна быть выведена на экран.
print("Здравствуйте! Вас приветствует приложение автоцентра Audi.")
print("Вводя стоимость автомобиля, мы расчитаем вам окончательную цену")
print("автомобиля со всеми наценками с каждым подпунктом")
price = int(input("\nВведите стоимость автомобиля: "))
 
nalog = price / 100 * 13
print("\nНалог: ", nalog, "рублей")
 
reg_sbor = price / 100 * 3
print("\nРегистрационный сбор: ", reg_sbor, "рублей")
print("\nАгентский сбор: ", 10000, "рублей")
print("\nДоставка машины: ", 5000, "рублей")
 
full = price + nalog + reg_sbor + 10000 + 5000
print("\n\nИтого: ", full, "рублей")
 
print("\n\nБлагодарим за покупку!")
input("Введите Enter, чтобы закрыть приложение...")

P.S. За наглядный листинг кода спасибо сайту highlight.hohli.com.
P.P.S. Все разъезжается по швам. 

понедельник, 29 июня 2015 г.

Майкл Доусон - "Программируем на Python", ответы на задания 1-ой главы...



Ответы на задания 1-ой главы.


Объяснений тут не нужно, я полагаю.

Задача №1
Научитесь вызывать ошибку: в интерактивном режиме введите название своего любимого сорта мороженого. Потом исправьте ошибку и создайте команду, которая будет правильным образом выводить на экран название этого сорта мороженого.

print("Пломбир")

Задача №2Напишите и сохраните программу, которая будет выводить ваше имя и дожидаться, пока пользователь нажмет Enter для выхода. Запустите эту программу, дважды щелкнув на ее значке.

print("Айзек")
 
input("\n\nНажмите Enter, для выхода...")
Задача №3

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

print("Жить, как говорится, хорошо!")
print("А хорошо жить еще лучше!")
print("Авторы: Г. Вицин и Е. Моргунов")
 
input("\n\nНажмите Enter, для выхода...")

пятница, 18 апреля 2014 г.

3 причины, почему The Last of Us круче, чем Grand Theft Auto 5...

Let's battle!
О да! Я представляю что было бы, если статья вышла на каком-нибудь крупном ресурсе (мечты-мечты, lol). Толпы неиствующих фанатов GTA 5 так прямо и раздувают срач в комментах, а немногочисленные (на их фоне) поклонники The Last of Us пытаются что-то сказать, но сразу же получают в ответ несколько сообщений и кучу минусов. Ну и конечно: "Автор мудак, статья УГ".

А я просто хочу объяснить, почему PS3 эксклюзив который продался 5 миллионов, признана большинством редакций игровых журналов, независимых журналистов и сайтов Игрой 2014 года. А не масштабная GTA 5, которая уже ушла за 30 млн. проданных копий.
Я не говорю, о том что GTA 5 хуже. Нет, эти две игры обязаны к приобретению даже человеком, который проходит по одной игре в год. Они просто разные, их нельзя сравнивать. Но так получилось, что наиболее сильные эмоции и впечатления, которые вспоминаются до сих пор, подарила мне именно The Last of Us.
Итак, приступим. Обе игры от именитых студий, которые не допускали ни одного промаха. Обе игры были самыми ожидаемыми в 2014 г. Начнем...

Любите постапокалипсис? Милости просим.
Первая причина: Сюжет.
В GTA 5 все ожидаемо. Молодой паренек постепенно поднимается по криминальной карьерной лестнице, встречаясь с неоднозначными персонажами. В пятой части разработчики весьма органично вплели еще двух героев, тоже, связанных с преступным миром. Это не плохо, за это мы и любим эту серию. Но это все так предсказуемо. Я думаю, каждый догадается, о чем будет сюжет GTA 6, GTA7 и т.д. Ага, тоже самое...
На его фоне сюжет The Last of Us, плюс сразу его мощный и неоднозначный (я бы сказал, "человеческий") финал выигрывает без вопросов. История, растянувшаяся на игровой год, берущая лучшее от фильмов ("Дитя человеческое") и сериалов ("Ходячие мертвецы"), включающая в себя отлично написанные диалоги между персонажами, каждый из которых имеет свое прошлое и неохотно открывает его.

Вторая причина: Динамика игры.
Обе игры далеко не из разряда "на вечерок". В GTA 5 масштабная песочница, целый штат, по которому можно колесить, выполнять побочные задания, давить прохожих, или просто двигаться по сюжету. И в этом то и кроется ее недостаток по сравнению с The Last of Us. Любой открытый мир, неважно, насколько он будет насыщен, всегда будет проигрывать хорошей линейной игре. Сюжет в игре The Last of Us подается равномерно, и никогда не дает заскучать. После атаки зараженных вас может ждать отлично поставленный сюжетный ролик, либо новая локация, либо (как в случае  The Last of Us) вообще новое время года. В линейной игре, а особенно, от такой студии как Naughty Dog, вы всегда будете чувствовать себя персонажем, от которого зависит все (и неважно, мнимая эта свобода, или нет). И даже если игра длится 14 часов, это чувство вас не
Обычный будний день в GTA 5
покидает, а после мощного финала, когда идут титры, вы будете думать, почему так случилось, прав или не прав Джоэл. И когда загрузится главное меня руки тянутся запустить новую игру на повышенной сложности, чтобы заново ощутить все очарование игры, подсластив пилюлю более сложным режимом.
GTA 5 я проходил почти месяц. Признаюсь честно, я просто растягивал ее, игры такого масштаба выходят редко, а пройти ее за раз я не хотел.  За такой большой для игр промежуток времени динамика повествования и сюжет несколько раз ломается. Там есть шикарные миссии, есть и откровенно скучные. Но, повторяю, игра с открытым миром никогда не сможет тягаться с интересностью с играми коридорного типа. Равномерный и хороший сюжет всегда выиграет у игры, пусть и отличной, но у которой подача производится урывками и с большим промежутком времени.
Да что уж там, некоторые через месяц игры в GTA 5 могут забыть с чего все началось, а The Last of Us за 3-4 вечера расскажет вам насыщенную историю.

Третья причина: Графика и музыка. 
Программисты Naughty Dog еще во время Uncharted 2 заставили PS3 работать на полную катушку, выдавая графику, которую не стыдно смотреть и сегодня, 5 лет спустя после выхода. Им осталось только шлифовать полученные результаты, применяя их в новых играх студии. Как результат, PS3 под закат поколения игровых консолей получила шедевр по всем пунктам. Возможно, некоторые недостатки заметны, но они грамотно скрываются мастерским дизайном уровней.
Я не один в своем мнении.
Музыка же сразу после прохождения просится в папку "Игровые саундтреки". Особенно основная тема, которая вас встретит в главном меню. Еще бы, ведь к игре писал музыку обладатель "Оскара" Густаво Сантаолалья. И она не выделяется в игре, она как и все составляющие в The Last of Us, органично переплетена в этом шедевре. И когда вы будет играть за замерзающую Элли в лесу, и откуда то издалека начнет наигрывать щемящий гитарный перебор, так подходящий под настроение героя, вы меня поймете.
А что GTA 5? Болтающие диджеи на радио, огромное количество музыки на любой вкус - все поставлено на высшем уровне. Но, все это ожидаемо и привычно. Что-то нового и необычного, что может вас поразить в игре, вы не услышите. Поэтому она проигрывает The Last of Us по этому вопросу.

Об этих играх мы будем говорить и в 2014 году. Шедевр от Naughty Dog мы увидим снова, уже на PS4. Скорей всего мы увидим подтянутую графику и туда же будет входить dls Left Behind.
Ну а GTA 5 как всегда ждут на PC (правда с этой частью шансов меньше, так как сообщений о релизе почти не видно, возможно RockStar Games удовлетворится продажами на консолях, как в случае с Red Dead Redemption, и положит на ПК прибор).

Ну и в итоге еще раз скажу данное мнение чисто субъективное и говорит лишь о том, какая из главных игр 2013 года больше пришлась мне по душе.

Всем спасибо.

вторник, 15 апреля 2014 г.

3 причины сыграть в Splinter Cell: Blacklist...



Демократия в опасности? Сэм идет!
Первая причина: Назад, к тьме.
Splinter Cell возвращается к истокам. Пусть и первые две миссии в арабских странах под палящим солнцем и могут смутить вас, но дальше остаются классические уровни, напоминающие до предела отшлифованный в плане геймдизайна, и, лично для меня, лучший Splinter Cell: Chaos Theory.
Как и в старое доброе время, на уровне остаютсяя только Сэм, темнота, и множество путей решения задания.
И пусть часто не хватает маленькой камеры, с помощью которой можно смотреть через замочную скважину, чтобы узнать, стоят ли охранники за дверью (спасает тепловой режим очков, прокачайте сразу), и враги, которые раньше, найдя труп, переходили на усиленный режим патрулирования,, то сейчас, немного постояв у трупа товарища, они пойдут дальше  (и это пофигистичность обескураживает). Спасибо, что хотя бы вернули возможность таскать тела, которая отсутствовала в предыдущей Conviction (правда, используемая за игру всего пару раз, ибо ненужна).

Вторая причина: Постановка.
Уши одного из самых экшен-сериалов современности "24" торчат везде и многие удачные фишки взяты из него. И это пошло только на пользу. Смены ракурса камеры, динамическая музыка, шпионские страсти, взрывы, предательства, интриги и седой Сэм. До Conviction такого не было. В предыдущих частях геймплейные и сюжетные ролики были страшноваты. А сейчас любо-дорого смотреть.

Третья причина: Начинка игры.
Пройдете сюжетную компанию и думаете все? А вы прокачали костюм Сэма и гаджеты? А оружие? Перепроходи игру в разных стилях, от силового до фулл-стелса, чтобы получить деньги и новые достижения. Хочется еще? Окей, 14 кооперативных миссий связанных отдельным сюжетом (игра в игре, ага). Хочется просто пострелять? Мультиплеер "Шпионы против наемников" который отсутствовал в прошлой игре, вернулся. Ну а также задания с Корбайном на зачистку террористов. В общем, игра ценник отрабатывает свой сполна. Это вам не Call of Duty на три часа. Здесь можно просидеть столько же, как и в Скайрим.

Как человек игравший во все игры серии (кроме Conviction) я бы конечно желал, чтобы они издали такую же шикарную игру, как и Chaos Theory, хотя отлично понимаю, что Conviction также многим понравилась. И сейчас разработчики пытаются усидеть на двух стульях одновременно.
Поклонникам игрового сериала, стелс игр, шпионских игра, Хтимана, играть обязательно.
8,5 из 10