Freecell oyununda, alternatif renklerden aşağıya doğru ineceğiniz bir düzende astan krala uygun dört temel kazık inşa etmekle görevlendiriliyorsunuz. Bununla birlikte, bir seferde yalnızca bir kart oluşturabilirsiniz, bu yüzden size her bir dizinin tamamını taşımanıza yardımcı olacak bir kart içeren dört "boş hücre" verilir. Buradaki fikir, oyunu çözmenize yardımcı olmak için bireysel kartları boş hücrelerin içine ve dışına örmenizdir.
Görevin bu oyunları mümkün olan en az hamleyle çözecek bir program oluşturmak.
Programınız aşağıdaki formatta girdi olarak 52 kartlık bir dizi alacaktır:
2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ...
İlk mizanpajda bu sıraya göre ele alınacaktır:
01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52
Ve oyunu çözmek için hamlelerin bir listesini döndür. Her hareket bu formatta olacaktır:
- Kaynak kümesini temsil eden küme sayısını (
1
ila8
) veya serbest hücreyi (A
ilaD
) temsil eden bir sayı . - Hedef kazık veya serbest hücreyi temsil eden başka bir numara veya harf veya
F
bu giysinin temeli için.
Çıktı şöyle görünecek:
18 28 3A 8B 8C 85 B5 35 4F etc.
Bir kart temele alındıktan sonra çıkartılamaz. Bir seferde yalnızca bir kart taşındığından, 3 kart dizisini taşımak 5 hamle, 5 kart dizisi 9 hamle gerektirir.
Bir oyun çözülemezse, programınız böyle belirtmelidir. Ancak, programınız çözülebilir herhangi bir oyunu çözebilmelidir.
Programınız, orijinal Microsoft FreeCell programında bulunan 32.768 anlaşma üzerinden değerlendirilecektir. Geçerli olması için, programınız çözülemeyen # 11,982 numaralı anlaşma dışındaki her bir anlaşmayı başarılı bir şekilde çözmelidir . Puanınız, bu 32.767 anlaşmayı çözmek için harcayacağınız toplam hareket sayısı olacak ve daha kısa kod da bir bağlayıcı olacaktır.
Yukarıdaki şartnamenin gerektirdiği biçimde tüm güverteleri içeren bir dosyayı buradan indirebilirsiniz (5.00 MB dosya): https://github.com/joezeng/pcg-se-files/raw/master/freecell_decks