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 ... 11 12 [13] 14 15 ... 29   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 20285 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #180 : Mayıs 15, 2017, 00:42:54 ÖÖ »

ben de bel altı vurmayı denedim, 94 karakter ile elimde patladı... Ama değişik bir çözüm olarak çalışıyor... Kahkaha

Kod:
1 geta$:printa$;:k$(i)=k$(i)+a$:i=i-(a$=" "):ifa$<>chr$(13)then1
2 fort=1toi-1:printk$(t);:next
Logged

emarti
Uzman
*****
Mesaj Sayısı: 1.358


furiatuneGUI █


Üyelik Bilgileri WWW
« Yanıtla #181 : Mayıs 15, 2017, 00:57:15 ÖÖ »

ben de bel altı vurmayı denedim, 94 karakter ile elimde patladı... Ama değişik bir çözüm olarak çalışıyor... Kahkaha

Kod:
1 geta$:printa$;:k$(i)=k$(i)+a$:i=i-(a$=" "):ifa$<>chr$(13)then1
2 fort=1toi-1:printk$(t);:next

HALUK LEVENT için LEVENT çıktısı var.
Logged

READY.
https://github.com/emartisoft  *  http://csdb.dk/scener/?id=26786  *  http://emarti.sf.net  <RETURN>
?SYNTAX  ERROR
READY.

delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #182 : Mayıs 15, 2017, 01:06:38 ÖÖ »

Evet haklısın, 3 kelimeden az mı kontrolü gerekiyor buna...
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #183 : Mayıs 16, 2017, 02:41:23 ÖÖ »

Farklı çözümlerin hiçbiri yeterince kısa olmuyor ancak denemelerimin iki tanesini paylaşıyorum. İkisi de kurallara uyuyor. En az iki kelime ile çalışıyorlar, tek harf/kelime girilirse patlayabiliyorlar ama sanırım önceki çözümlerin çoğu da böyle zaten.

Sağdan soldan string'i scan etmeyi sub routine kullanarak yapmayı denedim. Kısa olmayacağını tahmin etmiştim ancak yine de "belki bir şekilde optimize edilir" diye yola çıktım. Tabii ki edilemedi.

Kod:
0 inputa$:d=1:gosub1:s=i:d=-1:i=len(a$):gosub1:printmid$(a$,s+2,i-s):end
1 i=i+d:ifpeek(512+i)>32then1
2 return

Bu ise çok daha temiz bir çözüm. Tek scan'de m(0)'da ilk space karakterini, m(m(0))'da ise son space karakteri ile ilki arasındaki karakter sayısını bırakıyor. Daha önemlisi her ikisini de mid$ beklediği değerler şeklinde hesaplıyor (index 1'den başlayacak şekilde). Ama yine de 93 byteları buluyor. Optimize edilse bile 82'nin altına düşmeyeceği aşikar.

Kod:
0 inputa$:fori=2tolen(a$):ifpeek(510+i)=32thenm(m(0))=i-m(0)
1 next:printmid$(a$,m(0),m(m(0)))

82 byte'lık çözümü ise bir iki byte kısaltmanın bir kaç farklı yolunu buldum ama hepsi belli kural dışı şeylerle son buldu. Örneğin doğru çalışıp error veren kısa versiyonlarım var. Şimdilik adam gibi bir çözüm bulmadıkça o versiyonları paylaşmıyorum.
Logged
delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #184 : Mayıs 16, 2017, 21:49:19 ÖS »

İkinci çözümün güzelmiş. Bende bunun türevleri üzerine çalıştım ama 90 byteların altına inmedi...

Kod:
0 inputa$
1 s=asc(a$)>32:e=right$(a$,1)>" ":a$=mid$(a$,1-s,len(a$)+s+e):ife+sthen1
2 printa$
Logged

delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #185 : Mayıs 17, 2017, 01:10:47 ÖÖ »

Biraz lame oldu ama 81 byte ... Kahkaha

Kod:
0 inputa$:fori=1to81:ifmid$(a$,i,1)=" "thenprintmid$(a$,a+1,i*b-a);:a=i:b=1
1 next
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #186 : Mayıs 17, 2017, 14:32:51 ÖS »

Elimde şöyle bir versiyon var, senin son optimizasyonla birlikte 76 byte'a kadar düşüyor. Sıkıntı doğru sonucu yazdıktan sonra illegal quantity error vermesi.

Kod:
0 inputa$
1 i=i+1:ifpeek(511+i)=32thenprintmid$(a$,a+1,b*i-a);:a=i:b=1
2 goto1

edit: 2. kez çalıştığında da sorunlu bu versiyon, bunu es geçebilirsiniz
« Son Düzenleme: Mayıs 17, 2017, 14:34:46 ÖS Gönderen: Skate » Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 3.661


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #187 : Mayıs 19, 2017, 16:12:41 ÖS »

Sizin bu karşılıklı aşık atışması misali optimizasyonlarınızı okumak ne kadar zevkliyse, sıraya koyarak tasnif etmek de bir o kadar zor.

Üçüncü sorunun doğru cevabını açıklamamıştım. Delimawi'nin aşağıdaki 73 karakterlik kodu kazandı. Bu durumda delimawi:20 skate:10 puan oluyor.

Kod:
0inputa:fori=1toa
1d%=rnd(1)*9:ife(d%)goto1
2printchr$(d%+49);:e(d%)=1:next


4. soruyu da gözden kaçırdığım bir şey yoksa Skate'in aşağıdaki 80 karakterlik kodu kazanacak. 

Kod:
0 inputa$:fori=1to81:ifpeek(511+i)=32thenprintmid$(a$,a+1,(a>0)*-i-a);:a=i
1 next

Atladığım bir şey varsa yazın lütfen.
 
Logged

