Skip to content

Instantly share code, notes, and snippets.

@kuniyoshi
Created January 24, 2018 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuniyoshi/7305f53eb1e82e46a9eda3440868d9c2 to your computer and use it in GitHub Desktop.
Save kuniyoshi/7305f53eb1e82e46a9eda3440868d9c2 to your computer and use it in GitHub Desktop.
simulate to search the best deck
member_names <- c("miyako", "uru", "suno", "taka", "j", "shirotsuki", "oborio", "ai", "yukinko", "amika", "maki", "kuro", "note", "takeshi", "pura")
jobs <- c("Breaker", "Paladin", "Breaker", "Crasher", "Paladin", "Cleric",
"Minstrel", "Minstrel", "Cleric", "Cleric", "Cleric", "Sorcerer",
"Sorcerer", "Sorcerer", "Cleric")
sinma <- paste(c(0, 1), collapse = "\t")
resample_bukis <- function(bukis) {
return(table(sample(factor(1:4), size = 20, replace = TRUE, prob = bukis)))
}
buki.breaker <- c(10, 5, 5, 5)
buki.paradin <- c(5, 10, 5, 5)
buki.crasher <- c(5, 5, 5, 10)
buki.cleric <- c(15, 3, 2, 0)
buki.minstrel <- c(3, 15, 2, 0)
buki.sorcerer <- c(2, 3, 15, 0)
par <- c(buki.breaker, buki.paradin, buki.breaker, buki.crasher, buki.paradin,
buki.cleric, buki.minstrel, buki.minstrel, buki.cleric, buki.cleric, buki.cleric,
buki.sorcerer, buki.sorcerer, buki.sorcerer, buki.cleric)
par.split <- sapply(factor(1:15), rep, 4)
gr <- function(par) {
s <- split(par, par.split)
m.index <- sample(1:length(s), 1)
bukis <- s[[m.index]]
b.index <- sample(1:length(s[[m.index]]), 2)
if (bukis[b.index][2] > 0 && bukis[b.index][1] < 15) {
bukis[b.index] <- bukis[b.index] + c(1, -1)
}
#print(bukis)
s[[m.index]] <- bukis
return(unlist(s))
#return(c(unlist(lapply(split(par, par.split), resample_bukis))))
}
fn <- function(par) {
i <- paste(sinma, paste(par, collapse = "\t"), sep = "\n")
o <- system("/Users/kuniyoshi/bin/sinma", intern = TRUE, input = i)
v <- as.numeric(strsplit(o, "\t")[[1]])
v <- ifelse(is.na(v), -1, v)
return(1 / sum(v))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment