Je verloor tegen de klein krab! Gelukkig zijn krabben niet erg goed in recursie. Om je eer als Kapitein-van-het-Vlot te verdedigen, daag je de kleine krab uit voor een spelletje Recursieve Combat.

Recursieve Combat begint nog steeds door de kaarten in twee stapels te verdelen (je stelt voor om met dezelfde stapels te beginnen al voorheen — een redelijk voorstel). Het spel verloopt opnieuw over enkele rondes, met een paar wijzigingen:

Net als in de standaardversie van Combat, neemt de winnaar van de ronde (ook als hij de ronde gewonnen heeft door een recursief spel te winnen) de twee kaarten die aan het begin van de ronde getrokken zijn en plaatst die onderaan zijn stapel (opnieuw zodat de kaart van de winnaar boven de andere kaart ligt). Merk op dat de kaart van de winnaar de lagere waarde van de twee kaarten kan hebben, als de ronde gewonnen werd door het winnen van een recursief spel. Als het verzamelen van de kaarten door het winnen van de ronde ervoor zorgt dat één speler alle kaarten heeft, dan is hij de winnaar en eindigt het spel.

Dit is een voorbeeld van een klein spelletje dat voor altijd zou doorgaan zonder de regel die oneindige spelletjes verhindert:

Player 1:
43
19

Player 2:
2
29
14

Als tijdens een ronde van Recursieve Combat beide spelers minstens evenveel kaarten in hun eigen stapel hebben als de waarde van de kaart die ze net getrokken hebben, dan word de winnaar van de ronde bepaald door recursief een spelletje Recursieve Combat te spelen. (Als speler 1 bijvoorbeeld de kaart 3 trekt en speler 2 de kaart 7, dan zou dit gebeuren als speler 1 minstens 3 kaarten over heeft en als speler 2 minstens 7 kaarten over heeft, zonder de getrokken kaarten 3 en 7 mee te tellen.)

Om recursief een spelletje Recursieve Combat te spelen, vormt elke speler een nieuwe stapel door een kopie te nemen van de volgende kaarten in zijn stapel (het aantal gekopieerde kaarten is gelijk aan de waarde van de getrokken kaart die het recursieve spelletje geactiveerd heeft.) Tijdens het recursieve spelletje wordt het spelletje dat het geactiveerd heeft tijdelijk stopgezet en verandert er niets. Er worden geen kaarten uit de stapels van de spelers getrokken om het recursieve spel te spelen. (Als speler 1 bijvoorbeeld de kaart 3 getrokken heeft, bestaat zijn stapel in het recursieve spelletje uit kopieën van de volgende drie kaarten in zijn stapel.)

Dit is het volledige verloop van een spelletje, waarbij Spel 1 het hoofdspel van Recursieve Combat is:

=== Spel 1 ===

-- Ronde 1 (Spel 1) --
Stapel van speler 1: 9, 2, 6, 3, 1
Stapel van speler 2: 5, 8, 4, 7, 10
Speler 1 trekt: 9
Speler 2 trekt: 5
Speler 1 wint ronde 1 van spel 1!

-- Ronde 2 (Spel 1) --
Stapel van speler 1: 2, 6, 3, 1, 9, 5
Stapel van speler 2: 8, 4, 7, 10
Speler 1 trekt: 2
Speler 2 trekt: 8
Speler 2 wint ronde 2 van spel 1!

-- Ronde 3 (Spel 1) --
Stapel van speler 1: 6, 3, 1, 9, 5
Stapel van speler 2: 4, 7, 10, 8, 2
Speler 1 trekt: 6
Speler 2 trekt: 4
Speler 1 wint ronde 3 van spel 1!

-- Ronde 4 (Spel 1) --
Stapel van speler 1: 3, 1, 9, 5, 6, 4
Stapel van speler 2: 7, 10, 8, 2
Speler 1 trekt: 3
Speler 2 trekt: 7
Speler 2 wint ronde 4 van spel 1!

-- Ronde 5 (Spel 1) --
Stapel van speler 1: 1, 9, 5, 6, 4
Stapel van speler 2: 10, 8, 2, 7, 3
Speler 1 trekt: 1
Speler 2 trekt: 10
Speler 2 wint ronde 5 van spel 1!

-- Ronde 6 (Spel 1) --
Stapel van speler 1: 9, 5, 6, 4
Stapel van speler 2: 8, 2, 7, 3, 10, 1
Speler 1 trekt: 9
Speler 2 trekt: 8
Speler 1 wint ronde 6 van spel 1!

-- Ronde 7 (Spel 1) --
Stapel van speler 1: 5, 6, 4, 9, 8
Stapel van speler 2: 2, 7, 3, 10, 1
Speler 1 trekt: 5
Speler 2 trekt: 2
Speler 1 wint ronde 7 van spel 1!

-- Ronde 8 (Spel 1) --
Stapel van speler 1: 6, 4, 9, 8, 5, 2
Stapel van speler 2: 7, 3, 10, 1
Speler 1 trekt: 6
Speler 2 trekt: 7
Speler 2 wint ronde 8 van spel 1!

-- Ronde 9 (Spel 1) --
Stapel van speler 1: 4, 9, 8, 5, 2
Stapel van speler 2: 3, 10, 1, 7, 6
Speler 1 trekt: 4
Speler 2 trekt: 3
Speel een recursief spelletje om de winnaar te bepalen...

=== Spel 2 ===

-- Ronde 1 (Spel 2) --
Stapel van speler 1: 9, 8, 5, 2
Stapel van speler 2: 10, 1, 7
Speler 1 trekt: 9
Speler 2 trekt: 10
Speler 2 wint ronde 1 van spel 2!

-- Ronde 2 (Spel 2) --
Stapel van speler 1: 8, 5, 2
Stapel van speler 2: 1, 7, 10, 9
Speler 1 trekt: 8
Speler 2 trekt: 1
Speler 1 wint ronde 2 van spel 2!

-- Ronde 3 (Spel 2) --
Stapel van speler 1: 5, 2, 8, 1
Stapel van speler 2: 7, 10, 9
Speler 1 trekt: 5
Speler 2 trekt: 7
Speler 2 wint ronde 3 van spel 2!

-- Ronde 4 (Spel 2) --
Stapel van speler 1: 2, 8, 1
Stapel van speler 2: 10, 9, 7, 5
Speler 1 trekt: 2
Speler 2 trekt: 10
Speler 2 wint ronde 4 van spel 2!

-- Ronde 5 (Spel 2) --
Stapel van speler 1: 8, 1
Stapel van speler 2: 9, 7, 5, 10, 2
Speler 1 trekt: 8
Speler 2 trekt: 9
Speler 2 wint ronde 5 van spel 2!

-- Ronde 6 (Spel 2) --
Stapel van speler 1: 1
Stapel van speler 2: 7, 5, 10, 2, 9, 8
Speler 1 trekt: 1
Speler 2 trekt: 7
Speler 2 wint ronde 6 van spel 2!
De winnaar van spel 2 is player 2!

...en keer terug naar spel 1.
Speler 2 wint ronde 9 van spel 1!

-- Ronde 10 (Spel 1) --
Stapel van speler 1: 9, 8, 5, 2
Stapel van speler 2: 10, 1, 7, 6, 3, 4
Speler 1 trekt: 9
Speler 2 trekt: 10
Speler 2 wint ronde 10 van spel 1!

-- Ronde 11 (Spel 1) --
Stapel van speler 1: 8, 5, 2
Stapel van speler 2: 1, 7, 6, 3, 4, 10, 9
Speler 1 trekt: 8
Speler 2 trekt: 1
Speler 1 wint ronde 11 van spel 1!

-- Ronde 12 (Spel 1) --
Stapel van speler 1: 5, 2, 8, 1
Stapel van speler 2: 7, 6, 3, 4, 10, 9
Speler 1 trekt: 5
Speler 2 trekt: 7
Speler 2 wint ronde 12 van spel 1!

-- Ronde 13 (Spel 1) --
Stapel van speler 1: 2, 8, 1
Stapel van speler 2: 6, 3, 4, 10, 9, 7, 5
Speler 1 trekt: 2
Speler 2 trekt: 6
Speel een recursief spelletje om de winnaar te bepalen...

=== Spel 3 ===

-- Ronde 1 (Spel 3) --
Stapel van speler 1: 8, 1
Stapel van speler 2: 3, 4, 10, 9, 7, 5
Speler 1 trekt: 8
Speler 2 trekt: 3
Speler 1 wint ronde 1 van spel 3!

-- Ronde 2 (Spel 3) --
Stapel van speler 1: 1, 8, 3
Stapel van speler 2: 4, 10, 9, 7, 5
Speler 1 trekt: 1
Speler 2 trekt: 4
Speel een recursief spelletje om de winnaar te bepalen...

=== Spel 4 ===

-- Ronde 1 (Spel 4) --
Stapel van speler 1: 8
Stapel van speler 2: 10, 9, 7, 5
Speler 1 trekt: 8
Speler 2 trekt: 10
Speler 2 wint ronde 1 van spel 4!
De winnaar van spel 4 is player 2!

...en keer terug naar spel 3.
Speler 2 wint ronde 2 van spel 3!

-- Ronde 3 (Spel 3) --
Stapel van speler 1: 8, 3
Stapel van speler 2: 10, 9, 7, 5, 4, 1
Speler 1 trekt: 8
Speler 2 trekt: 10
Speler 2 wint ronde 3 van spel 3!

-- Ronde 4 (Spel 3) --
Stapel van speler 1: 3
Stapel van speler 2: 9, 7, 5, 4, 1, 10, 8
Speler 1 trekt: 3
Speler 2 trekt: 9
Speler 2 wint ronde 4 van spel 3!
De winnaar van spel 3 is player 2!

...en keer terug naar spel 1.
Speler 2 wint ronde 13 van spel 1!

-- Ronde 14 (Spel 1) --
Stapel van speler 1: 8, 1
Stapel van speler 2: 3, 4, 10, 9, 7, 5, 6, 2
Speler 1 trekt: 8
Speler 2 trekt: 3
Speler 1 wint ronde 14 van spel 1!

-- Ronde 15 (Spel 1) --
Stapel van speler 1: 1, 8, 3
Stapel van speler 2: 4, 10, 9, 7, 5, 6, 2
Speler 1 trekt: 1
Speler 2 trekt: 4
Speel een recursief spelletje om de winnaar te bepalen...

=== Spel 5 ===

-- Ronde 1 (Spel 5) --
Stapel van speler 1: 8
Stapel van speler 2: 10, 9, 7, 5
Speler 1 trekt: 8
Speler 2 trekt: 10
Speler 2 wint ronde 1 van spel 5!
De winnaar van spel 5 is player 2!

...en keer terug naar spel 1.
Speler 2 wint ronde 15 van spel 1!

-- Ronde 16 (Spel 1) --
Stapel van speler 1: 8, 3
Stapel van speler 2: 10, 9, 7, 5, 6, 2, 4, 1
Speler 1 trekt: 8
Speler 2 trekt: 10
Speler 2 wint ronde 16 van spel 1!

-- Ronde 17 (Spel 1) --
Stapel van speler 1: 3
Stapel van speler 2: 9, 7, 5, 6, 2, 4, 1, 10, 8
Speler 1 trekt: 3
Speler 2 trekt: 9
Speler 2 wint ronde 17 van spel 1!
De winnaar van spel 1 is speler 2!


== Einde van het spel ==
Stapel van speler 1: 
Stapel van speler 2: 7, 5, 6, 2, 4, 1, 10, 8, 9, 3

Op het einde van het spel wordt de score van de winnaar berekend op basis van de kaarten die op dat moment in zijn stapel liggen. Hiervoor gebruiken we dezelfde regels als bij een gewoon spelletje Combat. In het voorgaande spelletje is de score van de winnaar dus 291.

Opgave

Verdedig je eer als Kapitein-van-het-Vlot door het tegen de kleine krab op te nemen in een spelletje Recursieve Combat. Wat is de score van de winnaar? Hiervoor gaan we als volgt te werk:

Deze statische functie moet zich in de klasse Submission bevinden.

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat het tekstbestand decks.txt1 zich in de huidige directory bevindt.

> Submission.winningScore("decks.txt")
291