Ara

Her Karede Kendini Yeniden Derleyen Pong Oyunu: IOCCC’nin Gizemli Galibi

Bu ayın başlarında düzenlenen 29. Uluslararası Gizemli C Kodu Yarışması'nda (IOCCC) birinciliği, her karede kendi kaynak kodunu yeniden derleyen bir Pong oyunu ile Jonah Uellenberg kazandı. Programın her çalıştırılışında, mevcut oyun durumu ve görüntü bilgileri gömülü olarak bir sonraki karenin C kaynak kodu ekrana basılıyor. Bu çıktıyı derleyip çalıştırmak ise oyunu tek bir adım ileri taşıyor.

İronik bir şekilde, Uellenberg bu karmaşık kodu kendisi yazmamış. Bunun yerine, kendi geliştirdiği 'Insert' adlı programlama dilinde temiz ve yorumlanmış kodlar yazmış. Insert derleyicisinin ürettiği bu karmaşık C kodu ise ödülü getiren eser olmuş.

Uellenberg, kazanan kodu hazırlarken yaptığı açıklamalarda, kodun "gerçekten gizemli olmadığını, hiçbir zaman da olmadığını" vurguluyor. Kendisinin yazdığı temiz kodun bir derleyici çıktısı olduğunu ve kimsenin el ile karmaşık hale getirmediğini belirtiyor. Insert derleyicisinin hedefi C dili ve üretim aşamasında kullanılan optimizasyonları, örneğin ölü kodları temizlemek için canlılık analizi, sabit katlama ve tek bir değişken yuvasını birden fazla değer için yeniden kullanan bir değişken birleştirme gibi işlemleri uyguluyor. Tekrarlayan token dizileri ise baytları kısmak için C ön işlemci tanımlarına paketleniyor. Uellenberg'e göre optimizasyon ve gizleme, genellikle aynı sonuca yol açıyor. Bu yüzden de ortaya çıkan kod, tek karakterli tanımlayıcılar ve sabit ile değişebilir değerleri karıştıran bir veri dizisi duvarı gibi görünüyor.

Bir 'quine', çalıştırıldığında kendi kaynak kodunu ekrana basan bir programdır. Uellenberg'in bu versiyonu ise kendisinin değiştirilmiş bir kopyasını, yani güncellenmiş oyun durumunu içeren bir sonraki karenin kaynak kodunu basıyor. Bunu çalıştırdığınızda, bir sonraki kareyi, bu şekilde oyun devam ediyor.

Oyuncu, komut satırı argümanı olarak 'w' veya 'e' harflerini girerek sağdaki raketi kontrol ediyor. Bilgisayar rakibine karşı mücadele eden oyun, maçın gerçek zamanlı oynanmasını sağlayan otomatik bir derleme ve çalıştırma döngüsünü otomatikleştiren bir betik ile geliyor. Bilgisayarı yenmek, programı Chrome'daki dinozor koşucusu oyunundan esinlenen ikinci bir yana kaydırmalı koşu oyununa geçiriyor. Bu oyunu da tamamlamak, programı tekrar Pong'a döndürüyor.

IOCCC29, organizatörlerin 2020'den 2024'e kadar süren dört yıllık bir aradan sonra düzenlediği ikinci yarışma oldu. 2025 kazananları, kaynak kodlarının yarışmanın GitHub deposuna yüklenmesinden önce 6 Haziran'da bir YouTube canlı yayınıyla duyuruldu.

Uellenberg'in kendisi gibi quine'lar yazmaya başlamasının nedeni olarak gösterdiği Yusuke Endoh, bu yılki ödüllerin üçünü aldı. 1984'ten beri Landon Curt Noll tarafından yürütülen ve Creative Commons lisansı altında yayınlanan yarışmanın jüri üyeleri, Pong girişine gelecek yıl için "Quine Doom" oluşturmaktan kaçınmaları yönünde bir not ekledi.

Bu giriş, CSS ile tamamen yazılmış bir x86 CPU emülatörü ve sadece saf SQL ile oluşturulmuş oynanabilir bir Doom oyunu gibi, beklenmedik materyallerden tam sistemler elde eden diğer son başarıların yanında yer alıyor. Jüri, 30. IOCCC'yi 2026'nın sonlarına doğru başlatmayı planlıyor.

Önceki Haber
Teknoskop Duyurdu: Boşluklu Fiber Teknolojisiyle Işık Hızında Veri Aktarımı Devrimi Yolda!
Sıradaki Haber
PlayStation 6 Fiyatı Sizi Şaşırtmasın: Sony Donanım Satışından Zarar Etmek İstemiyor!

Benzer Haberler: