Важная информация

User Tag List

Показано с 1 по 10 из 31

Тема: Snake в 93 байт

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Activist
    Регистрация
    15.01.2005
    Адрес
    TYU-MEN
    Сообщений
    217
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Snake в 93 байт


    Первую версию змейки я написал за пару часов, и весила она чуть больше 150 байт. Я вспомнил про статьи в электронном журнале и захотел побить рекорд. Следующая версия уже весила 100 байт, но и потраченное время разработки перевалило за 6 часов. Остановившись на этом, показал свою версию игры, а начинающий программист – свою, и после я забыл об игре на некоторое время.

    Разбирая папку со своими проектами и исходниками, я наткнулся на исходный код своей Змейки и понял, что код можно немного модифицировать и сократить еще на пару байт. Процесс оптимизации занял целый день, а сокращение составило только 5 байт. В итоге игра стала весить 95 байт.

    • 59 строчек кода без комментариев
    • Полная релоцируемость программы (размещение в любой адрес без перекомпиляции)
    • Не используется стек
    • Используется только основной набор регистров: a,b,c,d,e,h,l и r как генератор случайности
    • Без использования процедур ПЗУ
    • Честная инициализация экрана и бордера
    • Классическое управление клавишами: 6,7,8,9 (Sinclair Joystick)
    • Каждую инициализацию псевдослучайным образом расставляться кролики


    Исходный код:

    Скрытый текст


    Код:
    	org #8000
    begin ld de,#598f;snake xy
    	ld hl,#5aff
    	ld b,l
    	ld c,l
    ;---
    rabbit1	ld (hl),b
    	ld a,r
    	cp l
    	jr z,rabbit2
    	inc (hl)
    rabbit2 dec hl
    	bit 3,h
    	jr nz,rabbit1
    	ex hl,de
    ;---
    l1	xor a
    	out (#fe),a
    clr	ld (de),a
    	dec de
    	bit 6,d
    	jr nz,clr
    ;---
    	ld (hl),33
    	ld d,#5a
    move1	ld a,(de)
    	dec a
    	cp 254
    	jr nc,move2
    	ld (de),a
    move2	jr nz,move3
    	dec (hl)
    move3	dec de
    	bit 3,d
    	jr nz,move1
    ;---
    	ld a,#ef
    	in a,(#fe)
    	rra
    	rra
    	jr c,$+5
    	ld bc,#ffe0
    	rra
    	jr c,$+5
    	ld bc,#0020
    	rra
    	jr c,$+5
    	ld bc,#0001
    	rra
    	jr c,$+4
    	ld b,e;ld bc,#ffff
    	ld c,e
    ;---
    	ld a,(hl)
    	and %00100000
    	add hl,bc
    	or (hl)
    	inc a
    	cp 7
    	jr nc,begin
    	ld a,h
    	inc a
    	and %00000011
    	jr z,begin
    	jr l1
    [свернуть]


    более подробно можно почитать на хабрахабр
    Последний раз редактировалось Firestarter; 10.04.2018 в 18:35.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SNAKE ESCAPE
    от DenisGrachev в разделе Игры
    Ответов: 20
    Последнее: 24.11.2019, 08:34
  2. БАЙТ БЭМЗ :)
    от stepmotor в разделе Память
    Ответов: 16
    Последнее: 01.03.2019, 21:24
  3. Байт 48
    от Arceny в разделе Несортированное железо
    Ответов: 87
    Последнее: 28.03.2017, 22:35
  4. Владельцам ПЭВМ "Байт" и "Байт-01" посвящается...
    от BYTEMAN в разделе Несортированное железо
    Ответов: 24
    Последнее: 20.09.2010, 23:25
  5. Диагностика п/к Байт
    от klingon в разделе Несортированное железо
    Ответов: 14
    Последнее: 24.05.2010, 19:03

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •