Kısa bir süre önce (birkaç yıl önce) , Tetris'in 140 Bytes'te uygulanmasıyla ilgili web sitelerini programlama konusunda bazı sıkıntılar yaşandı . ...
Küçük olmasına rağmen, Tetris'in basitleştirilmiş bir versiyonu olduğu ve tam bir uygulama olmadığı ortaya çıkıyor. Yalnızca çekirdek mantık işlevi 140 bayt Javascript'e sığar. Aslında çalıştırmak için, HTML ~ 840 karakter daha gerekir.
Daha iyisini yapabiliriz!
Bu zorluk mümkün olduğunca az tweet'te "Binary Tetris" in tam bir versiyonunu uygulamaktır.
İkili Tetris Kuralları:
- Program, en az 5 sütun ve 6 satır hücre içeren bir oynatma alanı görüntülemelidir.
- Alanın blokları ve kenarları açıkça işaretlendiği sürece herhangi bir görüntüleme yöntemi kullanılabilir.
- En az iki tip blok olmalıdır:
#
ve##
.###
L gibi şekillendirilmiş ek blok desteği veya açı blokları benim tarafımdan seçilecek: P ve en eksiksiz ikili tetris oyunu (orijinal ve rotasyon özellikleri gibi en çok blok) mutluluğumu ve 50 rep'lık olası bir ödül kazanacak. - Üst satırdaki alana yeni bloklar eklenir ve bir blok hücrenin orta sütunu işgal etmesi gerekir.
- Bloklar alt sıraya sabit bir oranda iner. Bloklar kullanıcı girişi olmasa bile alçalmalıdır.
- Bloklar alanın altına veya bir alt bloğa temas ettiğinde düşmeyi durdurur ve sabitlenir. Yeni bir blok eklenir.
- Satırdaki tüm sütunlar bloklarla doldurulduğunda, satır boşaltılır ve yukarıdaki tüm sabit bloklar bir satır açılır.
- Program tuş basmalarına yanıt vermelidir. Aşağıdaki işlevleri gerçekleştiren 3 benzersiz anahtar olmalıdır
- mevcut bloğu 1 sütun sola kaydır
- geçerli bloğu sağa 1 sütun kaydır
- mevcut bloğu 1 satır aşağı kaydır
- Her tweet'in yalnızca 140 karakteri olabilir. Tweetlere koyulabilen çok baytlı karakterlerin kullanılmasına izin verilir.
Bir tweet'te ne olabileceğine dair kurallar basittir. Eğer tweet atabilirsen kullanabilirsiniz.
Yorumlanan diller aynı kurallara uyar. Her bölüm teknik özellikleri takip etmelidir. Hiçbir çalışma süresi hatası oluşmadığı sürece (ve diğer özellikler teknik özelliklere göre geçerlidir) cevabınız geçerlidir Golf Kuralları:
Orijinal uygulama "tweetable" olduğundan, bu zorluk aynı şeyi gerektirir. Girişler bir dizi tweet (140 karakter veya daha kısa satırlar) olarak iletilebilmelidir.İlk tweet, derleyicinin / yorumlayıcının adını, programın adını ve komut satırı bağımsız değişkenlerini içermelidir
- "P0" dosyası olarak kaydedilecektir
- Aşağıdaki N tweet'ler programı bir dizi satır olarak içermelidir.
- Her tweet, T <n> adında bir dosyada saklanır; burada n, 1'dir.
- Her satır önceki satırlara eklenir ve derlenir veya yorumlanır. Geçerli bir nesne dosyası veya program üretmesi gerekir.
- Son satır eklenene kadar programın işlevsel olması gerekmez.
Program aşağıdaki şekilde çalıştırılacaktır (sözde bash)
interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp $prog $args die("FAIL") if $? #detect error done
Tercüman, Tetris'i uygulamayan, yaygın olarak bulunan bir yürütülebilir program olmalıdır.
Puanlama :
P0 dahil olmak üzere en az Tweet. En fazla sayıda yedek karakterle kesilen bağlar (140 * num tweet - toplam karakter sayısı).
Örnek Girişler
chrome a.htm
<html><div id="output"></div></html>
<script>cool java script here</script>
Puan = 3 (334 yedek)
cc a.c ;a.out
main(){/*cool prog here*/}
Puan = 2 (241 yedek)
tetris
Skor = 1 (134 yedek) yasal ise, ki bu değil
Özel teşekkür
Bunu Ashelly'nin rızasıyla buraya göndermeme izin verildi