By now anyone following the Coldsnap draft format must be aware of the potential brokenness of Surging Dementia. While unplayable in small numbers, triple Coldsnap draft offers the potential to receive as many as 8 or 9 of the same common. With so many in a deck, Mind Twisting your opponent for their full hand on turn 2 or 3 (and for a measly 2 mana and 1 card!) becomes possible. There are two questions that I think need to be answered regarding the potential strength of Surging Dementia decks. First, how many Surging Dementias do you need to make the card effective? And second, how many Surging Dementias are you likely to see in a draft? I'm going to try to answer the first question here.
One of the problems in determining the effectiveness of Surging Dementias is that it's hard to agree on criteria to establish "success" with the card. Making your opponent discard his whole hand on turn 2 is obviously a success, but what about making them discard 5 cards on turn 3? Or 2 cards on turn 3 and then 4 cards on turn 4? To remove this qualitative assessment, I decided to determine the average number of discards (D) a deck with N Surging Dementias would cause by turn T, if the player was playing every Surging Dementia in hand as soon as possible. I also determined the average amount of mana spent over this time per discarded card. Qualitative judgments about what was successful could then be made afterwards.
If it is even possible to solve this problem analytically, the skills to do so are well beyond my capability. A conceptually simpler approach would just be to play a very large number of games with each number of Surging Dementias, and see what happens. The patience to do this is also beyond my capability, so I instead wrote a computer script to do it for me. Being many years removed from any serious programming efforts, I used the tool most readily available to me: Microsoft Excel's Visual Basic for Applications. Excel's macro language made easy what other programming approaches might have required sophistication to do. For example, generating a randomized deck required just following few lines:
Range("B1:B40").Formula = "=RAND()"
Range("A1:A5").Value = "sd"
Range("A6:A40").Value = "a"
Range("A1:B40").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottomThis code yields the values "sd" (for surging dementia) and "a" (any other card) randomly distributed in cells A1 to A40.
All runs were performed with the assumption of drawing first, although the program could easily be changed to intead consider playing first. Additionally, mana was assumed to develop at 1 additional available mana per turn. These choices were made for ease of coding, although drawing first may be desirable in this kind of deck anyway. The code is undoubtedly sloppy, but I believe it to be sound. To conduct a run, the number of Surging Dementias was adjusted by changing how many fields were populated with the tag "sd" in the "generatedeck" procedure. Then, the number of turns was adjusted by changing the block of cells tallied in the "TestSomeGames" procedure. Currently, it counts from turn 2 to turn 5 (the cell ranges are B2:B5 and D2:D5). This would be adjusted to turn 3 by changing these cell ranges to B2:B3 and D2:D3.
Here is the output I received from running the program considering having between 5 and 9 Surging Dementias in the deck, and considering total discards produced from turn 2 up until turn 3, 4, or 5. Each combination of SDs and turns was run 100 times, except for 8 SDs and turn 4, which was run 300 times.
With N Surging Dementia, casting them ASAP, how many cards will you hit from opponent's hand by turn 3, and how much mana will you spend to do it?
With 9 Surging Dementias in deck:
332 mana spent for 569 cards.
Average of 0.583479789103691 per card.
Average of 5.69 per game.
With 8 Surging Dementias in deck:
300 mana spent for 430 cards.
Average of 0.697674418604651 per card.
Average of 4.3 per game.
With 7 Surging Dementias in deck:
268 mana spent for 281 cards.
Average of 0.953736654804271 per card.
Average of 2.81 per game.
With 6 Surging Dementias in deck:
266 mana spent for 256 cards.
Average of 1.0390625 per card.
Average of 2.56 per game.
With 5 Surging Dementias in deck:
248 mana spent for 201 cards.
Average of 1.23383084577114 per card.
Average of 2.01 per game.
How about by turn 4?
With 9 Surging Dementias in deck:
404 mana spent for 670 cards.
Average of 0.602985074626866 per card.
Average of 6.7 per game.
With 8 Surging Dementias in deck:
1300 mana spent for 1696 cards.
Average of 0.766509433962264 per card.
Average of 5.653333 per game.
With 7 Surging Dementia in deck:
386 mana spent for 424 cards.
Average of 0.910377358490566 per card.
Average of 4.24 per game.
With 6 Surging Dementia in deck:
338 mana spent for 309 cards.
Average of 1.09385113268608 per card.
Average of 3.09 per game.
With 5 Surging Dementia in deck:
260 mana spent for 214 cards.
Average of 1.21495327102804 per card.
Average of 2.14 per game.
How about by turn 5?
With 9 Surging Dementias in deck:
426 mana spent for 727 cards.
Average of 0.585969738651995 per card.
Average of 7.27 per game.
With 8 Surging Dementias in deck:
490 mana spent for 573 cards.
Average of 0.855148342059337 per card.
Average of 5.73 per game.
With 7 Surging Dementias in deck:
400 mana spent for 423 cards.
Average of 0.945626477541371 per card.
Average of 4.23 per game.
With 6 Surging Dementias in deck:
358 mana spent for 323 cards.
Average of 1.10835913312693 per card.
Average of 3.23 per game.
With 5 Surging Dementias in deck:
306 mana spent for 247 cards.
Average of 1.23886639676113 per card.
Average of 2.47 per game.
Based on these results, I'd say that 7 Surging Dementia is the point at which this deck strategy will cause reliable enough disruption to warrant playing this approach.
The full Excel macros I used to make these calculations are available below. I release all the code I wrote in it to the public domain. I will field questions about how the code works, although you must promise not to make fun of my non-1337-h4X0r coding skills. Anyone wishing to reproduce a substantial portion of the actual text I've written in this post should give credit to "a post on themanadrain.com".
A useful followup to this analysis would be to determine the percentage of drafts which are likely to contain N Surging Dementias. I believe that the expected number in an 8 man draft is 4.06 (8*3*11/65), so getting the 7 that I think is desirable seems improbable. Unsanctioned drafts containing more than 8 players represent a better chance of seeing enough Surging Dementias to make the strategy worthwhile.
Appendix: Microsoft Excel Visual Basic for Applications macro code for analyzing Surging DementiaSub Shuffle()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("A1:B40").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Sub draw()
If Range("A1").Value = "sd" Then
Range("C1").Value = Range("C1").Value + 1
End If
Range("A1").Delete Shift:=xlUp
End Sub
Sub generatedeck()
Range("B1:B40").Formula = "=RAND()"
Range("A1:A5").Value = "sd"
Range("A6:A40").Value = "a"
Range("A1:B40").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1:B40").Clear
End Sub
Sub playsd()
Dim n, hits, turnb As Integer
hits = 0
turnb = Range("C2").Value
For n = 1 To 4
If Not IsEmpty(Range("A1")) Then
If Range("A1") = "sd" Then
hits = hits + 1
Worksheets(1).Cells(turnb, 2).Value = Worksheets(1).Cells(turnb, 2).Value + 1
Worksheets(1).Cells(turnb, 4).Value = Worksheets(1).Cells(turnb, 4).Value + 1
End If
Range("A1").Delete Shift:=xlUp
End If
Next n
For n = 1 To hits
Call playsd
Next n
End Sub
Sub PlayGame()
Range("A1:D40").Clear
Call generatedeck
Range("C1").Value = "0"
Dim counter As Integer
For counter = 1 To 7
Call draw
Next counter
Dim turn As Integer
turn = 0
Dim num_playable_sd, n As Integer
Do While Not IsEmpty(Range("A1"))
turn = turn + 1
Range("C2").Value = turn
Call draw
num_playable_sd = turn \ 2
For n = 1 To num_playable_sd
If Range("C1").Value > 0 Then
Range("C1").Value = Range("C1").Value - 1
Worksheets(1).Cells(turn, 2).Value = Worksheets(1).Cells(turn, 2).Value + 1
Call playsd
End If
Next n
Loop
End Sub
Sub TestSomeGames()
Dim n, numgames, hits, successes, totaldiscarded, manaspent As Integer
Dim avgmana, avgcards As Single
numgames = 100
successes = 0
totaldiscarded = 0
manaspent = 0
For n = 1 To numgames
Call PlayGame
hits = 0
For Each mycell In Range("B2:B5").Cells
If Not IsEmpty(mycell) Then
hits = hits + mycell.Value
End If
Next mycell
totaldiscarded = hits + totaldiscarded
For Each mycell In Range("D2:D5").Cells
If Not IsEmpty(mycell) Then
hits = hits - mycell.Value
End If
Next mycell
manaspent = manaspent + hits * 2
Next n
avgmana = manaspent / totaldiscarded
avgcards = totaldiscarded / numgames
Debug.Print manaspent, "mana spent for", totaldiscarded, "cards."
Debug.Print "Average of", avgmana, "per card."
Debug.Print "Average of", avgcards, "per game."
End Sub