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 ... 22 23 [24] 25 26 ... 30   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 237603 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #345 : Haziran 01, 2017, 17:09:38 ÖS »

Benim versiyonu byte byte render edecek hale getirdim. Daha da optimize edilebilir.

164 byte

Kod:
0 poke53265,59:poke53272,24
1 forc=-4to5:m=63-y/.7:poke9e3+y+(yand-8)*39+c*8,b:b=0:fori=0to7:z=abs(c*8+i)
2 b=b+b-(z<y/3andz>-morz<mand32>m):nexti,c:y=y+1:print:goto1

Edit 1: Şekilden ödün verince bir iki byte daha uçuyor ama şekli korumaya gayret ettim.
Edit 2: 33>m değil de 32>m ile daha düzgün bir şekil çıkıyor. Onu düzelttim.
« Son Düzenleme: Haziran 01, 2017, 17:39:57 ÖS Gönderen: Skate » Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #346 : Haziran 01, 2017, 17:57:47 ÖS »

Ek bir optimizasyon olmaksızın iki satıra indirerek 163 byte'a düşürülebiliyor. Satırlar 80 karakterden oluşmak zorunda diye düşünürsek daha 3 byte optimize edilmesi lazım. Ancak hem copy&paste, hem petcat ile compile edilebilen versiyon aşağıda.

Kod:
0 poke53265,59:poke53272,24:fOc=-4to5:m=63-y/.7:poke9e3+y+(yand-8)*39+c*8,b:b=0
1 fOi=0to7:z=aB(c*8+i):b=b+b-(z<y/3andz>-morz<mand32>m):neXi,c:y=y+1:print:goT0
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #347 : Haziran 01, 2017, 18:31:21 ÖS »

O baştaki 2 poke'dan sonunda kurtulabileceğimi biliyordum!

156 byte

Kod:
0 print:forc=-4to4:poke53269+c,43-c*4:m=63-y/.7:poke9e3+y+(yand-8)*39+c*8,b:b=0
1 fori=0to7:z=abs(c*8+i):b=b+b-(z<y/3andz>-morz<mand32>m):nexti,c:y=y+1:goto0
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #348 : Haziran 01, 2017, 21:27:35 ÖS »

Aynı boyutta biraz daha derlenmiş, toparlanmış versiyon. Şu 54100'den bir şeyler çıkarabilsek. 54100 = 541e2 aynı yeri kaplıyor. Ama o sıfırlar yok mu o sıfırlar...

Kod:
0 print:m=63-y/.7:forc=-4to5:poke54100+c,47-c*4:poke9e3+y+(yand-8)*39+c*8,b:b=0
1 fori=0to7:z=abs(c*8+i):b=b+b-(z<y/3andz>-morz<mand32>m):nexti,c:y=y+1:goto0

Edit: "m" gereksiz biçimde loop içinde tekrar tekrar hesaplanıyordu. loop dışına çıkarttım.
« Son Düzenleme: Haziran 01, 2017, 22:59:00 ÖS Gönderen: Skate » Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #349 : Haziran 01, 2017, 22:20:27 ÖS »

Oha, iki satıra inmişsin, bitmiş bu iş... Kahkaha
Logged

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


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #350 : Haziran 02, 2017, 00:13:24 ÖÖ »

Ben 159 da kaldım... Aslında teorik olarak iki satıra sığabilir görünüyor, yerleştirebilsem 2 byte daha gidecek, 157 olacak. Neyse başka türlü bir yöntem var mı bakınmaya devam...

Kod:
1 poke8191+a,d:e=aand7:h=a/40and-8:y=h+e:d=0:print:forp=0to7
2 w=abs(a-e-h*40+p-99)/2:poke53265+p,59-5*p
3 d=d+d-(w*4<yandw+48>yory>26andy+w<48):next:a=a+1:goto1
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #351 : Haziran 02, 2017, 00:24:07 ÖÖ »

Bu arada tek satır azaldığında tek byte kazanıyoruz, iki byte değil. CR sayılmıyor biliyorsun.

0 print
1 print

7+7=14

0 print:print

13

Kazanç:
Satır numarası + 1 boşluk = 2 karakter

Kayıp:
İki nokta karakteri = 1 karakter
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #352 : Haziran 02, 2017, 00:27:37 ÖÖ »

Bu arada hızlıca ASM versiyonunu kodladım. Henüz çok ham. ASM'ye özel hiç bir optimizasyon yok desem yeridir. Birebir basic versiyonunun aynısı. Hatta "/3" yazan yeri bile çakma bit shiftinglerle /3'e yakın bir işlemle çözdüm. Bunu adam etmek de bonus eğlence olacak.

* filled_star.prg (0.21 KB - Yükleme: 487 kez.)
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #353 : Haziran 02, 2017, 00:42:29 ÖÖ »

Bu arada tek satır azaldığında tek byte kazanıyoruz, iki byte değil. CR sayılmıyor biliyorsun.

Evet haklısın. Ben editorde select edip, sonra satır*2 kadar düşüyorum, editor CR ve LF yi de saydığı için. Oraya takılmış kafam...
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #354 : Haziran 02, 2017, 02:53:16 ÖÖ »

ASM versiyonunun elini yüzünü düzelttim. 192 byte ama bilerek gereksiz şeyler harcıyorum (tüm ekranı temizle, tam ortaya bas, border'ı siyah yap v.s.). Ama saatle bekleten basic versiyonlarından sonra görmüşken böyle görmek gerek di mi ama.

* filled_star.prg (0.19 KB - Yükleme: 499 kez.)
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.787


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #355 : Haziran 02, 2017, 22:16:26 ÖS »

Arkadaşlar şehir dışında olduğum için bu gün yeni soru gelemeyecek. Ancak pazar günü gönderebileceğim.
Kusura bakmayın.
Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #356 : Haziran 02, 2017, 23:08:30 ÖS »

@wizofwor: olm zaten dur iki dakika da nefes alalım.

Asm versiyonunu basic versiyonunun source code uzunluğunun altına indirebilir miyim diye baktım, indirebiliyormuşum. Şimdi sırada basic'den üretilen PRG boyutunun altına indirmek var.

* filled_star.prg (0.15 KB - Yükleme: 522 kez.)
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #357 : Haziran 03, 2017, 01:14:04 ÖÖ »

Benim hala basic versiyonu içime sinmiyor. Daha kısalabilir bence. Biraz bakınayim.
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #358 : Haziran 03, 2017, 01:59:16 ÖÖ »

Evet kısalabilir.

154 byte

Kod:
0 print:m=8-y/5:forc=-4to5:poke54100+c,47-c*4:poke9e3+y+(yand-8)*39+c*8,b:b=0
1 fori=0to7:z=abs(c+i/8):b=b+b-(z<y/21andz>-morz<mand4>m):nexti,c:y=y+1:goto0
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



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

yok artık. Bu gidişle 100 byte'ın altına inecek Kahkaha Ellerinize sağlık, zevkle takip ediyorum.
Logged
Sayfa: 1 ... 22 23 [24] 25 26 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: