Autor Wątek: Wyzwanie dla programistów #4  (Przeczytany 51800 razy)

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: Wyzwanie dla programistów #4
« Odpowiedź #75 dnia: 2017.06.02, 14:18:32 »
a to bardzo przepraszam i wracam do przypominania sobie z80 :P
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

tooloud

  • *****
  • Wiadomości: 3188
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Wyzwanie dla programistów #4
« Odpowiedź #76 dnia: 2017.06.03, 02:58:47 »
ja odpalam ostatnio z tzxduino a nie mmc :)
dużo sprzętu mało czasu.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Wyzwanie dla programistów #4
« Odpowiedź #77 dnia: 2017.06.03, 14:40:23 »
Dobra, jestem gotów. Dla wielbicieli pasków przygotowałem ekran ładowania (trochę z tym roboty, żeby zrozumieć jak dodać blok w ZX Block Editorze).
Czekam na beta testera i dodaję ekran zakończenia gry (poza grą, na WWW) - więc wrzucę maksymalnie jutro.

Z perspektywy widzę jak prosto pisze się na dzisiejsze maszyny i jak upierdliwy bywał tryb graficzny Spectrum z atrybutami 8x8.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Wyzwanie dla programistów #4
« Odpowiedź #78 dnia: 2017.06.04, 13:13:27 »
Miłego grania :)

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: Wyzwanie dla programistów #4
« Odpowiedź #79 dnia: 2017.06.04, 15:25:04 »
No ładne cacko!

Bawiłeś się w kompresję textu? Pytam się bo sam zabieram się za testówkę (140kb literek;)

Za grafikę szacun - że też chciało Ci się ją robić!
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

silenter

  • *****
  • Wiadomości: 1337
  • Miejsce pobytu:
    Warszawa/Radzymin
Odp: Wyzwanie dla programistów #4
« Odpowiedź #80 dnia: 2017.06.04, 17:27:04 »
@smok.wawelski - Wciąga - szacun
128k +2 UK issue 1, JS128, FDD3000 in restoration, ZAXON MGT +D, PEAR AmpY, Pear ExEar :), PEAR TI-OF-TTL+FDD35, co to tu robi??? => 2xCDTV&A500

https://soundcloud.com/silenter

https://www.youtube.com/channel/UCKZhL7Lq1zUDDnRDTJKhN4A

tooloud

  • *****
  • Wiadomości: 3188
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Wyzwanie dla programistów #4
« Odpowiedź #81 dnia: 2017.06.04, 17:34:22 »
bardzo fajna gra - wciągnęła mnie na dobrą godzinę zanim mnie nie rodzina nie przywołała do porządku. Wrzucam na ZX DS.
dużo sprzętu mało czasu.

silenter

  • *****
  • Wiadomości: 1337
  • Miejsce pobytu:
    Warszawa/Radzymin
Odp: Wyzwanie dla programistów #4
« Odpowiedź #82 dnia: 2017.06.04, 17:38:37 »
Wrzucam na ZX DS.
Co to jest ZX DS?
128k +2 UK issue 1, JS128, FDD3000 in restoration, ZAXON MGT +D, PEAR AmpY, Pear ExEar :), PEAR TI-OF-TTL+FDD35, co to tu robi??? => 2xCDTV&A500

https://soundcloud.com/silenter

https://www.youtube.com/channel/UCKZhL7Lq1zUDDnRDTJKhN4A

Maryjan

  • *****
  • Wiadomości: 6666
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Wyzwanie dla programistów #4
« Odpowiedź #83 dnia: 2017.06.04, 17:47:36 »
Fajna, fajna.
Taka trochę "paragrafowa" jak dawniej bywały w wydaniach papierowych :)
"Co miałem powiedzieć - przeczytałem..." Nikodem Dyzma

tooloud

  • *****
  • Wiadomości: 3188
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Wyzwanie dla programistów #4
« Odpowiedź #84 dnia: 2017.06.04, 17:49:07 »
Emulator speccy na Nintendo DS etc.

