纸牌梦-创造可赢的纸牌起手牌


13

是我。凯文·约翰逊。

5月21日。您正在Aperture Science(地球上最好的公司)工作,明天我们将发布旗舰窗口系统(或WindowS)CavOS的3.0版。不幸的是,明天早晨,我们的主要竞争对手也将发布其WindowS 3.0版!

首席执行官Window Cave透露给我的是,竞争的WindowS具有CavOS缺乏的一项功能:克朗代克纸牌游戏。我,凯夫·约翰逊(Cave Johnson),担心这种疏忽会导致销量急剧下降。因此,我,凯夫·约翰逊(Cave Johnson),设计了编程实习生之间的竞赛,以制作纸牌游戏。选择了条目的程序员将有机会加入令人兴奋的GlaDOS AI项目。

我,凯夫·约翰逊(Cave Johnson),有一些要求:

  • 由于该软件必须在明天发货,因此将选择最短的程序,使其适合已打印,成像的软盘的备用扇区。
  • 不用担心游戏玩法。我们的客户有打印机吗?我只需要为您的程序生成一个列表,即可显示:牌组中纸牌的顺序以及7堆纸牌中每个纸牌的内容。甲板将从顶部开始。从底部可见桩。心,钻石,球杆和黑桃使用缩写H,D,C,S。使用缩写K,Q,J,A表示King,Queen,Jack和Ace。每张卡应以空格隔开。第一行应显示甲板,第二行应显示第一和最小桩的牌,第三行应显示第二桩的牌,依此类推。欢迎您使用T而不是10。

  • 我们在这里制作柠檬水-不吸柠檬。我,凯夫·约翰逊(Cave Johnson),不喜欢失败,我们的客户也不喜欢。每场比赛都必须赢

  • 游戏必须是随机的。请勿尝试对单个游戏进行编码。克朗代克手中有7000万亿只手,其中大约90%是可赢的。我对可以产生256张或更多不同手牌的程序感到满意。如果您的语言缺乏一种从计时器等中获取随机数的方式,则假定您可以以适合您的语言的方式获取种子。

  • 我们的客户相当聪明。为了赢得比赛,他们正在玩Draw 3,在甲板上的时间没有限制

谨代表Aperture的所有人(和一切),祝大家好运。我们指望您。

卡罗琳?我怎么关掉这该死的东西?


不合时宜:假设使用Windows规则,第3页,非拉斯维加斯纸牌。我试图越过每个t并在每个i上加点,但是请问您是否有任何疑问。祝好运。

输出示例:

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

我们可以用“ T”表示10,所以每张卡都是2个字符吗?
captncraig 2013年

我认为我们的客户足够聪明。我将其添加到描述中。
lochok

Answers:


10

Brainfuck- 1575 1365

我可怕地滥用了最少数量的独特交易。这将产生256个不同的输出。它接受一个字节的输入作为其随机种子。

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

可以肯定地将其压缩得更多,但这是该语言的本质。这既快速又肮脏,并且有效。

输出示例(输入= 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 

相当直观的是,这种格式的所有套牌都是可赢的。


2
出色的codegolf典型规则弯曲解决方案。甚至是Brainfuck-做得好!
schnaader 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.