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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #75 : Nisan 28, 2017, 22:52:02 ÖS »

Daha kısası olabilir. Ufaklığı yatıriim, bakıcam. Annesi şehirdışında, hem analık, hem babalık yapıyorum. (itinayla Yeşilçam'a bağlanır)
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #76 : Nisan 28, 2017, 23:05:06 ÖS »

Bu tricke başvuran olur ihtimaline karşı hemen paylaşayım.

Bence legal değil ama problemi bu da çözüyor. Sayıyı rakam rakam tek tek girmenizi bekliyor. dediğim gibi ben bunu legal bulmuyorum. ama çözüm sağlıyor.

Kod:
0 fori=1to9:inputa:t=t+a:next:print45-t
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #77 : Nisan 28, 2017, 23:23:08 ÖS »

Biraz daha kısası legalinden. Hadi kurcalayın bakalım. Bunda trickler devreye girmeye başladı.

edit: a$'a gerek yok a yeterli. 1 byte uçurdum.

Kod:
0 inputa:fori=0to8:t=t+peek(512+i):next:print477-t
« Son Düzenleme: Nisan 28, 2017, 23:25:41 ÖS Gönderen: Skate » Logged
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #78 : Nisan 28, 2017, 23:51:08 ÖS »

Biraz daha kısası legalinden. Hadi kurcalayın bakalım. Bunda trickler devreye girmeye başladı.

edit: a$'a gerek yok a yeterli. 1 byte uçurdum.

Kod:
0 inputa:fori=0to8:t=t+peek(512+i):next:print477-t


Daha neyini kurcalayalım hocam, sen bitirmişin işi
Logged

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

twitter | blog
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #79 : Nisan 28, 2017, 23:55:50 ÖS »

Daha neyini kurcalayalım hocam, sen bitirmişin işi

Bazen çok basit şeyler gözden kaçabiliyor. Örneğin şu ikisi aynı uzunlukta ama daha kısa da olabilirdi ikincisi.

Kod:
0 inputa:fori=0to8:t=t+peek(512+i):next:print477-t
Kod:
0 inputa:fori=512to520:t=t+peek(i):next:print477-t

Böyle şeylerle de daha kısası bulunabiliyor. Şu an için bulamadım ama en kısası budur demiyorum.
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #80 : Nisan 28, 2017, 23:58:13 ÖS »

Fikir vermek açısından, aynı uzunlukta bir örnek daha;

Kod:
0 inputa:fori=0to8:t=t+peek(2^9+i):next:print477-t

Hep buralardan çıkıyor size optimizasyon olayları.
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #81 : Nisan 29, 2017, 02:10:07 ÖÖ »

Çok uykum var umarım bir hata yapmamışımdır.
Konuyu görünce yatamadım...

Kod:
0 inputa:fori=0to8:t=t+peek(2^9+i):next:print477-t
vs
0 inputa:fori=0to8:t=t+53-peek(512+i):next:printt

Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #82 : Nisan 29, 2017, 02:27:08 ÖÖ »

Denediklerim arasında bunu bulup da senin versiyonunu bulamamak da ekstra salaklık tabii. Kahkaha En kısası seninki kesinlikle.

Kod:
0 inputa:fori=49to57:t=t+i-peek(463+i):next:printt
Logged
emarti
Uzman
*****
Mesaj Sayısı: 2.606


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #83 : Nisan 29, 2017, 12:27:38 ÖS »

Hibrit ve uzun çözümlere devam benden size

Kod:
9 REM *** HANGI RAKAM EKSIK ***
10 INPUT A$:PRINT CHR$(147)A$
30 FOR X=0 TO 31: READ D:POKE 49152+X,D: NEXT
40 SYS 49152:END
1000 DATA 162,0,142,31,192,189,0,4
1010 DATA 41,15,24,109,31,192,141,31
1020 DATA 192,232,224,9,208,239,169,93
1030 DATA 237,31,192,141,10,4,96,0

$C000'dan başlayan assembler kodu
Kod:
*=$C000

start
        LDX #$00
        STX sonuc
loop
        LDA $0400,X
        AND #$0F
        CLC
        ADC sonuc
        STA sonuc
        INX
        CPX #$09
        BNE loop
       
        LDA #$5D
        SBC sonuc
        STA $040A
        RTS
 
sonuc
        BYTE $00



* hangisieksik.zip (1.45 KB - Yükleme: 202 kez.)
« Son Düzenleme: Nisan 29, 2017, 12:40:10 ÖS Gönderen: emarti » Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
WildLord
Deneyimli
*****
Mesaj Sayısı: 757



Üyelik Bilgileri
« Yanıtla #84 : Nisan 29, 2017, 16:23:24 ÖS »

Upuzun kod çözümü

10 a$="0123456789"
15 input b$
20 for i=1 to 10
25 for j=1 to len(b$)
30 if mid$(a$,i,1)=mid$(b$,j,1) then z=1
35 next
40 if z=0 then print mid$(a$,i,1)
45 z=0
50 next
« Son Düzenleme: Nisan 29, 2017, 16:52:25 ÖS Gönderen: WildLord » Logged
Decypher
Deneyimli
*****
Mesaj Sayısı: 689



Üyelik Bilgileri
« Yanıtla #85 : Nisan 29, 2017, 17:39:54 ÖS »

Zamanında C64'te Basic ile yeterince vakit geçirdiğim için mesela WildLord'un verdiği örnekte olduğu gibi "upuzun" çözümleri rahatça anlayabiliyorum ama diğer kısa kodlar gözüme çok yabancı görünüyor.

Bu kısa kodların, özellikle de Peek ve Poke kullananların çalışma prensibini de yazsanız, o kısımları da anlasak fena mı olur ki?
Logged
emarti
Uzman
*****
Mesaj Sayısı: 2.606


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #86 : Nisan 29, 2017, 17:44:57 ÖS »

@Decypher dediği gibi aslında kısa kod sonrası ayrıca satır satır açıklama yapılarak az bilen bilmeyenin de dikkati çekilebilir konuya.
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
wolfiem
Deneyimli
*****
Mesaj Sayısı: 1.277


May the source be with you!


Üyelik Bilgileri
« Yanıtla #87 : Nisan 29, 2017, 18:00:28 ÖS »

Daha biz soruyu görmeden cevaplar gelmiş, bu tur bitmiş Kahkaha
Logged

Commodore & Amiga & Amstrad & Retro Macintosh Fan
k2.bbs.tr - Çok yakında!
wolfiem
Deneyimli
*****
Mesaj Sayısı: 1.277


May the source be with you!


Üyelik Bilgileri
« Yanıtla #88 : Nisan 29, 2017, 18:07:22 ÖS »

İlk soruya en kısa cevabı veren skate oldu.

Katılan herkese teşekkürler. Sıralama ve gelen cevapları d64 dosyasında topladım. Aşağıdan indirebilirsiniz.

Şu an soru listemi gözden geçiriyorum. Birazdan ikinci soru gelecek.

Benim cevapları göremedim listede
Logged

Commodore & Amiga & Amstrad & Retro Macintosh Fan
k2.bbs.tr - Çok yakında!
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #89 : Nisan 29, 2017, 18:23:18 ÖS »

512, yani 0x0200 basic'in input buffer adresi. siz input ile bir değişkene veri aktardığınızda hafızada geçici olarak burada tutuluyor veriler. dolayısıyla inputtan sonraki değişkenin tipine, basic tarafından nasıl yorumlandığına bakmaksızın 512'den itibaren yer alan alana petscii karakter değerleri diziliyor.

bu değerlere göre 0-9 0x30-0x39 yani 10'luk düzende 48-57 arasında yer alıyor. Toplamlarını aldığınızda her bir rakam için 45 toplamının üzerine 480 fazladan petscii index değerleri binmesi gerektiği için de 480+45 = 525'den çıkarmamız gerekiyor kalan değeri bulmak için. Ancak bu durumda bulacağımız değer yine petscii olacak. Rakamsal değerini bulmak için ters yönde bir 48 daha ilerlemek lazım. 525-48 = 477

Delimawi'nin tricki de 477'yi 9'luk loopta parça parça çıkarmak/eklemekten ibaret.

477/9 = 53
Logged
Sayfa: 1 ... 4 5 [6] 7 8 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: