Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore YazılımC64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü
Sayfa: 1 ... 23 24 [25] 26 27 ... 30   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 239866 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #360 : Haziran 03, 2017, 02:22:04 ÖÖ »

Öncelikle 151 byte

Kod:
2 fory=0to80:print:forx=-48to47:g=yand7:poke9e3-g*39+y*40+(xand-8),d:w=abs(x/2)
3 d=255andd+d-(w*4<yandw>y-48ory>24andw<48-y):poke53265+g,59-g*5:nextx,y

Sonsuz döngülü olsun dersek, ki ben pek sevmiyorum ama olsun, 149 byte

Kod:
2 y=y+1:print:forx=-48to47:g=yand7:poke9e3-g*39+y*40+(xand-8),d:w=abs(x/2)
3 d=255andd+d-(w*4<yandw>y-48ory>24andw<48-y):poke53265+g,59-g*5:next:goto2

Aspect ratio biraz bozulabilir dersek 147 byte

Kod:
2 y=y+1:print:forx=-48to47:g=yand7:poke9e3-g*39+y*40+(xand-8),d:w=abs(x)
3 d=255andd+d-(w*4<yandw>y-60ory>30andw<60-y):poke53265+g,59-g*5:next:goto2

Bence hala potansiyel var bu soruda, bazı yerleri çok üstün körü geçtim. Örneğin poke53265+g,59-g*5 buna daha optmize birşey bulunabilir vb...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #361 : Haziran 03, 2017, 02:23:37 ÖÖ »

Dolusu 170'in altına inmez diyorduk bu soru için, 20 küsür byte nasıl da uçtu 3-5 günde... Kahkaha
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #362 : Haziran 03, 2017, 02:29:25 ÖÖ »

147 ha. Kahkaha Adım adım, ben 153'deyim...

153 byte

Kod:
0 print:forc=-4to5:poke54100+c,47-c*4:poke9e3+y+(yand-8)*39+c*8,b:b=0:fori=0to7
1 z=abs(c+i/8)*5:b=b+b-(z<y/4andz>y-40orz<40-yandy>20):nexti,c:y=y+1:goto0
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #363 : Haziran 03, 2017, 02:34:56 ÖÖ »

Abi sonunda aynı kodda buluşacağız Kahkaha
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #364 : Haziran 03, 2017, 02:35:11 ÖÖ »

Bu arada benimki de biraz deforme oldu tabii aşırı optimizasyondan ancak tam 1'in 2'nin katları gibi gitmemesine uğraşıyorum. Hep bir eğim var. Slope'lar küsüratlı ilerliyor. Yoksa ben de bir kaç byte uçurabilirim.

Edit: Sen bana başta farklı bir yöntemle render ettiğini söylemiştin (tersten şeklinde) ama aslında benim render yöntemim de aynıydı. Sadece bit bit ilerliyordu. Aynı kodda buluşmamız doğaldır.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #365 : Haziran 03, 2017, 02:46:02 ÖÖ »

Senin yıldız daha güzel. Ben işin başında, yanımda bilgiayar yokken başladım, kareli kağıda çizdim. (w*4<yandw>y-60ory>30andw<60-y) formülünü kağıt üzerinde çıkardım. Optimizasyonlar hep onun üzerinden gitti. Aslında bu formül ve ifade ettiği yıldız ideal yıldız değil, o an için karaladağım birşeydi. Belki ideal olsa daha kolay optimize olurdu yada olamayabilirdi... Kahkaha



Bu arada tam detayına bakmadım ama senin yıldız formülün sanırım daha kısa. 

deli : (w*4<yandw>y-60ory>30andw<60-y)
Skate: (z<y/3andz>-morz<mand32>m)

Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #366 : Haziran 03, 2017, 02:50:49 ÖÖ »

Edit: Sen bana başta farklı bir yöntemle render ettiğini söylemiştin (tersten şeklinde) ama aslında benim render yöntemim de aynıydı. Sadece bit bit ilerliyordu. Aynı kodda buluşmamız doğaldır.

Ben son yöntemde iki yöntemi mixledim aslında. İlk başta x,y üzerinden gidip adresi hesaplıyordum. Sonra adres üzerinden gidip x ve y yi bulduğum bir versiyon yaptım. Sonra her 8 bit için x in bir anlamı olmadığını farkettim zira byte byte yazmak daha efektif oluyordu, son olarak yani bu gece paste ettiğim kodlarda gene x ve y üzerinden giden yönteme döndüm ama bir farkla. Her 8 bir dolunca data değişkenini sıfırlamamak için shift register gibi birşey yaptım. d=0: dan kurtuldum ama 255and geldi bu sefer. Olsun gene de her bir satırı bir döngüde yapıyor olmak adres hesabını kolaylaştırdı... 
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #367 : Haziran 03, 2017, 03:06:56 ÖÖ »

yok artık. Bu gidişle 100 byte'ın altına inecek Kahkaha Ellerinize sağlık, zevkle takip ediyorum.
Retro fütüristik aşık atışmasına döndü resmen. Kahkaha Ben de büyük zevkle takip ediyorum.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #368 : Haziran 03, 2017, 03:45:01 ÖÖ »

Tek loop'a indirince bende de sonuç şimdilik şöyle. Bonus spritelarımız var, efekte tasarım da gelmeye başladı. :p

Düzgün şekil

147 byte
Kod:
0 print:forc=-32to30:poke53242+c,121-3*c:poke9e3+y+(yand-8)*39+(cand-8),b
1 z=abs(c*.7):b=255andb+b-(z<y/4andz>y-40orz<40-yandy>20):next:y=y+1:goto0

Bozuk şekil:

144 byte
Kod:
0 print:forc=-32to30:poke53242+c,121-3*c:poke9e3+y+(yand-8)*39+(cand-8),b
1 z=abs(c):b=255andb+b-(z<y/4andz>y-40orz<40-yandy>20):next:y=y+1:goto0

Edit: Satırları eşit dağıtmamışım, 80 karakteri geçiyordu ilk satır, onu düzenledim.
« Son Düzenleme: Haziran 03, 2017, 04:14:37 ÖÖ Gönderen: Skate » Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #369 : Haziran 03, 2017, 04:02:54 ÖÖ »

Bu arada şimdi senin rutininle kıyasladım (ki elbette ki tek loop'a indirirken senin yöntemlerini kullanmıştım, bahsettiğim geri kalan kısmı). Benim parantez içi de dönüp dolaşıp seninkine dönmüş bir bakıma. Ancak plot rutinlerimiz farklı hala. Oradan bir kaç byte fark ediyor.
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #370 : Haziran 03, 2017, 05:47:17 ÖÖ »

Proper 146 byte (şekilsiz 143)

Kod:
0 print:forc=-32to31:poke53242+c,121-3*c:poke8991+y+(yand-8)*39-(cor7),b
1 z=abs(c*.7):b=b/2or-128*(z<y/4andz>y-40orz<40-yandy>20):next:y=y+1:goto0

Bu kısım eğlencelik, yoksa diğeriyle aynı. Optimizasyon plot rutininde.

Kod:
b/2or-128*
255andb*2-
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #371 : Haziran 03, 2017, 05:55:24 ÖÖ »

Proper 144, diğerini -3 byte olarak hesaplayın işte

Kod:
0 print:forc=-32to31:poke53242+c,121-3*c:poke9038+y+(yor7)*39-(cor7),b
1 z=abs(c*.7):b=b/2or-128*(z<y/4andz>y-40orz<40-yandy>20):next:y=y+1:goto0
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #372 : Haziran 03, 2017, 06:18:29 ÖÖ »

Proper 143 byte

Kod:
0 print:forc=-32to31:poke53242+c,121-3*c:poke9e3+y+(yor7)*39+(cor7),b
1 z=abs(c*.7):b=255andb*2-(z<y/4andz>y-40orz<40-yandy>20):next:y=y+1:goto0
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #373 : Haziran 03, 2017, 07:45:30 ÖÖ »

Aslında görmüşsündür benim kodda g değişkenine ihtiyaç yoktu. Spritelar ve ekran titreşimleri çıkmasın diye eklemiştim. Yoksa birkaç byte daha kısalıyor...

Bu arada sonunda kod 0 sys"uucgen cizen kernal rutini" şeklinde 10 byte a sığacak.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #374 : Haziran 03, 2017, 15:45:54 ÖS »

Spritelar hariç yazan yeri göremedim.

Ekranın geri kalanında garbadge data olabilir..
Logged
Sayfa: 1 ... 23 24 [25] 26 27 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: