Текствый квест или сказание о том, как я не ходил в универ

от автора

О себе…

Привет, Хабр.

Я студент, учусь по направлению — Информационные системы и технологии. За первый год обучения я получил -> «Почти ничего». Самое крутое, что я приобрел за год пребывания в ВУЗе — это общение с Разными людьми. Каждый имел своё мнение и свои взгляды на вещи. И это был единственный плюс. Когда у нас пошли пары по программированию, которые я очень сильно ждал, мне стало очень Плохо. Увидев то, как преподаватель предсмертного возраста объясняет нам Азы Python3, мне хотелось уйти.

После, как у многих было, я перестал ходить почти на все лекции, потому что уровня знаний python мне хватало, для того чтобы сделать за день все лабораторные работы. И после этого я начал тухнуть на глазах. Отдел, который занимался записью студентов на курсы по ИТ направлению кормил всех завтраками, и я не исключение. Никто ничего не обязан вам в универе. А об выполнение своих рабочих обязанностей все преподаватели забыли напрочь.

Чем же я занимался всё свободное время

Так как на большинство пар я не ходил, я начал искать курсы и гайды в интернете. YouTube крутая штука, но уже много мусора в себе держит. За пару недель я нашел себе занятия:

  • Я начал рисовать, фотографировать эти рисунки и доводить до ума в GIMP!

  • Писал парсеры, программы которые загружали контент с сайта.

  • Сделал минималистичный поисковик для telegra.ph, было прикольно.

  • Написал свою первую и интересную как для меня так и для одногрупника и преподавателя, уже по другому предмету, программу. Есть такая вещь — DB Browser for SQLite. Я написал похожую программу на Python3, Tkinter и SQLite3. Велосипед, но хочется.

  • Писал скрипты для сортировки файлов в директории «Загрузка».

  • Калькуляторы для ВышМата и физики, которые у нас уже во всю шлю плотным графиком( termux помог очень сильно, когда обычный интерпритатор на телефоне не мог скачать нужный модуль)

  • И конечно как же без BackDoor-ов, KeyLogger-ов и скриптов для перезагрузки системы, когда надоедливый сосед начинает играть в FIFA с включенными колонками.

И вот момент истины.

Я начал искать информацию по Текстовым Квестам. Её много, но вся она состоит из обзоров движков или длинных цепей IF — ELIF — ELSE. Я не претендую, я просто захотел и попробовал реализовать за час минималистичный рабочий псевдодвижок для текстового квеста.

Первое, что меня сразу затормозило — это то, как мне связать основные тексты и ответы к которым они привязаны. Я построил схему и попытался из неё что-то увидеть, прям как художник, который ищет свою музу.

Создано при помощи https://app.diagrams.net
Создано при помощи https://app.diagrams.net

Затем я написал это. Реализация переходов между ответами и их содержимым.

# Добавляем в конец id_line значение answer if answer == "1":     id_line = id_line + ".1"  elif answer == "2":     id_line = id_line + ".2"  elif answer == "3":     id_line = id_line + ".3"

После я подключил модуль SQLite.

import sqlite3  conn = sqlite3.connect("dialogs.db") cursor = conn.cursor()  TEXT    = cursor.execute(f"SELECT text FROM mainT WHERE id_line = '{id_line}'").fetchone() ANSWERS = cursor.execute(f"SELECT answers FROM mainT WHERE id_line = '{id_line}'").fetchone()

Конечный вид исходника «Игры»:

import sys import sqlite3  conn = sqlite3.connect("dialogs.db") cursor = conn.cursor()  id_line = "0"  while True:  TEXT    = cursor.execute(f"SELECT text FROM mainT WHERE id_line = '{id_line}'").fetchone() ANSWERS = cursor.execute(f"SELECT answers FROM mainT WHERE id_line = '{id_line}'").fetchone()  print(*TEXT) print(*ANSWERS)  answer = input("> ")  if answer == "1": id_line = id_line + ".1"  elif answer == "2": id_line = id_line + ".2"  elif answer == "3": id_line = id_line + ".3"  elif answer == "quit": sys.exit()    # на случай, если введено заначение отличное от 1, 2, 3 или quit. else: print(f"Такого варианта нет.(Error: {answer})") continue

Вид БД:

CREATE TABLE "mainT" ( "id_line"TEXT NOT NULL, "text"TEXT NOT NULL, "answers"TEXT NOT NULL )

Результат:

Заключение

Этот пост написан как стартовый для меня в этом направлении. Выше сказанным я хотел показать, что:

  • Универ не всегда дает то, в чём ты можешь нуждаться.

  • Универ — место для общения и поиска единомышленников.

  • Для меня и многих людей, которые меня окружают, делать всё просто так — это норма. Хочешь делать — делай!

  • Движки для «Текстовых Игр» существуют, их не мало и не так уж и много. Но написание игры без вспомогательных технологий это интереснее и не так уж и сложно. Хоть времена когда ты пишешь функцию для чего-либо с нуля уже прошли, всё равно к этому тянет. Мне кажется люди забывают о трудностях и переходят на легкий уровень жизни.

Спасибо за внимание. Буду очень рад любому совету и наверное напутствию.


ссылка на оригинал статьи https://habr.com/ru/post/682624/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *