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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Кому исходник тетриса размеро #01de байт... :)

  1. #1
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,172
    Благодарностей: 140
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Кому исходник тетриса размеро #01de байт... :)

    вот он:

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

    Код:
    ;SmallTris
    ;by rasmer/fishbone crew
    ;18.09.2014
    		DEVICE ZXSPECTRUM128
    		org #4000
    figures:
    		;1
    		db %01000100
    		db %01000100
    		db %01000100
    		db %01000100
    
    		db %00000000
    		db %11111111
    		db %00000000
    		db %00000000
    
    		db %01000100
    		db %01000100
    		db %01000100
    		db %01000100
    
    		db %00000000
    		db %11111111
    		db %00000000
    		db %00000000
    		
    		;2
    		db %01100110
    		db %01100110
    		db %00000000
    		db %00000000
    
    		db %01100110
    		db %01100110
    		db %00000000
    		db %00000000
    
    		db %01100110
    		db %01100110
    		db %00000000
    		db %00000000
    
    		db %01100110
    		db %01100110
    		db %00000000
    		db %00000000
    		
    		;3
    		db %01000100
    		db %01100110
    		db %00100010
    		db %00000000
    
    		db %01100110
    		db %11001100
    		db %00000000
    		db %00000000
    
    		db %01000100
    		db %01100110
    		db %00100010
    		db %00000000
    
    		db %01100110
    		db %11001100
    		db %00000000
    		db %00000000
    
    		;4
    		db %00100010
    		db %01100110
    		db %01000100
    		db %00000000
    
    		db %11001100
    		db %01100110
    		db %00000000
    		db %00000000
    
    		db %00100010
    		db %01100110
    		db %01000100
    		db %00000000
    
    		db %11001100
    		db %01100110
    		db %00000000
    		db %00000000
    
    		;5
    		db %01000100
    		db %01000100
    		db %01100110
    		db %00000000
    
    		db %00100010
    		db %11101110
    		db %00000000
    		db %00000000
    
    		db %01100110
    		db %00100010
    		db %00100010
    		db %00000000
    
    		db %11101110
    		db %10001000
    		db %00000000
    		db %00000000
    
    		;6
    		db %00100010
    		db %00100010
    		db %01100110
    		db %00000000
    
    		db %11101110
    		db %00100010
    		db %00000000
    		db %00000000
    
    		db %01100110
    		db %01000100
    		db %01000100
    		db %00000000
    
    		db %10001000
    		db %11101110
    		db %00000000
    		db %00000000
    
    		;7
    		db %01000100
    		db %11101110
    		db %00000000
    		db %00000000
    
    		db %01000100
    		db %11001100
    		db %01000100
    		db %00000000
    
    		db %00000000
    		db %11101110
    		db %01000100
    		db %00000000
    
    		db %01000100
    		db %01100110
    		db %01000100
    		db %00000000
    
    		;8 ;) lalala
    		db %01000100
    		db %11101110
    		db %00000000
    		db %00000000
    
    		db %01000100
    		db %11001100
    		db %01000100
    		db %00000000
    
    		db %00000000
    		db %11101110
    		db %01000100
    		db %00000000
    
    		db %01000100
    		db %01100110
    		db %01000100
    		db %00000000
    
    tetristart:
    		ei
    		ld b,8
    tts01:	ld a,b
    		dec a
    		out (#fe),a
    		halt
    		djnz tts01
    		
    		ld hl,#5800
    		push hl
    		ld de,#5801
    		ld bc,#2ff
    		ld (hl),l
    		ldir
    		pop hl
    		dec c
    		ld de,32
    		ld b,20
    		call ShowLine
    		ld e,1
    		ld b,11
    		call ShowLine
    		ld de,-32
    		ld b,21
    		call ShowLine
    NewFigure:
    		ld a,r
    		and %01110000
    		ld (AddrFigure),a
    		ld hl,#5804
    		ld (AddrScreen),hl
    		call CheckFigure
    		jr c,tetristart
    GameLoop:
    		ld a,0
    		inc a
    		and %00001111
    		ld (GameLoop+1),a
    		
    		call ShowHideFigure ;show
    		halt
    		call ShowHideFigure ;hide
    		ld bc,#effe
    		in a,(#fe)
    		rra
    		jr nc,PressRotate
    		rra
    		jr nc,PressRotate
    		rra
    		jr nc,PressFaster
    		rra
    		jr nc,PressRight
    		rra
    		jr nc,PressLeft
    gl01:
    		ld a,(GameLoop+1)
    		or a
    		call z,ToDown
    		jr GameLoop
    PressFaster:
    		ld a,(GameLoop+1)
    		and %00000001
    		call nz,ToDown
    		jr gl01
    PressRight
    		ld hl,-1
    		ld (UnMoving+1),hl
    		ld de,1
    		jr pl01
    PressLeft
    		ld hl,1
    		ld (UnMoving+1),hl
    		ld de,-1
    pl01:	call Moving
    		call CheckFigure
    		call c,UnMoving
    		jr gl01
    UnMoving:
    		ld de,#0000
    Moving:
    		ld hl,(AddrScreen)
    		add hl,de
    		ld (AddrScreen),hl
    		ret
    PressRotate:
    		ld a,(GameLoop+1)
    		and %00000011
    		jr nz,gl01
    		ld d,4
    		call Rotate
    		call CheckFigure
    		call c,UnRotate
    		jr gl01
    UnRotate: 
    		ld d,-4
    Rotate:
    		ld a,(AddrFigure)
    		ld l,a
    		add a,d
    		and %00001111
    		ld h,a
    		ld a,l
    		and %11110000
    		or h
    		ld (AddrFigure),a
    		ret
    ToDown:
    		ld hl,-32
    		ld (UnMoving+1),hl
    		ld de,32
    		call Moving
    		call CheckFigure
    		ret nc
    		call UnMoving
    		call ShowHideFigure
    
    		ld hl,#5800
    		ld b,20
    td01:	push hl
    		push bc
    		ld c,11
    td02:
    		xor a
    		or (hl)
    		jr z,td03
    		inc l
    		dec c
    		jr nz,td02
    		
    		ld a,l
    		and %11100000
    		ld l,a
    		push hl
    		push hl
    		ld bc,#5820
    		sbc hl,bc
    		ld b,h
    		ld c,l
    		pop hl
    		ld de,#20
    		add hl,de
    		ex hl,de
    		pop hl
    		lddr
    
    td03:	pop bc
    		pop hl
    		ld de,32
    		add hl,de
    		djnz td01
    		jp NewFigure
    
    CheckFigure:
    		ld a,#07
    		ld (sf04+0),a
    		ld a,#d8
    		jr sf05
    AddrFigure:
    		dw #4000
    AddrScreen:
    		dw #5804
    ShowHideFigure:	
    		ld a,#ee
    		ld (sf04+0),a
    		ld a,#ff
    sf05:	ld (sf04+1),a		
    
    		ld hl,figures
    		ld de,FigureBuffer
    		ld bc,128
    		ldir
    		
    		ld h,high FigureBuffer
    		ld a,(AddrFigure)
    		ld l,a
    		
    		ld de,(AddrScreen)
    		ld b,4
    sf01:	ld c,4
    sf02:	rlc (hl)
    		jr nc,sf03
    		ld a,(de)	;#4a		
    sf04:	xor #ff		;#ee,#ff	;07 - RLCA ;#d8 - ret C
    		ld (de),a	;12
    sf03:	inc de
    		dec c
    		jr nz,sf02
    		push hl
    		ld hl,28
    		add hl,de
    		push hl
    		pop de
    		pop hl
    		inc l
    		djnz sf01
    		or a ;!!!!! 
    		ret
    ShowLine:
    		ld (hl),c
    		add hl,de
    		djnz ShowLine
    		ret
    		DISPLAY $
    		align 256
    
    FigureBuffer:
    		SAVESNA "smalltris.sna",tetristart
    [свернуть]
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

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

  3. #2
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Бугага, как я написал тетрис для дендиконфы, это стало поветрием

    на самом деле:
    http://256bytes.untergrund.net/demo/903

  4. #3
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,172
    Благодарностей: 140
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а я и не писал, что он самый маленький.... просто мне это ненадо (для баловства за вечер написал), а ктото может покопается....
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  5. #4
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    интересно как фигурки забиты.
    каноничнее так:

  6. #5
    Guru Аватар для rasmer
    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,172
    Благодарностей: 140
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А мне вот так захотелось... :-)
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  7. Этот пользователь поблагодарил rasmer за это полезное сообщение:
    denpopov (15.10.2014)

  8. #6
    Member
    Регистрация
    08.02.2006
    Адрес
    Москва
    Сообщений
    30
    Благодарностей: 3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для минимизации размера проще хранить фигуры как последовательность направлений смещения:
    • 1-лево
    • 2-вверх
    • 3-право
    • 4-вниз


    А поворот фигуры обсчитывать как +1 направлению, при достижении 5, утснавливаем в 1.
    Конец описания фигуры – включенный старший бит, т.к. длина описания фигуры может быть разной, для более точного определения “центра вращения” фигуры.
    Т.е. например, квадрат – 3 байта:
    • 000000100;4
    • 000000001;1
    • 100000010;2+старший бит


    Без счета баллов и всякого оформления я писал тетрис в 100 байт, включая описания фигур.

    Да, проверку возможности вращения и достижения поверхности осуществляем прямо при отрисовке, которая имеет 2 режима: отрисовка с проверкой - если в новой позиции место "занято", то отрисовка не возможна. И непосредственно отрисовка, если вращение или перемещение возможно.
    Последний раз редактировалось klondike; 18.10.2014 в 14:13.

  9. #7
    Veteran Аватар для drbars
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,531
    Благодарностей: 656
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Без счета баллов и всякого оформления я писал тетрис в 100 байт, включая описания фигур.
    Исходники в студию
    ZX Spectrum +2 / DataGear / DivIDE 2k14
    ZX Evolution rev.C
    ZX Spectrum NEXT

  10. Этот пользователь поблагодарил drbars за это полезное сообщение:
    rasmer (21.10.2014)

  11. #8
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,508
    Благодарностей: 5883
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В двух демах недавна сделали эффект тетриса. Еще чтоли сделать третий?
    Мне кажеться что в деме зтв все сделано уже и более добавить нечего

  12. #9
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,122
    Благодарностей: 1075
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AAA Посмотреть сообщение
    Еще чтоли сделать третий?
    если только найдешь похожую гифку

  13. #10
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,508
    Благодарностей: 5883
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    если только найдешь похожую гифку
    Я и гаврарю нафига.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Помогите расшифровать С исходник
    от jerri в разделе Программирование
    Ответов: 19
    Последнее: 06.06.2013, 21:27
  2. Исходник плеера PT2, модифицированный
    от Barmaley_m в разделе Программирование
    Ответов: 4
    Последнее: 21.09.2007, 14:24
  3. Исходник плеера PT2, модифицированный
    от Barmaley_m в разделе Музыка
    Ответов: 4
    Последнее: 21.09.2007, 14:24
  4. Ищу исходник журнала Spectrofon
    от Vitron в разделе Софт
    Ответов: 7
    Последнее: 18.03.2007, 02:08

Ваши права

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