Аннотация: позавчера я смогла наконец то поставить Питон,слава богам и Высшим Духам.Он не только стал,но он еще и работает .Я испытала на себе методику которая позволяет изучить любой язык программирования если вы умете работать с визуальным языком или дракон схемами. То что вы видите просто черновик. Но это работает .Значить касательно карт действий, терия верна и можно изучить любой язфк достаточно быстро даже если вы его не знаете .то что вы видите результать целого дня работы, а то и двух, но если брать по часам, то я затратила уйму времени часа два на этот черновик... программы было сделать проще и быстрее .Но это скорее всего потому что я часто отвлекаюсь на многие вещи....Но даже этого должно хватить что бы как легко можно изучить не только питон,а любой язык програмирования и не только изучить ,а делать перевод из одного языка в другой
Python черновик часть первая
Черновик , по языку Питон .Python
Аннотация ;
Когда ребенок рождается, он не умеет говорить или ходить ,но он гордо познает мир ползком или на четвереньках.Что он делает? как он познает мир? по большей части ломает чтобы понять как устроено, но знаний у детей явно не достаточно ,потому собрать на зад у них не получается,они наблюдают или повторяют за взрослыми,имитируют или подражают.
Чтобы понять ,нужны азы знаний,знания примитивов. Зная тысячи примитивов можно создать очень сложную вещь, которую даже создатель потом до конца не поймет .
Но каждый хочет делать игры прямо сейчас. И это на самом деле не сложно ,не сложно научить делать сразу и прямо сейчас. Миллионы людей занимаются тем что выдают общеизвестное за знания,а знаниями никогда не делятся,так как знание это понимание того что ты делаешь . Вторая половина попросту не может передать знания ибо писать и излагать не уметь и даже не пытаются .В итоге знания получить почти негде .
Старшее поколение пытается передать свое устаревшее знание,зачем? согласитесь глупо даже тратить время на создание пиксельных игр . Кому нужно тратить месяца на ваши расчеты? что бы получить убогую игру с какой то убогой восьми битной прорисовкой или отрисовкой? Это просто трата времени . Начинать нужно сразу со спрайта,фона , и проводить аналогии с 3 D графикой. Вот что нужно. Потраченные полгода или год на просто обучению сложных расчетов,это зря потраченное время. Так как игру придется делать год или два, и на выходе мы получим никому не нужный продукт .
С чего же начать? что важно ? теория без практики - это зря потраченное время. Вы даруете знания,а все спят и не воспринимают его потому что не видят практического применения всего того что вы глаголете,хотя эти знания возможно и очень важны.
А начинать нужно с того же ,с чего начинают дети. С движения, ибо движение есть жизнь . А следовательно с координат, фона, установки фона , террейна.
Задача проста. Вы должны за семь дней научить людей
Создать землю террейн , создать небо задача номер один , дать свет научить работать с освещением если 3 D графика, дать ночь учим таймеры смены дня и ночи ,
Научить создавать воду, ибо какая игра если в ней нет воды? Научить делать траву и деревья работа со спрайтами или текстурами. Ну и сотворить человека, спрайт или модель объект . Вдохнуть душу,чтобы объект ожил и передвигался как сам,так и управлением . Это самое главное. А дальше уже взаимодействие с другими объектами, как то нарубить дров построить дом…..Вот суть программирования.
Более сложная задача шить одежду и все это вот должны делать разработчики и делать очень быстро и легко .
Изучаем Питон
У нас есть доска и мел , написав на доске мы видим то ,что мы написали.
Для того чтобы получить похожий результат , нам нужен игровой движок, или другая программа.В нашем случае это будет Питон .
Первая команда которую мы изучим, будет команда вывести результат .
print() данная команда выводить значения указанное внутри скобок. На русском языке она так и называется Распечатать(). Эта команда выведет на экран то что в кавычках.
и давайте перейдем сразу к практике .
например сложим два числа и выведем текст на экран . И начнем С переменных,пусть переменная а=2 ,таким образом значение а равно два. в = 3 вторая переменная равна 3 .
как вывести результат и сложить числа?точно так же как в математике
2+3=5 , тогда пусть d=a+b запишем это в программе
a=2
b=3
d=a+b
print(d)
команда print() выводит значение d на экран .
чтобы запустить программу жмем Run или кнопку F5 на вашей клавиатуре .и у нас получится просто значение 5 .
но можно сделать и иначе. Например print(1 + 5) и мы получим тоже самое . Почему я сделала первый пример таким ,а не иначе? потому что в играх очень важно знание переменных и работы с ними,заменяя одно значение на другое. Например у нас есть обойма автомата. Мы нашли какой то предмет который увеличивает эту обойму на какое то количество патронов. тогда а у нас начальный магазин с патронами, b это значение которое даст нам артефакт,а d это общее количество патронов в магазине после апгрейда,напиши мы просто строку 1+5 у нас ничего не получится. Вот потому важно понимать принцип работы переменных.
сложение,вычитание деление делается через операторы. Выше вы видите таблицу, тут практически тоже самое что в математике. Я условно разбила таблицу на карты и привела примеры .Потому смысла особо останавливаться на этом нет .Это обычная математика.Программирование напрямую связано с математикой.Потому сложение вычитание деление, все это вы должны знать. Вы можете просто самостоятельно ввести данные из таблицы и посмотреть что будет .Более того ,это очень желательно сделать, что бы освоить команду print()
И получить навыки сложения и отнимания,освоить переменные. Потому сложение и вычитание я рекомендую делать именно через переменные.Переменная это значение которому можно присвоить значение .Например количество патронов пусть будет X магазин на 12 патронов тогда Х=12 . пусть выстрел будет Y один выстрел это один патрон . итак у нас в магазине 12 патронов,делая выстрел мы теряем один .Мы можем стрелять пока патроны не равны нулю. С у нас будет количество патронов в магазине
c=x-y на самом деле программа будет намного сложнее, но это дает понять суть для чего нужна переменная.
Как и в яве тут очень похожие правила :
“текстовая строка все что в этих кавычках это текст ”
‘тоже текстовая строка ’
даже если мы напишем в кавычках числа , то число будет считаться текстом “12” -’это не число ,а текст потому что в кавычках.
текстовое значение тоже можно складывать или умножать .
например
print("горы" + "ныч ") получим “горыныч”
print("#" * 12) например мы можем клонировать символ
что позволяет по сути рисовать картинки , или фигуры если мы их математически зададим
другие операции не выполняет. То есть делить не получится.
Ну и логика.
логика это сравнение ,да,нет или. Логику хорошо поясняет дракон схемы. Или просто схемы.
Допустим вы встали ,вы позавтракали? если Да то это значение True (Истина, то есть Да) , False (ложь,не точное утверждение ,нет)
тогда ответ будет таким
Вы завтракали?
если Да то True
если нет то False
я делаю иначе. ответ да истина пусть будет равна 1 ,а ответ два не истина пусть будет равно 2
тогда выражение будет таким.
Если я завтракала это 1 если нет то 2 .
тогда если a равно один то поела ,если два то нет . Но так как у нас только два значения , то значение один а=1 ответ да, все остальные значение иначе, то есть если не равны один то не ела.
а=1 true , все остальные значение false,но если ответов больше чем два , то есть смысл задать диапазон .
Для того чтобы сравнить значения используются операторы сравнения .
оператор сравнения сравнивает условия 2>1 значение верно ? да ,значение True
“х” > “y” верно ? нет это строки , не числа, текстовое значение . Не верно значение False
9<1 Верно? нет 9 больше чем один . значение неверное False .
3>=3 верно ли утверждение? да поскольку три равно три True
>= значение больше или равно
!= не равны
== равенство всегда когда оба значения равны
9!= -9 верно? да девять не равно минус девять. True
9==9 верно? да девять равно девяти
“F” ==“F” верно ? да правое значение равно левому идентичны True
в Питоне значение True считается числом один . False - числом ноль.
Для того чтобы бы взаимодействовать с пользователем ,нам нужно чтобы он вел какие то данные,чтобы затем их сравнить .
Для этого существует команда
input()
служит для возврата данных .Данные передаются после нажатия Ентер .
пример a=input("введите число от 0 до 9 :") Здесь a у нас переменная , которой мы присвоили input() .
когда программа начинает работать , она выведет текстовое значение и приостановиться ожидая ввода значения .
Значение может быть любым,пока не произойдет ввод мы не можем его обработать.
После того как оно будет введено ,мы сможем уже с ним работать поскольку это значение получить наша переменная. .
то есть а= получить введенное значение .
теперь попробуем написать мини програму. Итак пусть будет условие то же что раньше вопрос вы поели? решить задачу всегда можно несколькими способами, их всегда не меньше двух , давайте попробуем решить задачу двумя способами.
Вы поели? и нам нужно ответить да или нет .
попробуем тот который описали мы самым первым.
a=int(input("Вы завтракали? если да то введите число 1 ,если нет то 2 :"))
if(a==1):
print("Раз вы позавтракали,то идите одевайтесь")
if(a>1):
print("Идите Завтракать")
мы видим новый оператор int() он служит для преобразования строки в целое число .
пример int()
a=int("3")
print(a)
тогда int(input()) позволяет получить нам целое число вместо строки
a=int(input("введите число"))
print(a)
то есть любое строчное значение будет пытаться быть преобразованным в числовое.
но если вести не числовое значение система выдаст нам ошибку.
полученное число мы можем сравнить через операторы
if ()
пример
a=1
if(a==1):
print("Добро пожаловать господин")
если а=1 один то будет выведено указанное значение ,если не равно , то ничего не произойдет .
мы создаем переменную а ,присвоим ей значение 1 ,создаем условие если А равно 1,сказать добро пожаловать господин.Для наглядности я использую схему идентичную
Дракон схемам, но более современную, это блоки . Чем хороши блоки?
С ними работать намного быстрее чем с текстом. Так как блок это условно объект то им можно присвоить любое значение,следовательно не имеет значение с каким языком программирования вы работаете . Программирование , это всего лишь последовательность действий .
Самой первой книгой по программированию,можно считать кулинарную. Именно там описаны простые программы для человека,понятные человеку. Программирование возникло до того как возникли первые компьютеры. И отцом программирования следует считать Герона .А первым компьютером я бы считала такие устройства как шарманка,музыкальная шкатулка, так как они первые могли записать программу и воспроизвести ее. Для создания Игр Компьютер не обязателен , достаточно просто создать какие то правила и условия, и мы получим игру .Самые простые игры , это драконий покер ,или преферанс и они не хуже чем любая Компьютерная игра.
Игры и программы делать очень легко, но почему же их делать так сложно? проблема как раз в том,что люди в 70% больше визуалы,реже руководствуются текстильными чувствовали, и только потом остальными. Есть такая поговорка лучше один раз увидеть,чем сто раз услышать. Так вот сложность программирования в том- что оно все на чужом языке. Все эти программы написаны на чужом инородном языке именно потому они для нас сложны и непонятны ведь нам нужно учить чужой язык и только потом программирование.Государство жадное и не хочет для нас делать отечественные программы, хотя тут ничего сложного нет ,имея то столько институтов.
Но есть путь который позволит работать с языками программирования даже не зная их , с любыми языками программирования . Визуализация процессов, перевод на понятный для нас родной язык. Эта методика позволяет не только работать с любым языком программирования не зная его , но и переводить один язык программирования в другой. Если бы у меня была команда людей, я бы давно уже издала эту методику для всех желающих на профессиональном уровне . Суть проста . вы в детстве играли в кубики? на каждом кубике есть буква и картинка, это как правило заглавная буква животного на картинке. Кубики с картинкой и заглавной буквой названия можно считать тем самым языком универсального программирования,только роль кубиков у нас выполняют блоки . А вместо заглавных букв у нас переменные. Это было небольшое отступление, не удержалась, наспамила. А теперь вернемся к изучению Злобного питона и продолжим дальше .
рассмотрим второе решение задачи,и написав код иначе.
a=input("Вы завтракали? ответе да ,если нет любое значение :")
if(a=="да"):
print("Раз вы позавтракали,то идите одевайтесь")
if(a!="да"):
print("Идите Завтракать")
эти варианты решения похожи, но второй код лучше тем,что нажатие пользователями на любые кнопки даст ответ номер два, и только точный вод даст ответ номер один. Можете проверить самостоятельно. Как это можно использовать что это нам дает?
На самом деле - это готовая программа которую можно использовать как замок.
Давайте этот код превратим во что то практичное .
a=input("Введите пароль что бы получить доступ :")
if(a=="березка137"):
print("пароль верный,доступ к базам данных получен")
if(a!="березка137"):
print("Извините в доступе отказано,пароль не верный")
у нас тот же самый код,но мы изменили условия превратив код в полезную программу.
Если код без ошибок вы получите вот такое сообщение
набрав пароль березка137 программа выберет первый вариант
Если вы наберете любую другую комбинацию вы получите сообщение что пароль не принять . И тогда нельзя зайти в игру или получить доступ к рар архиву или базе данных.
программа очень чувствительна к пробелам и отступам потом нужно все делать без ошибок.
Следующий блок если то , иначе. Если условие верное выполняется верхний блок ,иначе происходить выполнение второй части блока.
a=input("Введите пароль что бы получить доступ :")
if(a=="березка137"):
print("пароль верный,доступ к базам данных получен")
else:
print("Извините в доступе отказано,пароль не верный")
Пример :
мы просим ввести данные, если пароль в данном случае текстовое значение ,строка верна,то выводится значение если ответ верен, иначе если совпадений нет то выводится вторая ветка значения.
теперь просто закрепим то что мы узнали .
Взаимодействие
простой бот из одной строки .Я хочу разрушить стереотип того что переменная должна быть на английском.Это глупости на самом деле . Итак пример
ОтветВвода=input("Я ИИ Инфхмара,а Вас как зовут?")
print("Рада нашему Знакомству "+ОтветВвода)
Как видите это глупые стереотипы, переменная на то и переменная что может получить любое значение . Потому не обязательно мучиться и придумывать что то на английском, на английском только операторы,тут ничего не поделать,но только на данном этапе и только в этих программах.
Давайте посмотрим что же у нас получилось .
Давайте сделаем диалог более реальным
ОтветВвода=input("Я ИИ Инфхмара,а Вас как зовут?")
print("Возможно я тоже бы хотела бы "+ОтветВвода+" но я занята,смотрю дораму"+" Я не робот ")
ОтветВвода=input("Какие планы у тебя на завтра?")
print("А я книжку хочу почитать,ой мне пора убегать,пока,пока, до новых встречь")
Если мы все сделали верно то у нас получиться приблизительно такой диалог.Если пользователь будет отвечать предсказуемыми вероятностями.
Если все работает правильно то у нас получилось что то вроде такого диалога.
Это самый простой чат бот Инфхмара. Можно написать абсолютно любой,если мы сможем работать с большими базами данных то сможем написать полноценный ИИ .
Надеюсь с вводом более менее чуть ясно.
суть оператора спросить и ждать ответ.
input() -всегда строка и с ней можно делать то,что можно делать со строкой .
чтобы работать со строкой как с числом существует оператор int() который строку пытается превратить в число. И если нам нужна работа с числом ,то int(input())
А если нужно вернуть число в строку то оператор str
давайте закрепим примером
s=int(input("введите любое число до 1000"))
b=s
if(s<1000):
print ("вы ввели число:"+ str (b))
else:
print( "Это было больше чем 1000?")
первой строкой мы присвоили оператору S= число которое ведет пользователь
второй строкой мы сделали b=этому значению.
Создали условия если введенное число меньше 1000, то вывести сообщение вы ввели число, и оператором str вернули числу строковое значение ,превратив число обратно в текст.
если сумма вода будет выше 1000,то мы получим вывод информации что число выше 1000.
int оператор кроме того что переводить строку в текст,также округляет дробь до целого числа. print(int(45/2)) мы получим 22,а не 22.5
оператор list позволяет преобразовать строки в список
Пример
print (list('123456789') )
условия .если введенное число больше 5 то показать 1 если меньше то 2
x = int(input())# //х получить веденое значение от пользователя
y = int(input())# //y получить веденое значение от пользователя
if x > 0: #//если x>0
if y > 0: # //если y>0
print("северо восток")# //вывод значения при х и у больше нуля
else: # //вывод значения при x>0, y<0
print("северо юг")
else:
if y > 0: # //при значении x<0, y>0
print("юго восток")
else: # //если x<0, y<0
print("юго запад")
В этом примере мы видим что значения после знака # не обрабатываются до конца строки и его можно использовать для комментария
так же мы видим что можно ветвление можно использовать и после оператора else .
Данный пример будет полезный для работы с осью координат .
Рассмотрим следующие операторы , оператор цикла и его пример .
i = 1 # переменная I приобретает значение равное одному
while i <= 10: # while Цикл while (“пока”) позволяет выполнить одну и ту
print(i) # же последовательность действий, пока проверяемое условие истинно
i += 1 # то есть пока i меньше десяти,
# i += 1 выведя значение I ,добавляет к I единицу
else: #достигнув значение когда условие не верное,цикл будет закончен
print('Цикл окончен, i =', i)
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно
то есть цикл while , это повторять пока не,пока не достигнет какого то значения или условия.
Генераторы Чисел
самый важный раздел ,на генераторе чисел базируется абсолютно все игры, рулетка,заточка шмота, игра в кости, все это генератор случайных чисел.
и для нас важен генератор целых чисел
random.randint
random.randint(<Начало>, <Конец>) — возвращает псевдослучайное целое число в диапазоне от <Начало> до <Конец>:
но чтобы генератор заработал ,нужно его подключить , выполняет это команда
import random
Давайте сразу посмотрим пример работы
import random
print (random.randint(1, 20))
Итак мы создали очень важный элемент по сути игральный кубик. В данном случае D20 кубик на 20 граней.
Давайте сделаем полноценную простую игру
В виде шара предсказаний.
Эту игру я уже делала на двух других языках программирования