Derleyicinin veya yorumlayıcının sözdizimi hata iletisini yazdıran bir program yazın. Hata mesajının yanıltıcı olması gerekir, böylece kod yöneticileri hatanın sahte olduğunu bulmak günler alır, yani, gizlemeniz (ve niyetinizi gizlemeniz) anlamına gelir. Ayrıca, hata mümkün olduğunca kesin olmalı ve koda doğru bir şekilde başvurmalıdır.
Uyumlu diller için, kod compile program.p && ./program
sağlayıcınızın programı derlemek VE çalıştırmak için komut satırında yapacağını varsayalım , yani çıktının derleyiciden mi yoksa programın kendisinden mi geldiğini ayırt edemez. Ayrıca, kod koruyucunuzun sözdizimi hata mesajlarını açacağını varsayın.
Referans olarak, işte yaptığım bir örnek: https://gist.github.com/359604
DATA
Bölümünde hata mesajının dize kodlar ve karma %abcdef
kod çözme tablodur. Yazdırılan hata, ters eğik çizgilere başvurur, bu da kod tutucunun ters eğik çizgileri saymaya çalışmasını sağlar.
Girişler şu şekilde derecelendirilecektir:
- Kod aldatıcı açık bir niyeti var
/6
- Kod hatayı doğru bir şekilde üretir
/16
(noktanız 16 ile başlar ve her yanlışlık için ilgili faktörlere bölün)- Doğru büyük harf kullanımı: 4
- Doğru satır numarası ve sütun numarası: 4
- Doğru ifade: Her yanlış kelime için 2
- Referans verilen satır kodu kod bakıcısını yanlış yönlendiriyor
/3
Örneğin,
./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
"jetondan önce" beklenmeyen "eksiklik için 8 (16/2) doğruluk derecesi alır, normal bir Python yorumlayıcısı görüntülenir
./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: ` x=input("Enter a number:") #Number input'
"Kodunuz hatayı doğru bir şekilde üretir" noktanızın 1 altındaysa, girişiniz diskalifiye olur.
Beraberlik durumunda, ek derecelendirme faktörleri koyacağım.