Ze względu na dotykowy dolny ekran jest wygodniejszy niż Fuse i n.p do tekstówek taka ekranowa klawiatura mi wystarcza.
dużo sprzętu mało czasu.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Wyzwanie dla programistów #4
« Odpowiedź #85 dnia: 2017.06.04, 20:50:47 »
No ładne cacko!

Bawiłeś się w kompresję textu? Pytam się bo sam zabieram się za testówkę (140kb literek;)

Za grafikę szacun - że też chciało Ci się ją robić!

Nie bawiłem się, bo większym problemem okazała się waga grafiki. Musiałem zrezygnować z kilku ekranów. Natomiast w bardziej poważnej grze - absolutnie zrobiłbym kompresor, lub użył MegaLZ (którego używam zresztą do kompresji screenów).

Przy okazji muszę bardziej zrozumieć, co Boriel ZX Basic robi ze stringami, bo mam wrażenie, że korzystanie ze stringów zamiast tablicowania ich bezpośrednio do pamięci jako wstawek assemblerowych spowodowało problemy z pamięcią.

Co do kompresora tekstu: myślałem o algorytmie słownikowym - w grach tekstowych jest dużo powtórzeń tych samych wyrazów - np. imiona bohaterów, lokacji itp. Na PC można by wrzucić te teksty w algorytm genetyczny, który by w iluś-milionach iteracji przetestował, które słowa warto zamienić na skróty. Taki był mój pomysł ale w 10 dni ciężko zrobić grafikę, scenariusz i jeszcze męczyć się z kompresorem...

tooloud

  • *****
  • Wiadomości: 3188
  • Miejsce pobytu:
    Warszawa
  • mydłem go!
Odp: Wyzwanie dla programistów #4
« Odpowiedź #86 dnia: 2017.06.04, 21:34:42 »
robiłem koedyś algorytm pod kompresor bazujący na sylabach. Taka praca słownikowa.
dużo sprzętu mało czasu.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Wyzwanie dla programistów #4
« Odpowiedź #87 dnia: 2017.06.04, 22:56:35 »
Jest jeszcze jedna magiczna sztuczka ale nie wiem jak się sprawdzi na Spectrum: algorytm Trie. Sylaby mogą być zbyt krótkie do zamiany słownikowej. Jutro zrobię sobie rozkład wyrazów z gry i z ciekawości sprawdzę, ile by się dało zaoszczędzić.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Wyzwanie dla programistów #4
« Odpowiedź #88 dnia: 2017.06.05, 15:05:15 »
Bawiłeś się w kompresję textu? Pytam się bo sam zabieram się za testówkę (140kb literek;)

Policzyłem sobie statystykę wyrazów: 615 unikalnych, 150 powtarza się raz lub więcej (rekordzista to "na" - 41 razy, "widzę" to 12 powtórzeń).
Mógłbym użyć słownika 2 bajty na wyraz, co przy tekście ok. 8 KB zajęło by 1161 wyrazów x 2 bajty + spacje - ok. 2.5 KB czyli prawie 4 krotną kompresję.
Zakładając, że niektóre wyrazy można by kodować pojedynczym bajtem (te najpopularniejsze i najdłuższe) to wydaje się, że 140 KB w 40KB jest do zrobienia.

Można by jeszcze pobawić się w złożenia wyrazów (ta kochana polska odmiana) np. w moim przypadku może nie ma co kodować słów z rdzeniem profesor[-a, -owi, -em] itp tylko złożyć rdzeń i końcówkę oddzielnie ale trzeba by to przetestować i policzyć.

PS. Faktycznie, gdyby ktokolwiek chciał pisać tekstówki w Boriel ZX Basic, to zdecydowanie odradzam natywny typ String na rzecz wstawek ASM - da się wcisnąć dużo więcej w pamięć.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Wyzwanie dla programistów #4
« Odpowiedź #89 dnia: 2017.06.05, 16:59:00 »
Możesz też zrobić tak że 254 częściej występujące słowa zdefiniujesz jednym bajtem, a 2 bajty przeznaczysz na przełącznik na kolejne zestawy po 256 innych słów. Wtedy dwu-bajtowo określisz tylko te rzadziej występujące słowa co pewnie da trochę oszczędności. :)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)