Solitaire Dreams - Kazanan bir solitaire başlangıç ​​eli yaratmak


13

Benim. Mağara Johnson.

21 Mayıs. Dünyanın en iyi şirketi Aperture Science'da çalışıyorsunuz ve yarın amiral gemisi pencereleme sistemimizin (veya WindowS ) 3.0 sürümünü piyasaya sürüyoruz : CavOS. Ne yazık ki, yarın sabah, baş rakibimiz Windowlarının Sürüm 3.0'ını da yayınlıyor !

Yarışan WindowS'un CavOS'un eksik olduğu bir özelliği var: CEO Johnson Johnson bana sızdırıldı : Klondike Solitaire oyunu. Ben, Johnson Johnson, bu ihmalin önemli ölçüde daha düşük satışlara yol açacağından endişe duyuyorum. Bu nedenle, ben, Cave Johnson, bir Solitaire oyunu oluşturmak için programlama stajyerleri arasında bir rekabet tasarladık. Girişi seçilen programcı, heyecan verici GlaDOS AI projesine katılma fırsatı bulacak.

Ben, Cave Johnson'ın birkaç gereksinimi var:

  • Yazılımın yarın gönderilmesi gerektiğinden, en kısa program önceden basılmış, görüntülenen disketlerin yedek sektörlerine uyacak şekilde seçilecektir .
  • Oyun hakkında endişelenme. Müşterilerimizin yazıcıları var değil mi? İhtiyacım olan tek şey programınızın aşağıdakileri gösteren bir liste hazırlamasıdır: Destedeki kartların sırası ve 7 yığının her birinin içeriği. Güverte üstten dağıtılacaktır. Kazıklar alttan görülebilir. Kalpler, Elmaslar, Kulüpler ve Maça için H, D, C, S kısaltmalarını kullanın. King, Queen, Jack ve Ace için K, Q, J, A kısaltmalarını kullanın. Her kart bir boşlukla ayrılmalıdır. İlk satır desteyi, ikincisi ilk ve en küçük destenin kartını, üçüncüsü ise ikinci destenin kartlarını göstermelidir. İsterseniz 10 yerine T kullanabilirsiniz.

  • Burada limonata yapıyoruz - limon emmiyor. Ben, Cave Johnson, kaybetmeyi sevmiyorum ve müşterilerimiz de sevmiyor. Her oyun kazanılabilir olmalı

  • Oyun rastgele olmalıdır. Tek bir oyunu kodlamaya çalışmak yok. 7000 trilyon olası Klondike eli var ve bunların yaklaşık% 90'ı kazanılabilir. 256 veya daha fazla el üretebilen bir programdan memnun olurum. Dilinizde rasgele sayılar (zamanlayıcı veya benzeri bir öğeden) almak için bir yol yoksa, dilinize uygun bir şekilde bir tohum alabileceğinizi varsayalım.

  • Müşterilerimiz oldukça zekidir. Kazanmak için Güverte boyunca sürelerde sınırlama olmadan Draw 3 oynadıklarını varsayın

Diyaframdaki herkes (ve her şey) adına, hepinize iyi şanslar diliyorum. Size güveniyoruz.

Caroline? Bu lanet şeyi nasıl kapatabilirim?


Karakter dışı: Windows'un kurallarını varsayalım, Çizim 3, Vegas olmayan solitaire. Her t ve noktayı her i geçmeye çalıştım, ancak herhangi bir sorunuz olup olmadığını sorun. İyi şanslar.

Örnek çıktı:

5H AS 7C 8S QH ...    
AH    
JS 10S    
JC JH 7C    
9D AC 8D 7C     
.    
.    
.

10 için 'T' kullanabilir miyiz, yani her kart 2 karakterdir?
captncraig

Bence müşterilerimiz bunun için yeterince akıllılar. Açıklamaya ekleyeceğim.
lochok

Yanıtlar:


10

Brainfuck - 1575 1365

Ben benzersiz fırsatlar minimum sayıda korkunç kötüye. Bu tam olarak 256 ayrı çıkış üretecektir. Bir bayt girdiyi rastgele tohum olarak kabul eder.

,>++++[>++++++<-]<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>>>[<+<<+>>>-]>[-]<
<-[>+<-]<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[-]>[-]>[<<<+>>>-]>[-]+[>+<
+++++]>+++++[>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>
>+>>+>>+>>+>>+[<<]>-]>>>>>>>>>+>>+>>+>>+>++++++[>++++>>++++>>++++>>+++
+>>+++>>+++>>+++>>+++>>++++>>++++>>++++>>++++>>+++>>+++>>+++>>+++<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<-]>++++>>++++>>++++>>++++>>>>>>>>>>+>>+>>+>>
+>>+>>+>>+>>+[<<]>>[>+<-<+>]>[<+>-]<<+++++++++++[>>+>>+>>+>>+>>+>>+>>+
>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+>>+[<<]>>-]>>>>+>>++++
+>>++++++++++++++++>>>>+>>+++++>>++++++++++++++++>>>>+>>+++++>>+++++++
+++++++++>>>>+>>+++++>>++++++++++++++++>>>>+>>+++++>>++++++++++++++++>
>>>+>>+++++>>++++++++++++++++[<<]<<<<<<[>>>>>>+<<<<<<-]>>>>>>[>[<<+>>-
]<[>+<-]>>[<<+>>-]<-[>+<-]>]>.[-]>.[-]>[[<<<<+>>>>-]>]<<<<<[<<]<++++[>
++++++++<-]>.[-]<<<[>>>+<<<-]>>>[>[<<+>>-]<[>+<-]>>[<<+>>-]<-[>+<-]>]>
.[-]>.[-]>[[<<<<+>>>>-]>]<<++++[>++++++++<-]>.[<<<+>>>-]<<<<<[.[-]>.[-
]>.[<<+>>-]<<<<]>>[>+>++>++<<<-]++++++++++.>>+>+++<.>.<<<.>>----------
-----.+>.<<.>.+>.<<<.>>.+>.<<.>.+>.<<.>.+>.<<<.>>.>.<<.>++++++++++.>+.
<<.>---------------.+>.<<.>.+>.<<<.>>.+>.<<.>.+>.<<.>.+>.<<.>.+>.<<.>+
++++++++.>++++.<<<.>>---------------.+>.<<.>.+>.<<.>.+>.<<.>.+>.<<.>.+
>.<<.>.+>.<<<.>>+++++++++.>+++++++++++.<<.>---------------.+>.<<.>.+>.
<<.>.+>.<<.>.+>.<<.>.+>.<<.>.+>.<<.

Kesinlikle daha yoğun olabilirdi, ama bu dilin doğası. Bu hızlı ve kirli ve işe yarıyor.

Örnek çıktı (giriş = 98):

8H 9S KS KH KD KC QS QH QD QC JS JH JD JC TS TH TD TC 9H 9D 9C 8S 8D 8C 
AC
2C 3C
4C 5C 6C
7C AD 2D 3D
4D 5D 6D 7D AH
2H 3H 4H 5H 6H 7H
AS 2S 3S 4S 5S 6S 7S 

Bu formattaki tüm destelerin kazanılabilir olması oldukça sezgiseldir.


2
Harika codegolf tipik kural bükme çözümü. Ve hatta Brainfuck - aferin!
schnaader
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.