Okay, trying this with 16 packs. Will continue to trim pack count if needed. Some changes:
I made a spreadsheet that assigned a color identity to each card, then automatically remove from the draft pool the cards that have the color in question. In this case, that cut our pool from 360 cards to 276, which means 84 cards were cut.
I assigned the three Wastelands to colors W, B and R, so most grid drafts there will be a maximum of 2 Wastelands floating around.
In my code, I wrote it so that the shocklands are always in there. Fetches and dual lands are still random. Maybe I will seed one fetch from each color pair in there later. (Note that, unlike last time, there will be no off-color fetches. No Scalding Tarn in this draft).
Here is the (R) code, if anyone cares:
And the draft!
Pack 1
Row 1:
1 Farseek
1 Mana Tithe
1 Carrion Feeder
Row 2:
1 Liliana of the Veil
1 Jace, Architect of Thought
1 Wall of Omens
Row 3:
1 Counterspell
1 Flickerwisp
1 Polluted Delta
Column 1:
1 Farseek
1 Liliana of the Veil
1 Counterspell
Column 2:
1 Mana Tithe
1 Jace, Architect of Thought
1 Flickerwisp
Column 3:
1 Carrion Feeder
1 Wall of Omens
1 Polluted Delta
Pack 2
Row 1:
1 Ranger of Eos
1 Seeker of the Way
1 Kitchen Finks
Row 2:
1 Scatter to the Winds
1 Polluted Delta
1 Fact or Fiction
Row 3:
1 Gravecrawler
1 Underground Sea
1 Polluted Delta
Column 1:
1 Ranger of Eos
1 Scatter to the Winds
1 Gravecrawler
Column 2:
1 Seeker of the Way
1 Polluted Delta
1 Underground Sea
Column 3:
1 Kitchen Finks
1 Fact or Fiction
1 Polluted Delta
Pack 3
Row 1:
1 Sultai Emissary
1 Tidehollow Sculler
1 Jinxed Idol
Row 2:
1 Sower of Temptation
1 Scrubland
1 Languish
Row 3:
1 Blasting Station
1 Far // Away
1 Day of Judgment
Column 1:
1 Sultai Emissary
1 Sower of Temptation
1 Blasting Station
Column 2:
1 Tidehollow Sculler
1 Scrubland
1 Far // Away
Column 3:
1 Jinxed Idol
1 Languish
1 Day of Judgment
Pack 4
Row 1:
1 Baleful Strix
1 Dark Confidant
1 Silverblade Paladin
Row 2:
1 Oblivion Ring
1 Squelch
1 Sphere of the Suns
Row 3:
1 Abyssal Persecutor
1 Life from the Loam
1 Malicious Affliction
Column 1:
1 Baleful Strix
1 Oblivion Ring
1 Abyssal Persecutor
Column 2:
1 Dark Confidant
1 Squelch
1 Life from the Loam
Column 3:
1 Silverblade Paladin
1 Sphere of the Suns
1 Malicious Affliction
Pack 5
Row 1:
1 Phantasmal Image
1 Ludevic's Test Subject
1 Hero of Bladehold
Row 2:
1 Flesh Carver
1 Yavimaya Elder
1 Control Magic
Row 3:
1 Augur of Bolas
1 Nevinyrral's Disk
1 Deathrite Shaman
Column 1:
1 Phantasmal Image
1 Flesh Carver
1 Augur of Bolas
Column 2:
1 Ludevic's Test Subject
1 Yavimaya Elder
1 Nevinyrral's Disk
Column 3:
1 Hero of Bladehold
1 Control Magic
1 Deathrite Shaman
Pack 6
Row 1:
1 Voice of Resurgence
1 Breeding Pool
1 Birthing Pod
Row 2:
1 Mirror Entity
1 Marsh Flats
1 Scavenging Ooze
Row 3:
1 Champion of the Parish
1 Forbidden Alchemy
1 Narset Transcendent
Column 1:
1 Voice of Resurgence
1 Mirror Entity
1 Champion of the Parish
Column 2:
1 Breeding Pool
1 Marsh Flats
1 Forbidden Alchemy
Column 3:
1 Birthing Pod
1 Scavenging Ooze
1 Narset Transcendent
Pack 7
Row 1:
1 Basilisk Collar
1 Executioner's Capsule
1 Hallowed Burial
Row 2:
1 Brindle Shoat
1 Verdant Catacombs
1 Polukranos, World Eater
Row 3:
1 Venser, Shaper Savant
1 Brainstorm
1 Meloku the Clouded Mirror
Column 1:
1 Basilisk Collar
1 Brindle Shoat
1 Venser, Shaper Savant
Column 2:
1 Executioner's Capsule
1 Verdant Catacombs
1 Brainstorm
Column 3:
1 Hallowed Burial
1 Polukranos, World Eater
1 Meloku the Clouded Mirror
Pack 8
Row 1:
1 Nature's Claim
1 Brainstorm
1 Spectral Procession
Row 2:
1 Temple Garden
1 Putrid Leech
1 Engineered Explosives
Row 3:
1 Champion of the Parish
1 Loyal Cathar
1 Tundra
Column 1:
1 Nature's Claim
1 Temple Garden
1 Champion of the Parish
Column 2:
1 Brainstorm
1 Putrid Leech
1 Loyal Cathar
Column 3:
1 Spectral Procession
1 Engineered Explosives
1 Tundra
Pack 9
Row 1:
1 Hero's Downfall
1 Curse of Shallow Graves
1 Chief of the Edge
Row 2:
1 Garruk, Primal Hunter
1 Perilous Myr
1 Courser of Kruphix
Row 3:
1 Overgrown Tomb
1 Primal Command
1 Misty Rainforest
Column 1:
1 Hero's Downfall
1 Garruk, Primal Hunter
1 Overgrown Tomb
Column 2:
1 Curse of Shallow Graves
1 Perilous Myr
1 Primal Command
Column 3:
1 Chief of the Edge
1 Courser of Kruphix
1 Misty Rainforest
Pack 10
Row 1:
1 Thoughtseize
1 Primeval Titan
1 Mulldrifter
Row 2:
1 Acidic Slime
1 Bloodgift Demon
1 Nest Invader
Row 3:
1 Quarantine Field
1 Emeria Angel
1 Journey to Nowhere
Column 1:
1 Thoughtseize
1 Acidic Slime
1 Quarantine Field
Column 2:
1 Primeval Titan
1 Bloodgift Demon
1 Emeria Angel
Column 3:
1 Mulldrifter
1 Nest Invader
1 Journey to Nowhere
Pack 11
Row 1:
1 Vorapede
1 Treasure Cruise
1 Gideon Jura
Row 2:
1 Rampaging Baloths
1 Grave Titan
1 Ophiomancer
Row 3:
1 Garruk Wildspeaker
1 Angel of Serenity
1 Condescend
Column 1:
1 Vorapede
1 Rampaging Baloths
1 Garruk Wildspeaker
Column 2:
1 Treasure Cruise
1 Grave Titan
1 Angel of Serenity
Column 3:
1 Gideon Jura
1 Ophiomancer
1 Condescend
Pack 12
Row 1:
1 Tezzeret's Gambit
1 Phyrexian Revoker
1 Delver of Secrets
Row 2:
1 Hallowed Fountain
1 Porcelain Legionnaire
1 Fabled Hero
Row 3:
1 Bloodghast
1 Brainstorm
1 Bone Shredder
Column 1:
1 Tezzeret's Gambit
1 Hallowed Fountain
1 Bloodghast
Column 2:
1 Phyrexian Revoker
1 Porcelain Legionnaire
1 Brainstorm
Column 3:
1 Delver of Secrets
1 Fabled Hero
1 Bone Shredder
Pack 13
Row 1:
1 Consecrated Sphinx
1 Fencing Ace
1 Expedition Map
Row 2:
1 Baneslayer Angel
1 Thrun, the Last Troll
1 Vendilion Clique
Row 3:
1 Xathrid Necromancer
1 Bloodsoaked Champion
1 Bayou
Column 1:
1 Consecrated Sphinx
1 Baneslayer Angel
1 Xathrid Necromancer
Column 2:
1 Fencing Ace
1 Thrun, the Last Troll
1 Bloodsoaked Champion
Column 3:
1 Expedition Map
1 Vendilion Clique
1 Bayou
Pack 14
Row 1:
1 Vampiric Tutor
1 Memory Lapse
1 Steppe Lynx
Row 2:
1 Thirst for Knowledge
1 Verdant Catacombs
1 Brainstorm
Row 3:
1 Harrow
1 Snapcaster Mage
1 Godless Shrine
Column 1:
1 Vampiric Tutor
1 Thirst for Knowledge
1 Harrow
Column 2:
1 Memory Lapse
1 Verdant Catacombs
1 Snapcaster Mage
Column 3:
1 Steppe Lynx
1 Brainstorm
1 Godless Shrine
Pack 15
Row 1:
1 Fettergeist
1 Damnation
1 Bloodsoaked Champion
Row 2:
1 Jace, the Mind Sculptor
1 Sphinx of Jwar Isle
1 Thalia, Guardian of Thraben
Row 3:
1 Man-o'-War
1 Wall of Roots
1 Hushwing Gryff
Column 1:
1 Fettergeist
1 Jace, the Mind Sculptor
1 Man-o'-War
Column 2:
1 Damnation
1 Sphinx of Jwar Isle
1 Wall of Roots
Column 3:
1 Bloodsoaked Champion
1 Thalia, Guardian of Thraben
1 Hushwing Gryff
Pack 16
Row 1:
1 Marsh Flats
1 Mother of Runes
1 Coldsteel Heart
Row 2:
1 Steppe Lynx
1 Watery Grave
1 Edge of Autumn
Row 3:
1 Skinrender
1 Titania, Protector of Argoth
1 Search for Tomorrow
Column 1:
1 Marsh Flats
1 Steppe Lynx
1 Skinrender
Column 2:
1 Mother of Runes
1 Watery Grave
1 Titania, Protector of Argoth
Column 3:
1 Coldsteel Heart
1 Edge of Autumn
1 Search for Tomorrow
I made a spreadsheet that assigned a color identity to each card, then automatically remove from the draft pool the cards that have the color in question. In this case, that cut our pool from 360 cards to 276, which means 84 cards were cut.
I assigned the three Wastelands to colors W, B and R, so most grid drafts there will be a maximum of 2 Wastelands floating around.
In my code, I wrote it so that the shocklands are always in there. Fetches and dual lands are still random. Maybe I will seed one fetch from each color pair in there later. (Note that, unlike last time, there will be no off-color fetches. No Scalding Tarn in this draft).
Here is the (R) code, if anyone cares:
Code:
library(xlsx)
nPacks <- 16
fileName <- list.files(".", pattern = ".xlsx")
cubeDf <- read.xlsx(fileName, sheetIndex = 1)
colorIds <- as.vector(cubeDf[, 2])
cube <- as.vector(cubeDf[, 1])
# select colors
colorToOmit <- "R" # sample(c("W", "U", "R", "B", "G"), 1)
colorList <- strsplit(colorIds, split = NULL)
rowsToKeep <- rep(1, length(cube))
for(i in 1:length(cube))
if(colorToOmit %in% colorList[[i]])
rowsToKeep[i] <- 0
cube <- cube[which(rowsToKeep == 1)]
# seed in shocklands
shocklands <- c("Blood Crypt", "Godless Shrine", "Overgrown Tomb",
"Sacred Foundry", "Stomping Ground", "Temple Garden", "Breeding Pool",
"Hallowed Fountain", "Watery Grave", "Steam Vents")
shockIds <- which(cube %in% shocklands)
gridPile <- cube[shockIds]
cube <- cube[-shockIds]
gridPile <- c(gridPile, sample(cube, size=9*nPacks - length(shockIds)))
gridPile <- sample(gridPile)
pack <- gridPile[1:9]
printPack <- function(pack, i) {
cat("Pack", i, "\n", file="gridDraft.txt", append=TRUE)
cat("[spoiler][ci=small]", pack[1], "\n", pack[2], "\n", pack[3],
"[/ci]", "\n", sep="", file="gridDraft.txt", append=TRUE)
cat("[ci=small]", pack[4], "\n", pack[5], "\n", pack[6],
"[/ci]", "\n", sep="", file="gridDraft.txt", append=TRUE)
cat("[ci=small]", pack[7], "\n", pack[8], "\n", pack[9], "[/ci]", "\n",
"\n", sep="", file="gridDraft.txt", append=TRUE)
cat("Row 1:\n1 ", pack[1], "\n1 ", pack[2], "\n1 ", pack[3], "\n \n",
sep="", file="gridDraft.txt", append=TRUE)
cat("Row 2:\n1 ", pack[4], "\n1 ", pack[5], "\n1 ", pack[6], "\n \n",
sep="", file="gridDraft.txt", append=TRUE)
cat("Row 3:\n1 ", pack[7], "\n1 ", pack[8], "\n1 ", pack[9], "\n \n",
sep="", file="gridDraft.txt", append=TRUE)
cat("Column 1:\n1 ", pack[1], "\n1 ", pack[4], "\n1 ", pack[7], "\n \n",
sep="", file="gridDraft.txt", append=TRUE)
cat("Column 2:\n1 ", pack[2], "\n1 ", pack[5], "\n1 ", pack[8], "\n \n",
sep="", file="gridDraft.txt", append=TRUE)
cat("Column 3:\n1 ", pack[3], "\n1 ", pack[6], "\n1 ", pack[9],
"\n[/spoiler]\n \n",
sep="", file="gridDraft.txt", append=TRUE)
}
cat("Grid Drafting!", "\n", "\n", file="gridDraft.txt")
for(i in 1:nPacks) {
pack <- gridPile[1:9 + (i-1)*9]
printPack(pack, i)
}
And the draft!
Pack 1
Row 1:
1 Farseek
1 Mana Tithe
1 Carrion Feeder
Row 2:
1 Liliana of the Veil
1 Jace, Architect of Thought
1 Wall of Omens
Row 3:
1 Counterspell
1 Flickerwisp
1 Polluted Delta
Column 1:
1 Farseek
1 Liliana of the Veil
1 Counterspell
Column 2:
1 Mana Tithe
1 Jace, Architect of Thought
1 Flickerwisp
Column 3:
1 Carrion Feeder
1 Wall of Omens
1 Polluted Delta
Pack 2
Row 1:
1 Ranger of Eos
1 Seeker of the Way
1 Kitchen Finks
Row 2:
1 Scatter to the Winds
1 Polluted Delta
1 Fact or Fiction
Row 3:
1 Gravecrawler
1 Underground Sea
1 Polluted Delta
Column 1:
1 Ranger of Eos
1 Scatter to the Winds
1 Gravecrawler
Column 2:
1 Seeker of the Way
1 Polluted Delta
1 Underground Sea
Column 3:
1 Kitchen Finks
1 Fact or Fiction
1 Polluted Delta
Pack 3
Row 1:
1 Sultai Emissary
1 Tidehollow Sculler
1 Jinxed Idol
Row 2:
1 Sower of Temptation
1 Scrubland
1 Languish
Row 3:
1 Blasting Station
1 Far // Away
1 Day of Judgment
Column 1:
1 Sultai Emissary
1 Sower of Temptation
1 Blasting Station
Column 2:
1 Tidehollow Sculler
1 Scrubland
1 Far // Away
Column 3:
1 Jinxed Idol
1 Languish
1 Day of Judgment
Pack 4
Row 1:
1 Baleful Strix
1 Dark Confidant
1 Silverblade Paladin
Row 2:
1 Oblivion Ring
1 Squelch
1 Sphere of the Suns
Row 3:
1 Abyssal Persecutor
1 Life from the Loam
1 Malicious Affliction
Column 1:
1 Baleful Strix
1 Oblivion Ring
1 Abyssal Persecutor
Column 2:
1 Dark Confidant
1 Squelch
1 Life from the Loam
Column 3:
1 Silverblade Paladin
1 Sphere of the Suns
1 Malicious Affliction
Pack 5
Row 1:
1 Phantasmal Image
1 Ludevic's Test Subject
1 Hero of Bladehold
Row 2:
1 Flesh Carver
1 Yavimaya Elder
1 Control Magic
Row 3:
1 Augur of Bolas
1 Nevinyrral's Disk
1 Deathrite Shaman
Column 1:
1 Phantasmal Image
1 Flesh Carver
1 Augur of Bolas
Column 2:
1 Ludevic's Test Subject
1 Yavimaya Elder
1 Nevinyrral's Disk
Column 3:
1 Hero of Bladehold
1 Control Magic
1 Deathrite Shaman
Pack 6
Row 1:
1 Voice of Resurgence
1 Breeding Pool
1 Birthing Pod
Row 2:
1 Mirror Entity
1 Marsh Flats
1 Scavenging Ooze
Row 3:
1 Champion of the Parish
1 Forbidden Alchemy
1 Narset Transcendent
Column 1:
1 Voice of Resurgence
1 Mirror Entity
1 Champion of the Parish
Column 2:
1 Breeding Pool
1 Marsh Flats
1 Forbidden Alchemy
Column 3:
1 Birthing Pod
1 Scavenging Ooze
1 Narset Transcendent
Pack 7
Row 1:
1 Basilisk Collar
1 Executioner's Capsule
1 Hallowed Burial
Row 2:
1 Brindle Shoat
1 Verdant Catacombs
1 Polukranos, World Eater
Row 3:
1 Venser, Shaper Savant
1 Brainstorm
1 Meloku the Clouded Mirror
Column 1:
1 Basilisk Collar
1 Brindle Shoat
1 Venser, Shaper Savant
Column 2:
1 Executioner's Capsule
1 Verdant Catacombs
1 Brainstorm
Column 3:
1 Hallowed Burial
1 Polukranos, World Eater
1 Meloku the Clouded Mirror
Pack 8
Row 1:
1 Nature's Claim
1 Brainstorm
1 Spectral Procession
Row 2:
1 Temple Garden
1 Putrid Leech
1 Engineered Explosives
Row 3:
1 Champion of the Parish
1 Loyal Cathar
1 Tundra
Column 1:
1 Nature's Claim
1 Temple Garden
1 Champion of the Parish
Column 2:
1 Brainstorm
1 Putrid Leech
1 Loyal Cathar
Column 3:
1 Spectral Procession
1 Engineered Explosives
1 Tundra
Pack 9
Row 1:
1 Hero's Downfall
1 Curse of Shallow Graves
1 Chief of the Edge
Row 2:
1 Garruk, Primal Hunter
1 Perilous Myr
1 Courser of Kruphix
Row 3:
1 Overgrown Tomb
1 Primal Command
1 Misty Rainforest
Column 1:
1 Hero's Downfall
1 Garruk, Primal Hunter
1 Overgrown Tomb
Column 2:
1 Curse of Shallow Graves
1 Perilous Myr
1 Primal Command
Column 3:
1 Chief of the Edge
1 Courser of Kruphix
1 Misty Rainforest
Pack 10
Row 1:
1 Thoughtseize
1 Primeval Titan
1 Mulldrifter
Row 2:
1 Acidic Slime
1 Bloodgift Demon
1 Nest Invader
Row 3:
1 Quarantine Field
1 Emeria Angel
1 Journey to Nowhere
Column 1:
1 Thoughtseize
1 Acidic Slime
1 Quarantine Field
Column 2:
1 Primeval Titan
1 Bloodgift Demon
1 Emeria Angel
Column 3:
1 Mulldrifter
1 Nest Invader
1 Journey to Nowhere
Pack 11
Row 1:
1 Vorapede
1 Treasure Cruise
1 Gideon Jura
Row 2:
1 Rampaging Baloths
1 Grave Titan
1 Ophiomancer
Row 3:
1 Garruk Wildspeaker
1 Angel of Serenity
1 Condescend
Column 1:
1 Vorapede
1 Rampaging Baloths
1 Garruk Wildspeaker
Column 2:
1 Treasure Cruise
1 Grave Titan
1 Angel of Serenity
Column 3:
1 Gideon Jura
1 Ophiomancer
1 Condescend
Pack 12
Row 1:
1 Tezzeret's Gambit
1 Phyrexian Revoker
1 Delver of Secrets
Row 2:
1 Hallowed Fountain
1 Porcelain Legionnaire
1 Fabled Hero
Row 3:
1 Bloodghast
1 Brainstorm
1 Bone Shredder
Column 1:
1 Tezzeret's Gambit
1 Hallowed Fountain
1 Bloodghast
Column 2:
1 Phyrexian Revoker
1 Porcelain Legionnaire
1 Brainstorm
Column 3:
1 Delver of Secrets
1 Fabled Hero
1 Bone Shredder
Pack 13
Row 1:
1 Consecrated Sphinx
1 Fencing Ace
1 Expedition Map
Row 2:
1 Baneslayer Angel
1 Thrun, the Last Troll
1 Vendilion Clique
Row 3:
1 Xathrid Necromancer
1 Bloodsoaked Champion
1 Bayou
Column 1:
1 Consecrated Sphinx
1 Baneslayer Angel
1 Xathrid Necromancer
Column 2:
1 Fencing Ace
1 Thrun, the Last Troll
1 Bloodsoaked Champion
Column 3:
1 Expedition Map
1 Vendilion Clique
1 Bayou
Pack 14
Row 1:
1 Vampiric Tutor
1 Memory Lapse
1 Steppe Lynx
Row 2:
1 Thirst for Knowledge
1 Verdant Catacombs
1 Brainstorm
Row 3:
1 Harrow
1 Snapcaster Mage
1 Godless Shrine
Column 1:
1 Vampiric Tutor
1 Thirst for Knowledge
1 Harrow
Column 2:
1 Memory Lapse
1 Verdant Catacombs
1 Snapcaster Mage
Column 3:
1 Steppe Lynx
1 Brainstorm
1 Godless Shrine
Pack 15
Row 1:
1 Fettergeist
1 Damnation
1 Bloodsoaked Champion
Row 2:
1 Jace, the Mind Sculptor
1 Sphinx of Jwar Isle
1 Thalia, Guardian of Thraben
Row 3:
1 Man-o'-War
1 Wall of Roots
1 Hushwing Gryff
Column 1:
1 Fettergeist
1 Jace, the Mind Sculptor
1 Man-o'-War
Column 2:
1 Damnation
1 Sphinx of Jwar Isle
1 Wall of Roots
Column 3:
1 Bloodsoaked Champion
1 Thalia, Guardian of Thraben
1 Hushwing Gryff
Pack 16
Row 1:
1 Marsh Flats
1 Mother of Runes
1 Coldsteel Heart
Row 2:
1 Steppe Lynx
1 Watery Grave
1 Edge of Autumn
Row 3:
1 Skinrender
1 Titania, Protector of Argoth
1 Search for Tomorrow
Column 1:
1 Marsh Flats
1 Steppe Lynx
1 Skinrender
Column 2:
1 Mother of Runes
1 Watery Grave
1 Titania, Protector of Argoth
Column 3:
1 Coldsteel Heart
1 Edge of Autumn
1 Search for Tomorrow