Вход

Просмотр полной версии : Подскажите, можно ли на basic'е сделать ввод русских слов



Fishbone
18.12.2014, 16:45
Если писать, например, текстовый квест, то можно ли на basic'е сделать ввод русскими буквами?
Например:
взять яблоко


Если можно то подскажите как

Eltaron
18.12.2014, 17:05
Использовать шрифт, в котором вместо строчных латинских будут прописные русские буквы в раскладке ЯВЕРТЫ. взять яблоко набирается как vzqt] qbloko
все текстовые квесты (Ленин, Иван Царевич) так работали

Fishbone
18.12.2014, 17:08
Тоесть чтоб на клавиатуре жать русские клавиши под бэйсиком несделать никак?

Andrew771
18.12.2014, 17:22
На оригинальном спеке нет клавиш с кириллицей.

SAM style
18.12.2014, 17:22
Тоесть чтоб на клавиатуре жать русские клавиши под бэйсиком несделать никак?Кнопок не хватит. На ZX клавиатуре их всего 40, причем 10 - цифры, 4 - CS, SS, Space, Enter, а остальные 26 весь русский алфавит не впихнёшь.

Andrew771
18.12.2014, 17:25
А если нажимать транслитерированные (vzqt] qbloko), то надо в шрифте изображение русских символов делать для соответствующих латинских символов.

Fishbone
18.12.2014, 17:51
А если нажимать транслитерированные (vzqt] qbloko), то надо в шрифте изображение русских символов делать для соответствующих латинских символов.

а можно подробней как это сделать?

