Apl 桥牌游戏

Apl 桥牌游戏,apl,Apl,我正在尝试用APL编写一个桥牌游戏。我一直坚持的一部分是,当我打印手牌时,我想返回4个单独的手牌,对所有随机牌进行评分,我想先按套牌排序,然后在套牌中按a排序到2,我能够分别完成这些排序中的每一张 HAND←DEAL;CHAR;DECK DECK←MAKE_DECK CHAR←DECK[;13?52] ⍝HAND←CHAR[;'SHDC23456789TJQKA'”³CHAR] HAND←CHAR[;'CDHS'”³CHAR] 按套牌排序,但不是套牌中的数字,我也不知道如何

我正在尝试用APL编写一个桥牌游戏。我一直坚持的一部分是,当我打印手牌时,我想返回4个单独的手牌,对所有随机牌进行评分,我想先按套牌排序,然后在套牌中按a排序到2,我能够分别完成这些排序中的每一张

 HAND←DEAL;CHAR;DECK

 DECK←MAKE_DECK

 CHAR←DECK[;13?52]

 ⍝HAND←CHAR[;'SHDC23456789TJQKA'”³CHAR]

 HAND←CHAR[;'CDHS'”³CHAR] 
按套牌排序,但不是套牌中的数字,我也不知道如何用4手牌而不是一手13张牌

示例输出:

 Q982AQT93T934 AKJ657428J987 K865AKJ54KQT3 T743JQ762A652
 SSSSHHHHHDDDC SSSSSHHHDCCCC HHHHDDDDDCCCC SSSSHDDDDCCCC
(我不确定你在MAKE_DECK中做了什么,可能有一些特殊的事情在进行?否则没有理由为此专门设置功能。另外,作为一个非英语母语人士,我不确定卡片的命名等-请根据需要进行修复…)

然后我发牌,只是在牌堆中创建一个索引数组

HANDS←4 13⍴52?52
这些需要按行排序。(我正在使用“经典”风格,希望能在所有APL方言中使用……:


希望您能从中组合出一个很好的函数;-)

在前面答案的基础上,我们可以用一点算术来消除循环。输出间距通过扩展完成:

      ⎕←deck←2 52⍴(52⍴'AKQJ098765432'),13/'SHDC'
AKQJ098765432AKQJ098765432AKQJ098765432AKQJ098765432
SSSSSSSSSSSSSHHHHHHHHHHHHHDDDDDDDDDDDDDCCCCCCCCCCCCC

      ⎕←hand←52?52
41 45 42 18 33 15 7 44 21 16 25 11 49 10 40 6 1 19 43 52 46 9 24 17 8 38 39 34 28 23 20 50 29 37 2 36 26 13 31 51 4 48 32
  5 27 22 14 3 30 47 35 12

Unsorted

      (55⍴14↑13⍴1)\deck[;hand]
K9Q08K807Q345 5A9A9J2864J73 27K584Q4K5220 3J690A6AQJ763
CCCHDHSCHHHSC SCSSHCCCSHHSD DDDHHCDDSDHSD CSCDSDHHSDCDS

Sorted

      (55⍴14↑13⍴1)\deck[;hand[⍋hand+13/1000×⍳4]]
84KQ0738KQ095 A9765J943AJ82 K2852KQ075424 QJ03A6AJ96763
SSHHHHHDCCCCC SSSSSHHHDCCCC SSHHHDDDDDDDC SSSSHHDDDDCCC

您好&欢迎来到SO:-)我编辑了您的帖子并尝试使用正确的APL符号,但不确定最后一行-您在括号内使用了哪些符号?(一个易读的问题可能更容易讨论…;-))最后一行应该是“CDHS”向下箭头,线穿过它,然后用线斜穿过伊托克,谢谢。你是说:⍒⍉ ? 现在,你能告诉我吗。还张贴制作甲板?顺便说一句,你在使用哪种APL,你用什么材料来学习这门语言?谢谢你的帮助!太好了,那你能帮我吗。勾选回答旁边的复选标记,表示问题已得到回答?哦,您可能也有兴趣看看这个:(这是指Dyalog APL,IMHO周围最好的APL。他们提供免费的个人/教育使用许可证,并在atm上举办学生竞赛!)最后一件非常有用的事情是,我有一个数组,一个2x52数组,顶部西服底部有数字,我想把它变成一个2x56数组,每13个字符有一个空格,以显示4只手之间的差异,有没有一个简单的方法来做到这一点谢谢!这就是:
('',甲板)[;1+,手,0]
  x←0
  x←x+1 ⋄ HANDS[x;]←HANDS[x;⍋HANDS[x;]] ⋄  →(x<4)/⎕LC
DECK[;HANDS[1;]]
JAQJ08740Q4K7
SSHHHHHHDDCCC
      ⎕←deck←2 52⍴(52⍴'AKQJ098765432'),13/'SHDC'
AKQJ098765432AKQJ098765432AKQJ098765432AKQJ098765432
SSSSSSSSSSSSSHHHHHHHHHHHHHDDDDDDDDDDDDDCCCCCCCCCCCCC

      ⎕←hand←52?52
41 45 42 18 33 15 7 44 21 16 25 11 49 10 40 6 1 19 43 52 46 9 24 17 8 38 39 34 28 23 20 50 29 37 2 36 26 13 31 51 4 48 32
  5 27 22 14 3 30 47 35 12

Unsorted

      (55⍴14↑13⍴1)\deck[;hand]
K9Q08K807Q345 5A9A9J2864J73 27K584Q4K5220 3J690A6AQJ763
CCCHDHSCHHHSC SCSSHCCCSHHSD DDDHHCDDSDHSD CSCDSDHHSDCDS

Sorted

      (55⍴14↑13⍴1)\deck[;hand[⍋hand+13/1000×⍳4]]
84KQ0738KQ095 A9765J943AJ82 K2852KQ075424 QJ03A6AJ96763
SSHHHHHDCCCCC SSSSSHHHDCCCC SSHHHDDDDDDDC SSSSHHDDDDCCC