| Игры > Игры на консолях 1-4 поколений |
| BASIC на Сюборе (киборде, магистре и т.п.) примеры программ и т.д. |
| (1/1) |
| CRG:
Предлагаю несколько своих примеров на G-BASIC. Возможно кому то понадобится для обучения. Программа имитирующая загрузку данных. 10 CLS 20 LOCATE 1,21 30 PRINT "Press an key." 40 PAUSE 50 BEEP 60 CLS 70 LOCATE 1,9 80 PRINT "Loading..." 90 FOR I=1 TO 20 110 LOCATE I,10 120 PRINT CHR$(254) 130 LOCATE 1,11 140 PRINT "Camplite "; 5*I; "%" 150 PAUSE 5 160 NEXT 170 BEEP 180 END Программа имитирующая работу мыши. Управление джойстиком. 10 CLS 20 SPRITE ON: CGEN 3 30 X=120: Y=100 40 DEF SPRITE 0,(0,1,0,0,0)=CHR$(161) 50 SPRITE 0,X,Y 60 A=STICK(0) 70 IF A=0 THEN 60 80 IF A=1 THEN X=X+2 90 IF A=2 THEN X=X-2 100 IF A=4 THEN Y=Y+3 110 IF A=8 THEN Y=Y-3 120 IF X<3 THEN X=3 130 IF X>246 THEN X=246 140 IF Y<0 THEN Y=0 150 IF Y>230 THEN Y=230 160 SPRITE 0,X,Y 170 GOTO 60 180 SPRITE OFF: CGEN 2 190 END Описание работы некоторых операторов G-BASIC. Писал для своего 9 летнего сына. CLS Очистка экрана. Пример: 10 CLS Программа очищает экран. Вывод сообщения на экран. Пример: 10 CLS 20 PRINT "Привет!" Выводит на экран слово Привет! BEEP Издать звуковой сигнал. Пример: 10 CLS 20 BEEP Программа издаёт звуковой сигнала. PAUSE Задать паузу в программе, длительность паузы задаётся числом. Пример: 10 CLS 20 BEEP 30 PAUSE 200 40 BEEP Результат программа производит звуковой сигнал, а через 10 секунд второй звуковой сигнал. GOTO Переход на выполнение строки с указанным номером. Пример: 10 CLS 20 PRINT "Привет!" 30 GOTO 20 Печатает на экране слово "Привет!" бесконечное число раз. PLAY Проигрывает заданную мелодию. Мелодия записывается следующими значениями: A,B,C,D,I,F,G - семь тональностей, соответствуют семи нотам. T - скорость воспроизведения (длительность) значения от 1 до 8. O - тональность значения от 0 до 5. 0 - самый глухой звук, 5 -самый звонкий звук. R - сделать паузу в мелодии (отключить на время звук). Пример: 10 CLS 20 PLAY "ABCDEFG" 30 PAUSE 40 40 PLAY "T1O0ABCDEFG" 50 PAUSE 40 60 PLAY "T8O5ABCDEFG" Проигрывает мелодию из семи нот 3 раза с разной тональностью и скоростью. INPUT Ввод данных с клавиатуры. Оператор запрашивает данные и присваивает введённое значение указанной переменной. Пример: 10 CLS 20 INPUT A 30 INPUT B 40 C=A+B 50 PRINT C Программа запрашивает поочерёдно 2 числа, затем выводит на экран результат их сложения. FOR, NEXT Цикл. Повторяет указанное число раз операторы записанные в теле цикла. Переменная счётчика цикла увеличивает своё значение на 1 при каждом повторении. Пример: 10 CLS 20 FOR I=1 TO 10 30 PRINT I 40 PAUSE 40 50 BEEP 60 NEXT Программа выводит на экран поочерёдно цифры от 1 до 10, после каждой напечатанной цифры следует пауза и звуковой сигнал. IF, THEN Условие. Проверяется заданное условие если оно верно выполняется оператор записанный после слова THEN. 10 CLS 20 INPUT A 30 INPUT B 40 IF A>B THEN PRINT A; 50 IF B>A THEN PRINT B; 60 PRINT "-больше" Программа сравнивает 2 числа и выводит ответ какое число больше. RND Функция генерирует случайное число от 0 до указанного значения. Пример: 10 CLS 20 C=RND(1000) 30 PRINT C 40 PAUSE 20 50 GOTO 20 Программа выводит на экран случайные числа от 0 до 1000. LOCATE Оператор устанавливает курсор на указанное место экрана. Первая координата Х (столбец от 0 до 27), вторая координата Y (строка от 0 до 23). Пример: 10 CLS 20 FOR I=1 TO 15 30 X=RND(27) 40 Y=RND(23) 50 LOCATE X,Y 60 PRINT "*" 70 NEXT Программа рисует на экране звёздное небо. |
| Rumata:
Может проще было скан мануала выложить? |
| CRG:
Программа имитирующая меню. Управление крестиком джойстика, выбор пункта кнопка "А". Символы "_" в тексте программы нужно заменить пробелами. 10 CLS 20 X=1 30 LOCATE 13,5 40 PRINT "M E N U" 50 GOTO 130 60 A=STICK(0) 70 IF STRIG(0)=8 THEN BEEP 80 IF A=0 THEN 60 90 IF A=4 THEN X=X+1 100 IF A=8 THEN X=X-1 110 IF X>3 THEN X=3 120 IF X<1 THEN X=1 130 LOCATE 9,7 140 PRINT "__LOADING" 150 LOCATE 9,9 160 PRINT "__SAVE" 170 LOCATE 9,11 180 PRINT "__EXIT" 190 LOCATE 10,5+X*2 200 PRINT ">" 210 GOTO 60 220 END --- Цитата: Rumata от 27 Март 2022, 14:27:13 ---Может проще было скан мануала выложить? --- Конец цитаты --- Там не всё :cool: |
| Rumata:
--- Цитата: Rumata от 27 Март 2022, 14:27:13 ---Там не всё :cool: --- Конец цитаты --- Так и тут не всё :D Должно быть что-то типа: PAUSE описание: Временно останавливает выполнение программы формат: PAUSE [n] сокращение: PA. параметры: n = 0 - 32768 Game-BASIC - это несколько переделанный Family Basic. Если что, есть его вполне англоязычный оригинальный мануал. С кучей примеров, с BG GRAPHIC и таблицей спрайтов. Без чего это всё вообще не имеет смысла. Кстати, самые старые русские мануалы тоже были ничего, в более поздних почти всё вырезано. |
| Rumata:
--- Цитата: CRG от 27 Март 2022, 15:29:57 ---Ошибся, вместо слова "пользователь" прочитал "ПОЗВОЛЬТЕ" :-) --- Конец цитаты --- :lol: Я бы посоветовал ещё и словарём иногда пользоваться. Дабы различать "эмиттировать" и "имитировать" :lol: |
| CRG:
--- Цитата: Rumata от 27 Март 2022, 15:46:15 --- Должно быть что-то типа: PAUSE описание: Временно останавливает выполнение программы формат: PAUSE [n] сокращение: PA. параметры: n = 0 - 32768 --- Конец цитаты --- Ну да, это идеально, только осталось пометить что без операнда [n], выполнение программы останавливается до нажатия любой клавиши. У "Магистра" есть книжечка на русском и инструкция к Сюбору на русском встречается, а это примеры иногда нужны... --- Цитата: Rumata от 27 Март 2022, 16:03:22 --- :lol: Я бы посоветовал ещё и словарём иногда пользоваться. Дабы различать "эмиттировать" и "имитировать" :lol: --- Конец цитаты --- Да я тут с автоматическим исправлением ошибок замучился всё красным где надо и где не надо помечает, только за ним и смотрю, эмитирующая красным не горело 0_0 Ну вообще то да с первого класса страдаю от этого :-( |
| Rumata:
Мануалы нужно смотреть старые, типа BBG-I, Liko. Где-то у меня был китайский мануал, там вообще даже таблицы спрайтов цветные. Коды ошибок. NF NEXT without FOR SN Syntax error RG RETURN without GOSUB OD Out of DATA IL Illegal function call OV Overflow OM Out of memory UL Undefined line Number SO Subscript out of range DD Duplicate Definition DZ Devide by Zero TM Type mismatch ST String too long FT Formula too complex CC Can’t continue MO Missing operand TP Tape read ERROR В мануале есть подробная расшифровка --- Цитата: CRG от 27 Март 2022, 16:05:07 ---Да я тут с автоматическим исправлением ошибок замучился --- Конец цитаты --- Никогда не доверяйте роботам :D Особенно пользователи телефонов на автозамену жалуются. |
| lupus:
--- Цитата: Rumata от 27 Март 2022, 16:03:22 --- :lol: Я бы посоветовал ещё и словарём иногда пользоваться. Дабы различать "эмиттировать" и "имитировать" :lol: --- Конец цитаты --- Ещё «Camplite» вместо «Complete» и т.д. Добавлено позже: --- Цитата: Rumata от 27 Март 2022, 16:18:35 ---Особенно пользователи телефонов на автозамену жалуются. --- Конец цитаты --- В 90% случаев валят собственную неграмотность на «т9». |
| Rumata:
Да не, Яндекс мне тоже постоянно исправляет "опечатки" при поиске :lol: Ему ж виднее что я ищу |
| CRG:
Программа имитирующая работу вируса. В начале 90-x был такой вирус под MS-DOS, на экране осыпались буквы. 10 CLS 20 LIST 10-100 30 X=RND(27) 40 Y=11 50 A$=SCR$(X,Y) 60 IF A$<>CYR(32) THEN 100 70 Y=Y-1 80 IF Y<0 THEN 30 90 GOTO 50 100 LOCATE X,Y: PRINT " " 110 IF SCR$(X,Y+1)<>CHR(32) THEN LOCATE X,Y: PRINT A$;: GOTO 30 120 Y=Y+1 130 LOCATE X,Y: PRINT A$; 140 IF Y=23 THEN 30 150 GOTO 100 Программа посимвольного вывода текста. Эффект часто используемый в компьютерных играх. 10 CLS 20 X=1 30 READ A$ 40 IF A$="0" THEN END 50 L=LEN(A$) 60 FOR I=1 TO L 70 LOCATE I,X 80 PRINT MID$(A$,I,1);"_" 90 PLAY "T1O5D" 100 IF MID$(A$,I,1)=" " THEN PAUSE 5 110 NEXT 120 LOCATE L+1,X 130 PRINT " " 140 PAUSE 10 150 X=X+1 160 GOTO 30 170 DATA "Hello, world!", "Demonstration of the program.","0" Программа бегущая строка. 10 CLS 20 A$="Family Compute." 30 L=LEN(A$): D=1 40 FOR I=27 TO 0 SYEP -1 50 LOCATE I,21 60 PRINT MID$(A$,1,D);" " 70 PAUSE 5 80 D=D+1 90 IF D>L THEN D=L 100 NEXT 110 FOR I=0 TO L 120 LOCATE 0,21 130 PRINT MID$(A$,I+1,L-I);" " 140 PAUSE 6 150 NEXT Программа: шарик летает по экрану. Для остановки выполнения программы нужно нажать на любую клавишу. 10 CLS 20 X=50: Y=50 30 XK=1: YK=1 40 SPRITE ON: CGEN 3 50 DEF SPRITE 0,(0,1,0,0,0)=CHR$(207) 60 SPRITE 0,X,Y 70 X=X+XK 80 Y=Y+YK 90 IF X>246 THEN XK=-1 100 IF Y>220 THEN YK=-1 110 IF X<5 THEN XK=1 120 IF Y<5 THEN YK=1 130 IF INKEY$<>"" THEN CGEN 2: SPRITE OFF: END 140 GOTO 60 |
| Rumata:
Это всё конечно здорово и хорошо. Только зачем этим заниматься на Game-BASIC? Он всё же предназначен исключительно для игр, там Марио должен бегать, а не строка. |
| CRG:
Добавлено позже: --- Цитата: Rumata от 28 Март 2022, 23:46:50 ---Это всё конечно здорово и хорошо. Только зачем этим заниматься на Game-BASIC? Он всё же предназначен исключительно для игр, там Марио должен бегать, а не строка. --- Конец цитаты --- BASIC, хорошо подходит для изучения программирования. Нужны были примеры, не нашёл. Программа мини-игра "Game star", без спрайтов. Управление джойстиком, кнопка "A" - огонь. 10 CLS: X=13 20 LOCATE 10,10 30 PRINT "GAME STAR" 40 PAUSE: CLS 50 FOR I=1 TO 10 60 LOCATE RND(27),RND(20) 70 PRINT "*" 80 NEXT 90 LOCATE X,22: PRINT CHR$(253) 100 C=STICK(0): D=STRIG(0) 110 IF D=8 THEN GOSUB 210 120 IF C=0 THEN 100 130 LOCATE X,22: PRINT " " 140 IF C=1 THEN X=X+1 150 IF C=2 THEN X=X-1 160 IF X<0 THEN X=0 170 IF X>26 THEN X=26 180 LOCATE X,22: PRINT CHR$(253) 190 PAUSE 2 200 GOTO 100 210 FOR I=21 TO 0 STEP -1 220 LOCATE X,I: PRINT "." 230 LOCATE X,I: PRINT " " 240 NEXT 250 RETURN Программа демонстрирующая работу со спрайтами. Генератор одного символа. После первого запуска код на ассемблере будет записан в памяти и апостроф в 20 строке можно убрать. Программа запрашивает поочерёдно 8 байт в шестнадцатиричной форме и формирует символ заменяя им букву "a". Русская буква "Ю": 9C,A2,A2,E2,A2,A2,9C,00 "Рожица": 3C,42,A5,81,A5,99,42,3C 10 CLS 20 'GOTO 70 30 FOR I=&H7600 TO &H7612 40 READ D$ 50 POKE I,VAL("&H"+D$) 60 NEXT 70 FOR I=0 TO 7 80 PRINT I+1;" bytes ";: INPUT D$ 90 POKE &H7606,15+I 100 POKE &H760E,VAL("&H"+D$) 110 POKE &H2001,0 120 CALL &H7600 130 POKE &H2001,10 140 NEXT 150 PRINT "a" 160 DATA A9,16,8D,06,20,A9,10,8D,06,20,AD,07,20,A9,FF,8D,07,20,60 Таблица для перевода двоичных чисел в шестнадцатиричные: 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F Формирование символа пояснено на рисунке. |
| Rumata:
--- Цитата: CRG от 29 Март 2022, 09:48:16 ---BASIC, хорошо подходит для изучения программирования. --- Конец цитаты --- В том же картридже должен быть F-BASIC. Он как-то более подходит для таких целей. Правда с документацией там совсем плохо. --- Цитата: CRG от 29 Март 2022, 09:48:16 ---Нужны были примеры, не нашёл. --- Конец цитаты --- Да ладно. Даже в русской инструкции есть, хотя надо проверять. Есть английский мануал. У японцев похоже дофига всего. Правда на японском, но листинги-то на английском. Единственно что там BASIC используется по назначению, то есть для игр. И в идеале магнитофон нужен. И ещё Может есть смысл оформить нормальный мануал и выложить его отдельным документом в pdf? Потому как формат форума для этого не подходит совсем |
| CRG:
--- Цитата: Rumata от 29 Март 2022, 12:55:08 ---Может есть смысл оформить нормальный мануал и выложить его отдельным документом в pdf? Потому как формат форума для этого не подходит совсем --- Конец цитаты --- Кому то понадобится, разберутся, иногда же интересно почитать. Обучающая программа по математике, предлагается решить 10 примеров на сложение и вычитание (например 5+3= ), по окончании выводится количество ошибок и оценка. Симпатичная программа с голубым экраном. 10 CLS 20 PALETS 0,2,0,0,0 30 N=0 40 LOCATE 4,2 50 PRINT "M A T H E M A T I C S" 60 PLAY "T3ADCDEFG" 70 FOR I=1 TO 10 80 OP=RND(2) 90 C=1: CZ$="+" 100 A=RND(10) 110 B=RND(10) 120 IF OP=0 THEN C=-1: A=RND(6)+5: B=RND(6): CZ$="-" 130 D$=STR$(B):DL=LEN(D$) 140 D$=MID$(D$,2,DL-1) 150 LOCATE 9,6 160 PRINT A;CZ$;D$;"="; 170 INPUT F 180 LOCATE 9,6 190 PRINT " " 200 IF A+B*C=F THEN N=N+1 210 BEEP 220 NEXT 230 IF N>=5 THEN K=3 240 IF N>=8 THEN K=4 250 IF N>5 THEN K=2 260 IF N=10 THEN K=5 270 LOCATE 3,12 280 PRINT "OSHIBOK";10-N;" OCENKA";K 290 PAUSE 300 PALETS 0,13,0,0,0: CLS |
| Rumata:
--- Цитата: CRG от 29 Март 2022, 22:16:35 ---Кому то понадобится, разберутся, --- Конец цитаты --- Хорошая постановка вопроса |
| Mad:
CRG, В текстовый файл запишите всё что делаете, а после выложите на форуме (или не выкладывайте). Напомню, что форум - это не личный блог определенного пользователя. |
| CRG:
--- Цитата: Mad от 29 Март 2022, 22:26:10 ---...форум - это не личный блог определенного пользователя. --- Конец цитаты --- По вопросам личного дискомфорта обращайтесь к модераторам :D Программа выводит на экран список операторов, функций и команд G-BASIC. Операторы LAD (LOAD) и SVE (SAVE) хранятся в памяти в виде L->AD, S->VE. Видимо не используются в версии картриджей без возможности записи (не проверял). 10 CLS 20 X=0: Y=0 30 FOR I=0 TO 411 40 C=PEEK(&HC129+I) 50 IF (C>41) AND (C<48) THEN PRINT CHR$(C);: GOTO 110 60 IF (C>59) AND (C<90) OR (C=36) THEN PRINT CHR$(C);: GOTO 110 70 Y=Y+1 80 IF Y>22 THEN Y=0: X=X+10 90 IF X>26 THEN PAUSE: CLS: X=0: Y=0 100 LOCATE X,Y 110 NEXT 120 PAUSE --- Цитата: Rumata от 27 Март 2022, 16:18:35 --- Коды ошибок. NF NEXT without FOR SN Syntax error RG RETURN without GOSUB OD Out of DATA IL Illegal function call OV Overflow OM Out of memory UL Undefined line Number SO Subscript out of range DD Duplicate Definition DZ Devide by Zero TM Type mismatch ST String too long FT Formula too complex CC Can’t continue MO Missing operand TP Tape read ERROR --- Конец цитаты --- Спасибо, скопировал себе, пригодится. |
| p_star:
CRG, позаботьтесь пожалуйста о текстовичке, в котором всё вышенаписанное будет изложено. Не нужно захломлять форум этим. Пока тема закрыта, если надо будет откроем. |
| Навигация |
| Главная страница сообщений |