null_device
18.12.2014, 18:13
Fishbone, заходим на virtual tr-dos (ссылка в "шапке" форума), и качаем ..для пользователей и программистов (http://trd.speccy.cz/book/ZX_TRDOS.ZIP). Там есть глава про руссификацию.

---------- Post added at 22:13 ---------- Previous post was at 22:07 ----------

Также, рабочий вариант есть в книге как написать игру на бейсике (http://trd.speccy.cz/book/WGBAS.ZIP).
---
Текстовые квесты на русском языке - гиблое дело. Замучаетесь с морфологическим распознаванием (рода, падежи и т.д.).
Квесты имеет смысл делать по типу ЗН или Danger Mouse.

Fishbone
18.12.2014, 18:18
Также, рабочий вариант есть в книге как написать игру на бейсике (http://trd.speccy.cz/book/WGBAS.ZIP).
---
Текстовые квесты на русском языке - гиблое дело. Замучаетесь с морфологическим распознаванием (рода, падежи и т.д.).
Квесты имеет смысл делать по типу ЗН или Danger Mouse.


Эту книгу читал, по тому способу собирался текст на экране писать.

Навыков нет чето по типу ЗН делать. Хотел "Бравого фидошника" сделать
а получается итак "Текстовые квесты на русском языке - гиблое дело" , а если еще и команды писать транскрипцией то вобще играть тяжко(

null_device
18.12.2014, 19:00
Fishbone, просто команду: "взять яблоко" достаточно однозначна. Какую-то более сложную смысловую конструкцию, распознать будет более затруднительно (да и писать замучаешся).
На самом деле, кроме руссификации ЯВЕРТЫ в отечественных клонах было два "стандарта" ЙЦУКЕН и ЦУКЕНГ

https://upload.wikimedia.org/wikipedia/commons/5/58/Delta-C_personal_computer.jpg

https://upload.wikimedia.org/wikipedia/commons/9/90/Kompanion_2_0005.jpg

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

Eltaron
18.12.2014, 19:23
В качестве безумного варианта решить старые проблемы, добавив новых - делай игру на Словио (http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B2%D0%B8%D0%BE). И кириллица не нужна, и грамматика в разу проще, и интуитивно понятен не только нам, но и всяким полякам-чехам :)

Destr
19.12.2014, 04:13
Есть ведь всякие редакторы квестов.
Если топикстартер задаёт такие (в общем-то примитивные) вопросы - значит уровень подготовки низковат и написать что-либо с нуля не получится.
Осваивай какой-нибудь редактор, в zx-ревю пару из них разбирали/описывали.

Fishbone
19.12.2014, 04:17
Есть ведь всякие редакторы квестов.
Если топикстартер задаёт такие (в общем-то примитивные) вопросы - значит уровень подготовки низковат и написать что-либо с нуля не получится.
Осваивай какой-нибудь редактор, в zx-ревю пару из них разбирали/описывали.
я для того чтоб проверить получится или нет попробывал для начал написать задуманное в qbasic на рс. получилось но там нет проблем с вводом русских символов

Destr
19.12.2014, 04:50
Искать можно как-нибудь так: http://zxpress.ru/search.php?q=graphic+adventure+creator&s=rw&f=0

Русификация спека - это всегда было камнем преткновения.
(кое-какие модели прошивались с русскими символами даже, "хоббит" например, но это шло всегда только во вред)
Если охота заморачиватся - ну в одном из zx-форумов описано (на примере pyjamarama вроде бы) как русифицировать игру (т.е. можно дёрнуть оттуда процедуры-шрифты-раскладки).
Если есть вариант на кубасике - значит и на спек сумеешь перенести (конечно придётся покорячится, всё-таки спековый бейсик очень самобытная штука)

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

Вот тут тоже что-то близкое: http://zxpress.ru/book_articles.php?id=876

То самое "vzatx jbloko" отобразится как нужно, т.е. "взять яблоко"
(это пример, возможно буква "я" у тебя будет приколочена к другой кнопке, но сути это не меняет)

---------- Post added at 04:50 ---------- Previous post was at 04:45 ----------

И вот ещё момент - очень рекомендуют назначить какую-нибудь горячую комбинацию по которой на экран выводилась бы раскладка клавиатуры, чтоб пользователь не искал полдня как ввести твёрдый знак (к примеру).
Ну и уведомить юзера с самого начала работы проги как ему подсказку вызывать, иначе замучатся можно (я например вешал буквы "Ш" и "Щ" на "[" и "]", а маленькие - на "{" и "}" - ввести их не так-то просто, но ведь и используются они редко).

Andrew771
19.12.2014, 10:10
Сообщение от Andrew771
А если нажимать транслитерированные (vzqt] qbloko), то надо в шрифте изображение русских символов делать для соответствующих латинских символов.
а можно подробней как это сделать?
В ПЗУ Спека имеются последовательные изображения всех символов шрифта (по 8 байт на символ, всего 768 байт вроде). Последовательность байтов соответствует кодировке символов. Посмотри в книгах, с какого адреса эта область начинается.
Ты создаешь изображения для своего шрифта, по сути свои 768 байт, кидаешь их в любую свободную память. А потом в системной переменной Спека, ответственной за шрифт (адрес тоже посмотри в книгах), устанавливаешь ссылку на адрес, куда положил свой шрифт. Всё! Теперь изображения символов будут браться из твоего шрифта.

Alex Rider
19.12.2014, 10:55
Вот тут (http://zxpress.ru/book_articles.php?id=591) старенькая, но очень ZX-овая статья на тему синтаксического анализа русских предложений в адвентюрах. По основному вопросу - если ты включил русский шрифт, то и вывод на экран, и ввод оператором INPUT будут выполняться этим шрифтом. Без программирования в кодах сделать одновременно большие и маленькие русские и английские буквы не получится.

Destr
19.12.2014, 10:59
Гораздо более тру - сделать 2048 байт под символы.
Тогда будет полная таблица и латинских букв, и русских.
Кодировка тоже давным-давно разработана и в общем-то стандарт (не надо заморачиватся с транслитерацией и прочими костылями)
Единственное препятствие - нужно всё-таки разбиратся как устроен спек (на программном уровне, аппаратный тут не нужен, слава богу не аркаду замутил топикстартер, адвенчур...)

Splinter
19.12.2014, 11:01
А разве нельзя сделать вместо ввода русских букв с клавиатуры менюшку с прописанными вариантами действий ?

Alex Rider
19.12.2014, 11:23
Гораздо более тру - сделать 2048 байт под символы.
Их надо будет кодом выводить. И вопрос ввода оператором INPUT как бы не решается.

А разве нельзя сделать вместо ввода русских букв с клавиатуры менюшку с прописанными вариантами действий ?
Обсуждали уже выше (http://zx-pk.ru/showpost.php?p=762835&postcount=8).

scl^mc
19.12.2014, 11:54
для создания игры в if-creator'e (http://vtrdos.ru/sbor/IF_CREAT.ZIP) топикстартеру навыков точно должно хватить. :)

Destr
19.12.2014, 12:57
Их надо будет кодом выводить. И вопрос ввода оператором INPUT как бы не решается.
Гор. клавиши не отменяли, и вообще - это как автор проги построит интерфейс (среду общения между прогой и юзером).
Так что всё в руках разработчика :)

Alex Rider
19.12.2014, 14:04
Гор. клавиши не отменяли
BASIC не умеет 2048-фонты. Можно сделать 2 768-фонта и переключаться между ними, но один большой фонт с двумя наборами символов использовать без кода не получится.

Shadow Maker
19.12.2014, 17:59
Можно сделать какое-нибудь IM2, которое будет например отслеживать кнопки CS+SS и по ним переключать фонты, работать будет только для ввода. Но по сути имеем тот же 768 байт шрифт, только будет в зависимости от нажатия клавишь подменять символы. Соответственно те же ограничения, что и в 768-символьном, разве что вводить удобнее.

Andrew771
19.12.2014, 21:56
Угу, можно же создать много шрифтов и переключать их изменением системной переменной. Можно даже так графику выводить из кучи символов, типа UDG, только количество символов не ограничено.

Alex Rider
19.12.2014, 22:55
Но по сути имеем тот же 768 байт шрифт, только будет в зависимости от нажатия клавишь подменять символы. Соответственно те же ограничения, что и в 768-символьном, разве что вводить удобнее.
И после переключения шрифта перерисовывать им всю вводимую строку при первом же нажатии клавиши. Это трюк был описан в каком-то ZX-Review или ZX-Forum, удобен для ввода програм с русским выхлопом на экране. Для ввода достаточно переключить шрифт на русский (если не требуется русско-латинский ввод, можно включать шрифт и с большими, и с маленькими буквами) и сделать обычный INPUT.

Destr
20.12.2014, 04:18
И после переключения шрифта перерисовывать им всю вводимую строку при первом же нажатии клавиши. Это трюк был описан в каком-то ZX-Review или ZX-Forum, удобен для ввода програм с русским выхлопом на экране. Для ввода достаточно переключить шрифт на русский (если не требуется русско-латинский ввод, можно включать шрифт и с большими, и с маленькими буквами) и сделать обычный INPUT.
Там вроде по-другому, там канал вывода подменяли на свой.

---------- Post added at 04:18 ---------- Previous post was at 04:17 ----------

Постоянных перерисовок не надо в таком разе (да и вообще спек слишком медленный для такого дела)

Alex Rider
20.12.2014, 11:44
Там вроде по-другому, там канал вывода подменяли на свой.
"Там" - это где? Shadow Maker говорит о подмене адреса фонта процедурой на IM2 по нажатию некоего "волшебного аккорда". Такая шьука печаталась в каком-то ревью за 1992 год. Подмена потока - это более другой способ руссификации.

Постоянных перерисовок не надо в таком разе (да и вообще спек слишком медленный для такого дела)
ПЗУшный редактор перерисовывает весь буфер ввода при каждом его изменении. Соответствено, текущим шрифтом.

Vovoi
20.12.2014, 15:29
Если писать, например, текстовый квест, то можно ли на basic'е сделать ввод русскими буквами?
Если можно то подскажите как
Мужики дело говорят. Я тоже не особо кодер, поэтому, когда нужно было быстро-быстро сляпать бейсик програмку в которой надо выводить тексты на русском, то с какого-то журнала стащил и сляпал програмулю. Загружается эта программа, загружается шрифт (все установлено в загрузчике). Выводится на экран адрес шрифта и после нажатия аникей отрабатывает NEW. Все, начинаем печатать бейсик-прогу и если в процессе набора ТЕКСТА ПРОГРАММЫ нажали SymbShift+Enter, то все символы в строке редактирования поменялись на русские (и даже английские операторы бэйсика). Еще одно нажатие меняет шрифт на английский. Набирая текст надо помнить о том, что в игре шрифты также переключаются по POKE где надо, чтобы не получилось END GAME в виде кракозябр!
Все это коряво по сравнению с редакторами ПЦ, но зато не нужно писать какой-то свой редактор бейсика, который съест всю память и на текст бейсика не останется ничего. Ну и лучше чем всякий раз вбивать POKE 23606/23607.
Авторы пишут, что симшифт+ентер никак не воспринимается системой, но экран перерисовывает, потому-то ими и была взята эта комбинация. Мне сейчас не найти свои сырцы, но если очень попросишь, покопаюсь.
Повтор - все это затевается лишь для русскоязычных игр, которые пишутся на бейсике (а я наверное и в генсе эту фигню использовал=)

Destr
20.12.2014, 15:47
Alex Rider, короче забили, мы по-ходу о разных вещах говорим.
Топикстартер найдет что ему надо, подсказок дали достаточно.
(если не найдёт - то видимо не очень-то и хотел, на крайняк поковыряем сами, ткнём носом)
А выяснять что каждый имел в виду и у кого пинус длиней можно и в аське например. Чего зря форум офтопить.

---------- Post added at 15:47 ---------- Previous post was at 15:46 ----------

У меня вообще последнее время проблемы со схватыванием сути на лету, старею что-ли так что пардон...

null_device
20.12.2014, 21:49
Можно сделать какое-нибудь IM2, которое будет например отслеживать кнопки CS+SS и по ним переключать фонты

Меня не покидает ощуение дежавю, будто я это уже где-то читал. Например, в zx-ревю. :D

Alex Rider
21.12.2014, 17:40
Все, начинаем печатать бейсик-прогу и если в процессе набора ТЕКСТА ПРОГРАММЫ нажали SymbShift+Enter, то все символы в строке редактирования поменялись на русские (и даже английские операторы бэйсика). Еще одно нажатие меняет шрифт на английский.
Это серьезно для адвентюры подойдет?

Чего зря форум офтопить.
Для потомков.

Меня не покидает ощуение дежавю, будто я это уже где-то читал. Например, в zx-ревю.
Ага, кажись, сборник 1992г. Найди ссыль, чот ниасилатор ноне.

Vovoi
21.12.2014, 23:12
Это серьезно для адвентюры подойдет?....
Даже не знаю. Посчитал, что он испытывает трудности при наборе самой бейсик-программы, а не в игровой ситуации. У автора было "на basic'е сделать ввод русскими буквами".