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 ... 13 14 [15] 16 17 ... 30   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 237745 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.788


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #210 : Mayıs 22, 2017, 09:00:51 ÖÖ »

@skate, 3 nolu maddeyi sanirim yanlis yorumluyuyoruz. @wizofwor a soralim.

Bence tek karakter basilacak derken soylenmek istenilen yazilim tarafinda kac defa ust iste karakter basildigi degil ciktida tek karakter gorunmesi.

Yani her bir altigen bir birinden izole gorunmeyecek seklinde yorumladim ben. Asagidaki gibi olmayacak yani...

 / \  / \  / \
|   ||   ||   |
 \ /  \ /  \ /

delimawi doğru yorumluyor tek karakter basılacaktan kastım çıktıda tek karakter görünmesiydi. Sadece çıktıyı kontrol ettiğim için, şekil doğru olduğu sürece karakterlerin üst üste basılmasını sorun etmiyorum.
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #211 : Mayıs 22, 2017, 09:02:58 ÖÖ »

Neyse mid$ sız 107 byte, bakalım bu soru daha ne kadar kısalacak...

Kod:
0 inputa:fory=1toa:c=20-y*2:b$=b$+"   B
1 printspc(c)" N"a$" M"spc(c*2)"B"b$:a$=a$+" M N":next:printspc(c)a$
Logged

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


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #212 : Mayıs 22, 2017, 09:05:06 ÖÖ »

delimawi doğru yorumluyor tek karakter basılacaktan kastım çıktıda tek karakter görünmesiydi. Sadece çıktıyı kontrol ettiğim için, şekil doğru olduğu sürece karakterlerin üst üste basılmasını sorun etmiyorum.

@wizofwor, abi zaten kod o kadar evrildi ki, tek loop çözümler daha efektif şu aşamada, o soru zamanaşımı oldu... Kahkaha
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #213 : Mayıs 22, 2017, 12:19:01 ÖS »

@delimawi, kesinlikle kazanmayı sen hak ettin ama...

106 byte

Kod:
0 inputa:fory=1toa:c=20-y*2:b$=b$+"   B
1 printspc(c)"N "a$"M"spc(c*2)"B"b$:a$=a$+"M N ":next:printspc(c)a$
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #214 : Mayıs 22, 2017, 12:25:41 ÖS »

@skate, ipi göğüsleyen kazanır.
O boşluklardan çok işkillenmiştim zaten ama sabah fazla vakit ayıramadım...
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #215 : Mayıs 22, 2017, 12:29:45 ÖS »

bu arada bir de uğraştığım salak çözümlerden birini paylaşmak istiyorum.

öncelikle 93 bytelık şu versiyonu elde ettim. ilk satıra fazladan pipe, son satırın başına sonuna fazladan / \ ekliyor.

Kod:
0 inputa:fory=0toa:c=19-y*2
1 printspc(c)"B"b$spc(c*2)"N "a$"M":a$=a$+"M N ":b$=b$+"   B":next

bunu 106 byte'lık versiyondan daha kısa bir yöntemle kurallara uygun hale getirmek zor ama en azından ilk pipe karakterini yok etmek için ekstra değişken kullanmaktan daha kısa olabileceğini düşünerek şöyle bir şey denedim. ASM'de klasiktir ama Basic'de ilk kez denemiş oldum.

Kod:
0 inputa:fory=0toa:c=19-y*2
1 printspc(c)" "b$spc(c*2)"N "a$"M":a$=a$+"M N ":b$=b$+"   B":poke2081,194:next

Basic'den ilk self modifying code denemem olarak kayıtlara geçsin lütfen. Kahkaha Tabii c$=" ", sonrasında c$="|" kullanarak da aynı çözüm daha temiz biçimde uygulanabiliyor. Sonuç olarak poke source'u değiştirdiği için ikinci kez düzgün çalışmıyor. Eğlencelik olarak paylaşıyorum.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #216 : Mayıs 22, 2017, 12:36:23 ÖS »

Hahahah, bu güzelmiş... Yıllar önce henüz c falan bilmiyorken, bir arkadaşın "basic de recursion yapamazsın onun için c daha iyidir" demesi çok ağırıma gitmişti, basic ile kendi sctack'imi array değişkenler içinde tutup "recursive" çalışabilen bir kod yazmıştım, o geldi aklıma...
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #217 : Mayıs 22, 2017, 12:50:11 ÖS »

bu arada wizofwor'un açıklamasından sonra daha kısa yöntem buldum. daha da epey kısalır gibi. eski metod'u unutun. 100 byte'ın altına iner bu. ben hep karakterler çakışmayacağa takılmıştım.

103 byte optimize edilmemiş versiyon

Kod:
0 inputa:fori=1toa:forj=1toi:poke214,i*2:print:poke211,16-i*2+j*4
1 print"N Mq....B   Bq....M N":nextj,i

doğrudan copy & paste çalışmaz, q.... olan kısımlar
<cursor down><cursor left><cursor left><cursor left><cursor left>
olacak.


* basic_source.png (1.85 KB, 384x272 - Görüntüleme: 1361 kez.)
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #218 : Mayıs 22, 2017, 13:08:33 ÖS »

94 byte

Kod:
0 inputa:fori=1toa:print:printspc(61-i*2);:forj=1toi
1 print"N Mq....B   Bq....M NQQ]";:nextj,i

q = <cursor down>
. = <cursor left>
Q = <cursor up>
] = <cursor right>


* basic_source.png (1.76 KB, 384x272 - Görüntüleme: 1261 kez.)
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #219 : Mayıs 22, 2017, 13:25:58 ÖS »

86 byte

Kod:
0 inputa:fori=1toa:print:printspc(60-i*2);:forj=1toi:print"BqM NQBQ....N Mq";
1 nextj,i


* basic_source.png (1.72 KB, 384x272 - Görüntüleme: 1255 kez.)
« Son Düzenleme: Mayıs 22, 2017, 13:41:52 ÖS Gönderen: Skate » Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.788


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #220 : Mayıs 22, 2017, 13:41:39 ÖS »

@Skate:

Cursor tuşları için petcat kodlarını kullanabilirsin.
{down}{left}{right}{up}

Tabi bu şekilde text editörde karakter sayısı fazla görünecek. Onu da parmak hesabıyla düzeltiriz artık :p
« Son Düzenleme: Mayıs 22, 2017, 13:43:49 ÖS Gönderen: wizofwor » Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #221 : Mayıs 22, 2017, 13:43:01 ÖS »

Öyle de yapsam copy&paste ile aktarılamıyor Vice'a. Vice'dan copy ettiğim haliyle paste ediyorum buraya. Doğrudan copy&paste sağlamadıkça tek tek uğraşmaya gerek yok.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #222 : Mayıs 22, 2017, 13:47:34 ÖS »

Ben de aşağıdaki cümleden kontrol karakterlerinden sadece bu 3 tanesi kullanılabilir diye anlamıştım copy/paste sebeplerinden ötürü, yanlış anlamışım. Bu mantık aklıma geldi ama hiç üzerine bile gitmedim... :/

Alıntı
Kullanılacak karakterler SHITF+N, SHIFT+M ve SHIFT+'-'

Ben de tam aşağıdaki yöntemi optimize etmeye girişiyordum, kaldım lök gibi kod karşımda ... Kahkaha

Kod:
0 inputa:fory=0toa*2:c=(y=a*2)+y-1:a$="N M "+a$+"   B
1 printspc(19-c)mid$(a$,(yand1)*(y*4+7)-c+y,2*c+5):next
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #223 : Mayıs 22, 2017, 13:54:37 ÖS »

Patcat formatı da şöyle bir şey olsa gerek. Test edemedim henüz.

Kod:
0 inputa:fori=1toa:print:printspc(60-i*2);:forj=1toi:print"B{DOWN}M N{UP}B{UP}{4 LEFT}N M{DOWN}";
1 nextj,i

Edit: Denedim, çalışıyor. Kullanım biçimi;

petcat -o basic_output.prg -w2 basic_source.txt
« Son Düzenleme: Mayıs 22, 2017, 14:02:53 ÖS Gönderen: Skate » Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #224 : Mayıs 22, 2017, 13:56:00 ÖS »

@delimawi: Ben ilk başta bu yöntemi kullanacaktım ama unique karakter olayını yanlış anladığım için hiç girişmedim. Wizofwor benim yanlış anladığımı açıkladığı anda aklıma tekrar bir göz atmak geldi. Aslında ilk başta yanlış anlamış olmasam ilk deneyeceğim şey buydu.
Logged
Sayfa: 1 ... 13 14 [15] 16 17 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: