19
\$\begingroup\$

Beggar my neighbor is a deterministic game in which 2 players get dealt half of a 52 card deck, and the objective is to obtain the entire deck.

On their turn, each player places the top card of their deck on the table. If that card is a face card (the ace is a face card), the opposite player then must turn over a certain number of cards from the top of their deck until they reveal a face card as well (at which point the roles reverse). If they can't, the player that last played a face card takes the pile of cards on the table, and adds it to the bottom of their deck. the winning player then continues the game.

The game ends when a player has obtained all the cards in the deck. Note that if a player has all the face cards, their victory is guaranteed, but it is not achieved yet and they need to take all the cards from their opponent to properly end the game.

The number of tries someone has to turn over a face card in response to a face card depends on the face card:

  • Jack : 1 card
  • Queen: 2 cards
  • King : 3 cards
  • Ace : 4 cards

Here's an example trick:

I turn over a 10.
They turn over an ace.
I turn over a 5, a 7, and a Jack.
They turn over a Queen
I turn over a 2 and a 9.
They win this trick, sweep the table and it is their turn next.

Hopefully by now it's becoming clear that this game is completely deterministic and that there is no strategy; the entire game is decided by how the cards are shuffled and dealt. The longest known terminating game is 1164 tricks long, but it is possible for a game to go on forever (you won't need to handle this here)

The task

Given a deck of cards, output the number of tricks and cards it takes to reach the end of the game.

IO

You may take the deck however you see fit. You may forgo taking the cards color as input, as it has no bearing on play. Since numbered cards also are fungible, a standard way of representing a deck is as a pair of strings like so:

---K---Q-KQAJ-----AAJ--J-- and ----------Q----KQ-J-----KA (this game will be infinite, don't use it as a test case!)

You may choose to represent face cards as the number of cards they ask for. Generally speaking, within reason, feel free to use a format convenient for you as long as it doesn't trivialize the meat of the challenge (simulating the game and how the cards rotate). This isn't an input parsing challenge.

Assume the game is finite. You may assume that a game cannot go on for longer than the record 1164 tricks and 8344 cards.

Output format flexible.

Test cases

[Q--J----K--K-J---Q---A---A, ---K-K--JA-QA--J-----Q----] -> 712 tricks, 5104 cards
[K-KK----K-A-----JAA--Q--J-, ---Q---Q-J-----J------AQ--] -> 1007 tricks, 7157 cards
[---AK-Q--J----J--QKJ-Q----, ------JK-----A--K--Q---AA-] -> 1014 tricks, 7258 cards
[---AJ--Q---------QAKQJJ-QK, -----A----KJ-K--------A---] -> 1164 tricks, 8344 cards

You may find additional test cases and resources at this link

This is .

\$\endgroup\$
6
  • 2
    \$\begingroup\$ Beggar-my-neighbour, also known as strip jack naked, beat your neighbour out of doors, or beat jack out of doors, or beat your neighbour. Those are funny names. \$\endgroup\$ Commented Dec 16, 2025 at 11:54
  • \$\begingroup\$ The game ends when a player has obtained all the cards in the deck. If I do exactly that, I get a significantly different result for the 3rd test case. If I stop as soon as a player has no more cards, the results are much closer to yours (at ±1 trick for some other reason). \$\endgroup\$ Commented Dec 17, 2025 at 7:06
  • 2
    \$\begingroup\$ @Arnauld if a player must play but has no more cards to play, they lose, their opponent gets the stack that's on the table and therefore has just acquired all the cards in the deck, so they win. i'm not sure how one would go about playing when they don't have cards left. \$\endgroup\$ Commented Dec 17, 2025 at 9:18
  • 2
    \$\begingroup\$ @Arnauld i've checked the 713 tricks test case and it was off-by-one in the source. my implementation and the reference also output 712, and so do the answers here, so that's probably why you had ±1 trick. \$\endgroup\$ Commented Dec 17, 2025 at 11:18
  • \$\begingroup\$ Interesting, I thought nobody knew this game outside the province of Brescia, Italy. In our version of the game, you have to turn 1 card for an ace, 2 cards for a 2 and 3 cards for a 3. The name is unclear, we called it "senza camicia" (without shirt). \$\endgroup\$ Commented Dec 20, 2025 at 22:22

9 Answers 9

7
\$\begingroup\$

JavaScript (ES6), 117 bytes

Expects [deck0, deck1] where each deck is an array filled with integers 01234 for -JQKA. Returns [tricks, cards].

a=>{for(d=[],n=p=T=C=0;a[p^=1]+d;!n|c?n=c:--n?p^=1:d=a[T++,p].push(...d)&&[])d.push(c=a[p^1].shift(C++));return[T,C]}

Try it online!

Commented

a => {                // a[] = input as [ deck0, deck1 ]
  for(                // main loop:
    d = [],           //   d[] = table deck
    n =               //   n = number of cards we're allowed to draw
    p =               //   p = current player
    T = C = 0;        //   (T, C) = output (T = tricks / C = cards)
    a[p ^= 1] + d;    //   before each iteration, change p to 'the other player'
                      //   stop when both his deck and the table deck are empty
                      //   (i.e. the current player has all the cards)
    !n | c ?          //   after each iteration, if n is zero or c is not zero:
      n = c           //     set n to c
    :                 //   else:
      --n ?           //     decrement n; if it's not zero:
        p ^= 1        //       make the current player play again
      :               //     else:
        d = a[T++, p] //       end of trick: increment T
          .push(...d) //       push the table deck into the other player's deck
          && []       //       and clear the table deck
  )                   //
    d.push(           //   at each iteration,
      c = a[p ^ 1]    //   draw the card c from the deck of the current player,
        .shift(C++)   //   increment C, and push c into the table deck
    );                // end of for()
  return [T, C]       // return [ T, C ]
}                     //
\$\endgroup\$
1
  • 1
    \$\begingroup\$ very nice golf, impressive! \$\endgroup\$ Commented Dec 18, 2025 at 9:22
5
\$\begingroup\$

Python3, 255 bytes

def f(A,B):
 t=T=M=0;p=[]
 while A and B:
  p+=[c:=[A,B][t].pop(0)];h=c>0;T+=h;t=[~t,t][h];M+=1
  while F:=h:
   while c:
    if not(K:=[B,A][t]):h=0;break
    p+=[C:=K.pop(0)];M+=1;c-=1
    if C:F=0;t=~t;c=C;break
   if F:[A,B][t]+=p;p=[];h=0
 return T,M

Try it online!

\$\endgroup\$
4
  • \$\begingroup\$ 291 bytes \$\endgroup\$ Commented Dec 17, 2025 at 11:13
  • 1
    \$\begingroup\$ Whenever if F: is reached l==t, so l could be removed entirely. \$\endgroup\$ Commented Dec 17, 2025 at 18:47
  • \$\begingroup\$ 255 bytes \$\endgroup\$ Commented Dec 17, 2025 at 19:44
  • \$\begingroup\$ @JonathanAllan Thank you, updated \$\endgroup\$ Commented Dec 17, 2025 at 23:03
5
\$\begingroup\$

Charcoal, 79 77 76 bytes

≔⮌E²E⮌S⍘λ-JQKAθ≔⟦⟧η≔⟦⟧ζW⌊θ«→≔⮌θθ≔⊟§θ⁰ι⊞υι¿ι≔…⁰ιζ¿ζ¿⊟ζ≔⮌θθ⊞η⊞Oθ⁺E⮌υ⊟υ⊟θ»I⟦Lηⅈ

Try it online! Link is to verbose version of code. Explanation:

≔⮌E²E⮌S⍘λ-JQKAθ

Input the two decks, convert from card symbols to tries, but reverse the cards in each deck, and also reverse the decks, so that the first player's deck is last.

≔⟦⟧η

Keep track of the number of tricks.

≔⟦⟧ζ

Keep track of the tries left.

W⌊θ«

Repeat while both players have cards.

Keep track of the number of cards played.

≔⮌θθ

Switch the decks around so that the player whose turn it is is first.

≔⊟§θ⁰ι

Remove their next card from their deck.

⊞υι

Add it to the table.

¿ι≔…⁰ιζ

If it's a picture card, then set the tries their opponent has.

¿ζ

Otherwise if they have tries left, then:

¿⊟ζ

If they still have tries left, then...

≔⮌θθ

...switch the players around, so that the current player will have to play again on the next loop.

⊞η⊞Oθ⁺E⮌υ⊟υ⊟θ

Otherwise sweep the cards from the table into the other player's deck.

»I⟦Lηⅈ

Output the number of tricks and cards played.

The first 15 bytes can be removed resulting in a 62 61 byte program that only accepts a contrived input format:

≔⟦⟧η≔⟦⟧ζW⌊θ«→≔⮌θθ≔⊟§θ⁰ι⊞υι¿ι≔…⁰ιζ¿ζ¿⊟ζ≔⮌θθ⊞η⊞Oθ⁺E⮌υ⊟υ⊟θ»I⟦Lηⅈ

Try it online! Link is to verbose version of code. You can use the following program to convert a pair of strings into the format the previous program needs:

⭆¹⟦⮌E²E⮌S⍘ν-JQKA

Try it online! Link is to verbose version of code.

\$\endgroup\$
6
  • \$\begingroup\$ FYI, I wrote the rules such that you may specify your progra takes the decks as reversed arrays in reverse order if you wish to save bytes that way. \$\endgroup\$ Commented Dec 17, 2025 at 9:24
  • \$\begingroup\$ @Themoonisacheese Sure it would save 9 bytes but it makes it so much harder to paste the test cases in... \$\endgroup\$ Commented Dec 17, 2025 at 9:40
  • \$\begingroup\$ you can place it as part of the header then \$\endgroup\$ Commented Dec 17, 2025 at 9:51
  • \$\begingroup\$ @Themoonisacheese Unfortunately that doesn't work for me because the verbose mode -vl switches output the succinct byte count including header and footer. \$\endgroup\$ Commented Dec 17, 2025 at 10:43
  • \$\begingroup\$ ah, unfortunate. \$\endgroup\$ Commented Dec 17, 2025 at 10:51
2
\$\begingroup\$

Python 3.8 (pre-release), 193 176 bytes

def z(D):
	c=t=T=C=0;p=[]
	while 1:
		d=c;t=~t;c=0
		for _ in'a'*max(1,d):
			if all(D)<1:return T+bool(p),C
			if c<1:p+=[c:=D[~t].pop(0)];C+=1
		if c<1and d:D[t]+=p;T+=1;p=[]

Try it online!

Input is a 2 element list of lists containing numbers 0-4 for number, jack, queen, king, ace.

Output is (Tricks, Cards).

Variables are Deck, draw, turn, Tricks, Cards, pile, and check

The algorithm is simply playing the game. On each turn, a player draws the number of cards dictated by the face card on the previous turn (or 1 card, if the previous turn was not a face card). If the current player draws a face, the number of draws for the next turn is set to the value of that face, and the turn is swapped. Drawn cards increment the Card counter, and are added to the pile. When a player exhausts their draws with no face card and the previous turn had a face card, the cards in the pile are added to the other players Deck and the Trick counter is incremented. The game ends when any one of the players deck empties. If there are cards remaining in the pile when this happens, this counts for one extra Trick.

\$\endgroup\$
0
2
\$\begingroup\$

05AB1E, 77 70 bytes

ÎI[Dg52Ö#¼ć[Јa≠¯J©áĀ*i\r®g+Š®«´1#}…QKASskÌsŠôćsJs¬'-QiγćˆJ}ć©aiì®]r¾‚

Two loose inputs, where the starting player's deck is the second input.
Outputs a pair of \$[cardsPlayed,ticks]\$.

Try it online or verify all test cases.

Explanation:

Î                  # Push (card-counter) 0 and the first input-string to the
                   # stack
 I                 # Also push the second input-string to the stack
[                  # Start an (outer) infinite loop:
 D                 #  Duplicate the current player
  g                #  Pop and push the size of its deck
   52Ö             #  If it's divisible by 52 (so either all cards, or none)
      #            #   Stop the outer infinite loop
 ¼                 #  Increase `¾` by 1, which we'll use as tick-counter
 ć                 #  Extract the first/top card of the current player's deck
  [                #  Start an (inner) infinite loop:
   Ð               #   Triplicate that played card
    ˆ              #   Pop one copy, and add it to the global array
      ¯J©          #   Store the global array joined together in variable `®`
    a≠     i       #   Pop another copy, and if it's NOT a face card
          *        #   AND
        áĀ         #   the global array contains at least one face card:
            \      #    Discard this last player non-face card from the stack
            r      #    Reverse the stack, so the card-counter is on top
             ©     #    Push string `®`; all the cards played this tick
              g+   #    Pop and add its length to the card-counter
            Š      #    Triple-swap (in this case, short for `rs`: reverse stack
                   #    back, and swap both players)
             ®     #    Push `®` again
              «    #    Merge them to the bottom of the top player that won the
                   #    tick
            ´      #    Clear the global array
            1#     #    Stop the inner infinite loop
           }       #   Close the if-statement
   …QKAS           #   Push list ["Q","K","A"]†
        s          #   Swap to get the card played
         k         #   Pop both and get the 0-based index (or -1 if not present)
          Ì        #   Increase it by 2
                   #   (aka, "-"/""=1; "J"=1; "Q"=2; "K"=3; "A"=4)
   sŠ              #   Swap + triple-swap, so the players are swapped while
                   #   keeping this value on top
     ô             #   Split the deck of the player into parts of that size
      ć            #   Extract head
       sJs         #   Swap; join remainder-list back to a string; swap back
       ¬           #   Get the first character (without popping the part)
        '-Qi      '#   If its a "-"
            γ      #    Group the part into equal adjacent characters
             ć     #    Extract the first part of "-"s
              ˆ    #    Pop and add those to the global array
              J    #    Join the remaining ones back together to a string
           }       #   Close the if-statement
       ć           #   Extract the first character of the part
        ©          #   Store it in variable `®` (without popping)
         ai        #   Pop and if it's a face card:
           ì       #    Prepend the remainder of the part back to the top of the
                   #    deck
            ®      #    Push the played face card `®` for the next (inner)
                   #    iteration
                   #   (else: the empty remainder-string is used for the next
                   #   iteration instead)
]                  # Close the if statement and both nested infinite loops
 r                 # Reverse the stack so the card-counter is on top
  ¾‚               # Pair it with the tick-counter
                   # (after which it is output implicitly as result)

† Minor note: it's a list ["Q","K","A"] instead of a string "QKA" here, to deal with an empty string correctly becoming index -1 and thus value 1, instead of index 0 with value 2.

\$\endgroup\$
2
\$\begingroup\$

Bash, 200 bytes

A=($@);for((;${#A[0]}*${#A[1]};))do d=${A[x]::1};A[x]=${A[x]:1};p+=$d;((c++));if((d));then n=$d l=$x;((x^=1));elif((n));then((--n))||{ ((t++,x=l));A[l]+=$p p=;};else((x^=1));fi;done;echo $[t+(n>0)] $c

Input format: Two strings where each character is:

  • 0 = non-face card
  • 1 = Jack
  • 2 = Queen
  • 3 = King
  • 4 = Ace

Output format is the number of tricks followed by the number of cards.

For example:

bmn.sh 20010000300301000200040004 00030300140240010000020000 produces 712 5104

\$\endgroup\$
2
\$\begingroup\$

Python 3, 99 bytes

f=lambda a,b,o=-1,*q:a==()or o and 1j+f(*(b,a[1:],b)[o>a[0]<1:][:2],a[0]or~-o,*q,a[0])or 1+f(b+q,a)

Try it online!

Recursive solution - at every iteration, it determines the next move based on the current game state. Returns a complex number, with the real part being the number of tricks, and the imaginary part representing the total number of cards played.


Ungolfed:

def f(a,b,o=-1,*q):
 if a==(): return 1
 if o==0:  return 1  + f(b+q,a)
 if a[0]:  return 1j + f(b,a[1:],a[0],*q,a[0])
 if o<0:   return 1j + f(b,a[1:],o-1 ,*q,a[0])
 if o>0:   return 1j + f(a[1:],b,o-1 ,*q,a[0])

a = current player's cards

b = other player's cards

o = cards remaining to draw

q = cards on the table

\$\endgroup\$
1
\$\begingroup\$

Brainfuck, 1036471 bytes

Code compressed in base64ed gzip:

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

Too slow for TIO. Try this Brainfuck interpreter: https://copy.sh/brainfuck/

Takes input as 52 ASCII digits 0-4: leading 26 for player 1, trailing 26 for player 2. 0 for numbered cards, 1 for jacks, 2 for queens, 3 for kings, 4 for aces. e.g. 20010000300301000200040004000303001402400100000200000 produces 712 5104

For this challenge, I created a new small language that compiles to Brainfuck to help me generate the Brainfuck code. Once I clean it up I might get around to publicizing it, but here's a look at what the code looks like:

// Beggar My Neighbor in my new language
// Input: 52 ASCII digits (0-4), P1 leading 26, P2 trailing 26
// 0=number, 1=Jack, 2=Queen, 3=King, 4=Ace
var d1: [u8; 52]
var d2: [u8; 52]
var pile: [u8; 52]
var h1: u8 = 0
var s1: u8 = 26
var h2: u8 = 0
var s2: u8 = 26
var hp: u8 = 0
var sp: u8 = 0
var card: u8 = 0
var turn: u8 = 0
var penalty: u8 = 0
var lfp: u8 = 0
var cnt: u8 = 0
var done: bool = false
var tail: u8 = 0
var t3: u8 = 0
var t2: u8 = 0
var t1: u8 = 0
var t0: u8 = 0
var c3: u8 = 0
var c2: u8 = 0
var c1: u8 = 0
var c0: u8 = 0
var gameover: bool = false
var canplay: bool = true
var pf: bool = false

// Read 52 cards from stdin
read(d1[0])
d1[0] -= 48
read(d1[1])
d1[1] -= 48
read(d1[2])
d1[2] -= 48
read(d1[3])
d1[3] -= 48
read(d1[4])
d1[4] -= 48
read(d1[5])
d1[5] -= 48
read(d1[6])
d1[6] -= 48
read(d1[7])
d1[7] -= 48
read(d1[8])
d1[8] -= 48
read(d1[9])
d1[9] -= 48
read(d1[10])
d1[10] -= 48
read(d1[11])
d1[11] -= 48
read(d1[12])
d1[12] -= 48
read(d1[13])
d1[13] -= 48
read(d1[14])
d1[14] -= 48
read(d1[15])
d1[15] -= 48
read(d1[16])
d1[16] -= 48
read(d1[17])
d1[17] -= 48
read(d1[18])
d1[18] -= 48
read(d1[19])
d1[19] -= 48
read(d1[20])
d1[20] -= 48
read(d1[21])
d1[21] -= 48
read(d1[22])
d1[22] -= 48
read(d1[23])
d1[23] -= 48
read(d1[24])
d1[24] -= 48
read(d1[25])
d1[25] -= 48
read(d2[0])
d2[0] -= 48
read(d2[1])
d2[1] -= 48
read(d2[2])
d2[2] -= 48
read(d2[3])
d2[3] -= 48
read(d2[4])
d2[4] -= 48
read(d2[5])
d2[5] -= 48
read(d2[6])
d2[6] -= 48
read(d2[7])
d2[7] -= 48
read(d2[8])
d2[8] -= 48
read(d2[9])
d2[9] -= 48
read(d2[10])
d2[10] -= 48
read(d2[11])
d2[11] -= 48
read(d2[12])
d2[12] -= 48
read(d2[13])
d2[13] -= 48
read(d2[14])
d2[14] -= 48
read(d2[15])
d2[15] -= 48
read(d2[16])
d2[16] -= 48
read(d2[17])
d2[17] -= 48
read(d2[18])
d2[18] -= 48
read(d2[19])
d2[19] -= 48
read(d2[20])
d2[20] -= 48
read(d2[21])
d2[21] -= 48
read(d2[22])
d2[22] -= 48
read(d2[23])
d2[23] -= 48
read(d2[24])
d2[24] -= 48
read(d2[25])
d2[25] -= 48

loop {
canplay = true
if turn == 0 {
if s1 == 0 { canplay = false }
} else {
if s2 == 0 { canplay = false }
}

if !canplay {
if penalty > 0 {
t0 += 1
if t0 == 10 {
t0 = 0
t1 += 1
if t1 == 10 {
t1 = 0
t2 += 1
if t2 == 10 {
t2 = 0
t3 += 1
}
}
}
while sp > 0 {
cnt = hp
done = false
if cnt == 0 {
card = pile[0]
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[1]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[2]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[3]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[4]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[5]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[6]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[7]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[8]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[9]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[10]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[11]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[12]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[13]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[14]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[15]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[16]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[17]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[18]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[19]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[20]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[21]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[22]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[23]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[24]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[25]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[26]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[27]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[28]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[29]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[30]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[31]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[32]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[33]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[34]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[35]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[36]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[37]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[38]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[39]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[40]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[41]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[42]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[43]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[44]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[45]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[46]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[47]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[48]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[49]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[50]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[51]
done = true
}
}
hp += 1
if hp == 52 { hp = 0 }
sp -= 1
if lfp == 0 {
tail = h1 + s1
if tail >= 52 { tail -= 52 }
cnt = tail
done = false
if cnt == 0 {
d1[0] = card
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[1] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[2] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[3] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[4] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[5] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[6] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[7] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[8] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[9] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[10] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[11] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[12] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[13] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[14] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[15] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[16] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[17] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[18] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[19] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[20] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[21] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[22] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[23] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[24] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[25] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[26] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[27] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[28] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[29] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[30] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[31] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[32] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[33] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[34] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[35] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[36] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[37] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[38] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[39] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[40] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[41] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[42] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[43] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[44] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[45] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[46] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[47] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[48] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[49] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[50] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[51] = card
done = true
}
}
s1 += 1
} else {
tail = h2 + s2
if tail >= 52 { tail -= 52 }
cnt = tail
done = false
if cnt == 0 {
d2[0] = card
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[1] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[2] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[3] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[4] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[5] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[6] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[7] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[8] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[9] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[10] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[11] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[12] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[13] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[14] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[15] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[16] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[17] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[18] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[19] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[20] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[21] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[22] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[23] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[24] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[25] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[26] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[27] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[28] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[29] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[30] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[31] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[32] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[33] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[34] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[35] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[36] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[37] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[38] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[39] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[40] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[41] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[42] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[43] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[44] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[45] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[46] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[47] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[48] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[49] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[50] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d2[51] = card
done = true
}
}
s2 += 1
}
}
}
gameover = true
}

if !gameover {
// Dequeue from current player
if turn == 0 {
cnt = h1
done = false
if cnt == 0 {
card = d1[0]
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[1]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[2]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[3]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[4]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[5]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[6]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[7]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[8]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[9]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[10]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[11]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[12]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[13]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[14]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[15]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[16]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[17]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[18]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[19]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[20]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[21]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[22]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[23]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[24]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[25]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[26]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[27]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[28]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[29]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[30]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[31]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[32]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[33]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[34]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[35]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[36]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[37]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[38]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[39]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[40]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[41]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[42]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[43]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[44]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[45]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[46]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[47]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[48]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[49]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[50]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d1[51]
done = true
}
}
h1 += 1
if h1 == 52 { h1 = 0 }
s1 -= 1
} else {
cnt = h2
done = false
if cnt == 0 {
card = d2[0]
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[1]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[2]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[3]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[4]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[5]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[6]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[7]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[8]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[9]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[10]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[11]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[12]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[13]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[14]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[15]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[16]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[17]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[18]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[19]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[20]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[21]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[22]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[23]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[24]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[25]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[26]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[27]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[28]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[29]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[30]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[31]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[32]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[33]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[34]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[35]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[36]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[37]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[38]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[39]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[40]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[41]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[42]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[43]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[44]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[45]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[46]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[47]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[48]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[49]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[50]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = d2[51]
done = true
}
}
h2 += 1
if h2 == 52 { h2 = 0 }
s2 -= 1
}

// Enqueue to pile
tail = hp + sp
if tail >= 52 { tail -= 52 }
cnt = tail
done = false
if cnt == 0 {
pile[0] = card
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[1] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[2] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[3] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[4] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[5] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[6] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[7] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[8] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[9] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[10] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[11] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[12] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[13] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[14] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[15] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[16] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[17] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[18] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[19] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[20] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[21] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[22] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[23] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[24] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[25] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[26] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[27] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[28] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[29] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[30] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[31] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[32] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[33] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[34] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[35] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[36] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[37] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[38] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[39] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[40] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[41] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[42] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[43] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[44] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[45] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[46] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[47] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[48] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[49] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[50] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
pile[51] = card
done = true
}
}
sp += 1

