Dizüstü bilgisayarlarda bir sonraki devrim , 2014 yılının ilk Nisan ayında SwiftKey tarafından yayımlandı . Ancak, bir kaydırma nano klonu yazan ilk kişi olmak istiyorum, ancak gerçek metin kitaplığına iyi bir kaydırma metni bulamadığım için ve ben onları bekleyemiyorum, burada soruyorum.
Görev
Kaydırma metni alan ve gerçek metin karşılığını veren bir program yazın. Örnek:
Input: hgrerhjklo
Output: hello
Kullanıcı yaptığı zaman:
Diğer örnekler:
Input: wertyuioiuytrtjklkjhgfd
Output: world
Input: poiuytrtyuioiugrewsasdfgbhnmkijnbg
Output: programming
Input: poiuygfdzxcvhjklkjhgres
Output: puzzles
Input: cvhjioiugfde
Output: code
Input: ghiolkjhgf
Output: golf
kurallar
- Program, stdin veya argv üzerine bir tane 'kelime' yazacaktır.
- Kaydırılan girişin ilk ve son harfi, gerçek kelimenin ilk ve son harfine eşit olacaktır.
- Kullanıcının makul derecede düz çizgiler yapacağını varsayabilir, ancak bunu doğrulamak için örnek verileri kullanabilirsiniz (Örnek verileri yaptım ve son test verilerini yapacağım)
- Belirsiz giriş için herhangi bir çıktının seçimini yapabilirsiniz, ancak tüm belirsizliği test verilerinden kaldırmaya çalışacağım
- Bu kelime bu kelime listesinde olacaktır (ancak kaydırılmıştır). Kelime listesi geçerli dizinde olacak ve okunabilir (yeni satır ayrılmış, adlandırılmış
wordlist
, uzantı yok). - Kaydırma yalnızca küçük harfli alfabetik karakterler içerecek
- Kullanıcı bir tuşa basarsa, kaydırma işlemi kopyalanmış karakterler içerebilir.
- Program stdout'ta çıktı vermelidir (durum önemli değil)
- Program
0
dönüş kodu olarak geri dönmelidir. - Run komutunu, compile komutunu (gerekirse), adı ve kullanılacak giriş yolunu sağlamalısınız
- Standart boşluklar uygulanır (yine de yardım etmeyebilirler)
- Yerleşik olmayan kütüphanelere izin verilmez
- Deterministik, golf oynamayan / anlaşılmayan çözümler tercih edildi
- Dosya yazma, ağ oluşturma vb.
- Kodunuz bir saniye veya daha kısa sürede çalıştırılmalıdır (kodunuz kelime başına bir kere çalıştırılır)
- Puanlama işlemleri 4 sanal kodlu (2 gerçek) bir Intel i7 Haswell işlemcide çalıştırılıyor, böylece gerekirse bunları kullanabilirsiniz.
- 5000 baytlık maksimum kod uzunluğu
- Kullandığınız dilin Linux için kullanılabilen ücretsiz bir deneme sürümü olması gerekir (eğer önemliyse Arch Linux)
Kazanan Kriter
- Kazanan en doğru çözümdür ( verilen test listesini kullanarak kontrol programı tarafından puanlandırılmıştır )
- Popülerlik kravat kırıcıdır
- Puanlama tablosu birkaç günde bir güncellenecek
- Zaman aşımları ve çökmeler başarısız sayılır
- Bu zorluk popülerliğe bağlı olarak iki hafta veya daha fazla sürecek.
- Son puanlama, farklı, rastgele seçilmiş bir kelime listesi kullanacaktır (aynı kelime listesinden aynı uzunluk)
Diğer
- Programınızı test etmek için kontrol programını kullanabilirsiniz.
- Sabırsızsanız ve programınızın hızlı bir şekilde güncellenmesini / eklenmesini istiyorsanız, bir sorun başlatın veya istek gönder https://github.com/matsjoyce/codegolf-swipe-type/blob/master adresinden
- Girişler https://github.com/matsjoyce/codegolf-swipe-type/blob/master/entries adresinde bulunur.
- Her program çalışmasının günlükleri https://github.com/matsjoyce/codegolf-swipe-type/blob/master/logs adresinde tutulur.
- Https://github.com/matsjoyce/codegolf-swipe-type/blob/master/log.log adresindeki ana günlük
- Her bir anahtarın konumu, geçerli dizinde csv dosyası olarak sağlanacaktır
keypos.csv
, x ve y değerleri ile ilgili olarak verilmiştirQ
(bkz. Https://github.com/matsjoyce/codegolf-swipe-type/blob/master/ keypos.csv ) - Her bir tuş 1,5 x 1,5 cm'dir
Mevcut Puan Kurulları
test listesi ( günlükler ):
Three Pass Optimizer:Errors: 0/250 Fails: 7/250 Passes: 243/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 9/250 Passes: 241/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 19/250 Passes: 231/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 63/250 Passes: 187/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 10/250 Passes: 240/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 2/250 Fails: 14/250 Passes: 234/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 16/250 Passes: 234/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 67/250 Passes: 183/250 Timeouts: 0/250
Final Koşusu
test listesi ( günlükler ):
Corner Sim: Errors: 0/250 Fails: 14/250 Passes: 236/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 20/250 Passes: 230/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 23/250 Passes: 227/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 30/250 Passes: 220/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 55/250 Passes: 195/250 Timeouts: 0/250
Aferin herkese ve hgfdsasdertyuiopoiuy swertyuiopoijnhg!
l
, ki iki katına çıkmadı.