Autor Wątek: Konkurs dla programistów ;)  (Przeczytany 21545 razy)

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Konkurs dla programistów ;)
« Odpowiedź #30 dnia: 2013.09.23, 21:25:28 »
Ja też wolałbym pisać w asemblerze.
W sumie pomysł z wymyślaniem odpowiednika w języku wyższego poziomu może być, ale nie znam C, a konkurowanie w Basicu z programami w C nie wróży sukcesu...

...
Dla mnie ciekawsze od przepisywania algorytmów byłoby ich tworzenie - np. możliwie szybko oczyść ekran, scrolluj linię o 1 pixel w lewo/prawo, idź do celu omijając przeszkody, wypełnij kontur itp.


Szybkie czyszczenie ekranu to chyba już wszyscy wiedzą jak zrobić.  :)
Jak "najszybciej" i jak "optymalnie".
Ale pozostałe można by przemyśleć.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Konkurs dla programistów ;)
« Odpowiedź #31 dnia: 2013.09.26, 09:41:55 »
Dziś kolejne zadanie. Czas na rozwiązanie do czwartku rano, 3 października.
Rozwiązanie w dowolnym języku wysokiego poziomu, proszę wysyłać albo przez PW albo na maila.
Dodam, że ja mam już gotowe rozwiązanie, napisane w C, aczkolwiek sam się wykluczam z brania udziału
w konkursie. Moją procedurę opublikuję wraz z innymi nadesłanymi rozwiązaniami.


Program w z80 - przesuniecie w w lewo o jeden pixel tego co znajduje się na ekranie. Często kod jest wykorzystywany
w scrollach. W rejestrze HL adres danych do przesunięcia. Kod nie jest zoptymalizowany pod względem wydajności,
ale nie o to tym razem chodzi ;)

ld     hl,18432 +31
ld     b,32
_petla:
rl (hl)
dec hl
djnz _petla
ret

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Konkurs dla programistów ;)
« Odpowiedź #32 dnia: 2013.10.02, 16:35:34 »
No to wysłałem. W BASICu ;)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Konkurs dla programistów ;)
« Odpowiedź #33 dnia: 2013.10.04, 18:39:43 »
Wstrzymywałem publikację odpowiedzi, bo może ktoś chciał coś dostać.
Zatem, mamy jedno zgłoszenie -- Phonexa.  Zwycięzcą jest Phonex. ;-)

Załączam otrzymanego .tap Listing w BASICu:

    1 LET adres=18432
   10 FOR l=adres+31 TO adres+2048 STEP 32
   11 LET c=0
   20 FOR a=l TO l-31 STEP -1
   25 REM -------------------
   30 LET o=c+2*PEEK a
   40 LET c=INT (o/256)
   50 POKE a,o-256*c
   65 REM -------------------
   70 NEXT a
   80 NEXT l

Dla chętnych, niech sprawdzą czy to działa prawidłowo ;)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Konkurs dla programistów ;)
« Odpowiedź #34 dnia: 2013.10.08, 10:54:19 »
Kolejny konkurs czy sobie odpuszczamy z racji 'weźcie i zróbcie a ja popatrzę' ?

A jak już to proponowałbym jakąś prostą grę w BASICu.

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Konkurs dla programistów ;)
« Odpowiedź #35 dnia: 2013.10.08, 12:19:04 »
Czas jest, checi sa, tylko zdolnosci programistycznych brak :(
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Konkurs dla programistów ;)
« Odpowiedź #36 dnia: 2013.10.08, 13:18:14 »
Zatem, mamy jedno zgłoszenie -- Phonexa.  Zwycięzcą jest Phonex. ;-)

Haha, walkowerem! ;)
A już myślałem, że zobaczę inne sposoby.

A Twoja procedura?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Konkurs dla programistów ;)
« Odpowiedź #37 dnia: 2013.10.08, 18:24:56 »
Cytuj
A Twoja procedura?

Hm.. nie dodałem jej, sorki. Oto ona:

Cytuj
void scroll() {
   int addr = 18432 +31;
   int carry = 0;
   for(x = 0; x <32; x++)
   {
      int val = zx_Peek(addr);
      val <<= 1;
      if(carry) val |= 1;
      carry = val & 0x100;
      zx_Poke(addr, val);
      addr--;
   }
}

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Konkurs dla programistów ;)
« Odpowiedź #38 dnia: 2013.10.09, 17:17:00 »
Zrób konkurs na napisanie czegoś w asemblerze to obiecuję uczestniczyć.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Konkurs dla programistów ;)
« Odpowiedź #39 dnia: 2013.10.11, 20:13:05 »
Nie ma problemu, jestem jednak ciekaw czy oprócz Rafała i UB880D byłby ktoś chętny ;)

sect0r

  • *****
  • Wiadomości: 698
  • Miejsce pobytu:
    Oltedal/NO
  • speccyholic
Odp: Konkurs dla programistów ;)
« Odpowiedź #40 dnia: 2013.10.11, 20:22:50 »
Nawet jak nie będzie chętnych, dla mnie - raczkującego w asmie, każdy akapit kodu Z80 przeczytanego na speccy.pl jest bezcenny ;D
Szarak # DivIDE+ # MasakratorFM DeluXe by Zaxon

pear

  • *****
  • Wiadomości: 5511
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Konkurs dla programistów ;)
« Odpowiedź #41 dnia: 2013.10.12, 10:23:43 »
Na czymś trzeba poćwiczyć :)
ZX/Enterprise/CPC/Robotron/C128D

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Konkurs dla programistów ;)
« Odpowiedź #42 dnia: 2013.10.12, 11:57:46 »
Nie ma problemu, jestem jednak ciekaw czy oprócz Rafała i UB880D byłby ktoś chętny ;)

Trzeci!