c0 += 1
if c0 == 10 {
c0 = 0
c1 += 1
if c1 == 10 {
c1 = 0
c2 += 1
if c2 == 10 {
c2 = 0
c3 += 1
}
}
}

if card > 0 {
// Face card played
penalty = card
lfp = turn
turn = 1 - turn
} else if penalty > 0 {
// Non-face during penalty response
penalty -= 1
if penalty == 0 {
t0 += 1
if t0 == 10 {
t0 = 0
t1 += 1
if t1 == 10 {
t1 = 0
t2 += 1
if t2 == 10 {
t2 = 0
t3 += 1
}
}
}
while sp > 0 {
cnt = hp
done = false
if cnt == 0 {
card = pile[0]
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[1]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[2]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[3]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[4]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[5]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[6]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[7]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[8]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[9]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[10]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[11]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[12]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[13]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[14]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[15]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[16]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[17]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[18]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[19]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[20]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[21]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[22]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[23]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[24]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[25]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[26]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[27]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[28]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[29]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[30]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[31]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[32]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[33]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[34]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[35]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[36]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[37]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[38]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[39]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[40]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[41]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[42]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[43]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[44]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[45]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[46]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[47]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[48]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[49]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[50]
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
card = pile[51]
done = true
}
}
hp += 1
if hp == 52 { hp = 0 }
sp -= 1
if lfp == 0 {
tail = h1 + s1
if tail >= 52 { tail -= 52 }
cnt = tail
done = false
if cnt == 0 {
d1[0] = card
done = true
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[1] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[2] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[3] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[4] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[5] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[6] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[7] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[8] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[9] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[10] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[11] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[12] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[13] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[14] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[15] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[16] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[17] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[18] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[19] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[20] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[21] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
d1[22] = card
done = true
}
}
if !done { cnt -= 1 }
if !done {
if cnt == 0 {
// Truncated due to character limit
```
\$\endgroup\$
1
\$\begingroup\$

Raku (Perl 6) (rakudo), 144 bytes

Based on Arnauld’s answer.

Expects [deck0, deck1] where each deck is an array filled with integers 01234 for -JQKA. Returns (cards, tricks).

{@^a;my@b;my$/=[0,0,0,0];+(0,{push @b,$2=@a[!$0].shift;!$1|$2??($1=$2)!!--$1??($0=!$0)!!(@b=@a[$0].push(|@b)[^!++$3]);!@b}^...{!@a[$0=!$0]}),$3}

Attempt This Online!

\$\endgroup\$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.