emarti
Uzman
*****
Mesaj Sayısı: 1.358


furiatuneGUI █


Üyelik Bilgileri WWW
« Yanıtla #188 : Mayıs 19, 2017, 21:21:14 ÖS »

wizofwor 4. soru nerede çözümü basic ile uzun olsun mümkünse datalar ile 10 puan almak istiyorum
Logged

READY.
https://github.com/emartisoft  *  http://csdb.dk/scener/?id=26786  *  http://emarti.sf.net  <RETURN>
?SYNTAX  ERROR
READY.

wolfiem
Üye4
***
Mesaj Sayısı: 1.093


May the source be with you!


Üyelik Bilgileri
« Yanıtla #189 : Mayıs 19, 2017, 22:52:09 ÖS »

wizofwor 4. soru nerede çözümü basic ile uzun olsun mümkünse datalar ile 10 puan almak istiyorum
Kahkaha

Her soruya basic & asm çözümlerini göndererek azimli katılımcı 10 puanını hakettin bence emarti
Logged

Commodore & Amiga & Amstrad & Retro Macintosh Fan
k2.bbs.tr - Çok yakında!
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 3.661


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #190 : Mayıs 20, 2017, 00:14:46 ÖÖ »

4. sorunun en kısa cevabı Skate'ten gelmiş oldu.

Bu durumda Delimawi ve Skate 20'şer puandalar.

5. Soru 20 puanlık soruların ilki olacak. Günün anlam ve önemine uygun bir soru düşündüm.
Biliyorsunuz eskiden 19 Mayıs'larda stadyumda öğrenciler kule yaparlardı. Biz de petscii karakteriyle kule yapacağız.

Soru 5: Altıgen Kulesi

Petscii karakterliyle oluşturulan altıngenleri üstü üste dizerek bir çizen bir program yazın.
Öyle ki:

1. Kulenin yüksekliği kullanıcı girişi ile belirlenecek. Ancak 1'ile 7 kat arasında olacak.
2. Sadece 1 ve 7 aralığındaki değerler test edilecek. (1 ve 7 dahil)
2. En üst katta 1 altıgen olacak. Katları indikçe altıgenlerin sayısı birer artacak.
3. İki altıgenin müşterek yüzü için tek karakter basılacak.
4. Programın çıktısı boş bir satıra alınacak. Yani eğer ekran belleğine poke ile karakter yerleştirecekseniz kullanacağız satırı önceden temizlemeniz gerekiyor.
5. Ekte örnek ekran çıktısı var. Kullanılacak karakterler SHITF+N, SHIFT+M ve SHIFT+'-'

   


* hexagonal.png (2.26 KB, 384x272 - Görüntüleme: 70 kez.)
« Son Düzenleme: Mayıs 20, 2017, 00:18:02 ÖÖ Gönderen: wizofwor » Logged

delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #191 : Mayıs 20, 2017, 00:22:36 ÖÖ »

Oooo tam @skate'lik soru gelmiş. Sabahlar olmasın, tam yatacaktım, gene takılıp kalıcam şimdi.
Logged

delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #192 : Mayıs 20, 2017, 00:58:44 ÖÖ »

Şöyle bir bodoslama başlangıç yapalım...
Kod:
0 inputa:printchr$(147):fori=1toa:forj=1toi:d=1040+j*4+i*78
1 poked,93:poked+4,93:poked-39,78:poked+43,78:poked-37,77:poked+41,77:nextj,i

Küçük bir optimizasyon:
Kod:
0 inputa:sys65409:fori=1toa:forj=1toi:d=1040+j*4+i*78    
1 poked,93:poked+4,93:poked-39,78:poked+43,78:poked-37,77:poked+41,77:nextj,i

Bir küçük optimizasyon daha...
Kod:
0 inputa:sys65409:fori=1toa:forj=1toi:d=1040+j*4+i*78:fors=0to1     
1 poked+s*4,93:poked+s*82-39,78:poked+s*78-37,77:nexts,j,i
« Son Düzenleme: Mayıs 20, 2017, 02:00:11 ÖÖ Gönderen: delimawi » Logged

i_r_on
Uzman
*****
Mesaj Sayısı: 2.090



Üyelik Bilgileri WWW
« Yanıtla #193 : Mayıs 20, 2017, 02:58:23 ÖÖ »

@wizofwor : Sorular orjinal olarak senden çıkıyorsa hakikaten güzel sorular buluyorsun
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <i.r.on - 2001>

twitter | blog

C64, Amiga 500, Ps3, Wii, Nintendo DS lite, Nintendo 3DS
delimawi
Uzman
*****
Mesaj Sayısı: 1.500



Üyelik Bilgileri
« Yanıtla #194 : Mayıs 20, 2017, 03:16:09 ÖÖ »

121 Byte ...

Kod:
0 inputa:sys65409:s=1:fori=1toa:forj=1toi*2:d=1040+j*2+i*78+s    
1 s=-s:poked-s*2,93:poked-s*41,78:poked-s*39,77:nextj,i

EDIT: 119 byte

Kod:
0 inputa:sys65409:fori=1toa:forj=1toi*2:s=(j*2and2)-1:d=1042+j*2+i*78+s*3
1 poked,93:poked+s*39,78:poked+s*37,77:nextj,i


EDIT: 118 Byte

Kod:
0 inputa:sys65409:fori=1toa:forj=1toi*2:s=jand1:d=1042+j*2+i*78+s*6
1 poked+37,93:poked+s*78-2,78:poked+s*74,77:nextj,i
« Son Düzenleme: Mayıs 20, 2017, 04:15:26 ÖÖ Gönderen: delimawi » Logged

Sayfa: 1 ... 11 12 [13] 14 15 ... 29   Yukarı git
Yazdır
Gitmek istediğiniz yer: