Heya,
I've been wasting a lot of time writing a tool that will allow us to determine the other teams vault based on the decks they played. I used the language R (
https://www.r-project.org/), which is commonly used by us statistic students, but is probably mostly unknown otherwise. Its free, so you might try it if you want, but I can just do all the stuff with it myself and post the results.
Imo it allows you to do a lot of stuff with just a few lines of code, but its probably quite confusing to get into.
Links to vault tools:
aetherairdarknessdeathearthentropyfirelifelighttimewaterAnyways, here's the code (comments start with #):
#list of pillars to be excluded from vault
pillars<-unlist(strsplit("4sa 4vc 50u 52g 542 55k 576 58o 5aa 5bs 5de 5f0 5gi 5i4 5jm 5l8 5mq 5oc 5pu 5rg 5t2 5uk 606 61o 63a 6qq 6ts 6ve 710 72i 744 75m 778 78q 7ac 7bu 7dg 7f2 7gk 7i6 7jo 7la 7ms 7oe 7q0 7ri 7t4 7um 808 81q 8pj 8pk 8pl 8pm 8pn 8po 8pp 8pq 8pr 8ps 8pt 8pu"," "))
#insert the deck codes of the decks played the round between the ""
a<-""
b<-""
c<-""
d<-""
e<-""
# f merges all the decks cards
f<-paste(a,b,c,d,e)
# pillarvault contains all cards of the decks used in the round, with each card stored as an element of the charactervector pillarvault
pillarvault<-unlist(strsplit(f," "))
#vault only stores the nonpillar cards (mark cards are not excluded)
vault<-pillarvault[!pillarvault %in% pillars]
# the function unupper (defined below) turns all cards into their unupped version like they are in vault
vault<-unupper(vault)
#sort the cards for better overview
vault<-sort(vault)
#pointcounter (currently undefined) works similiar to unupper, assigning each card in vault their point cost and adding it for all known cards
points<-pointcounter(vault)
# change the code back to the format used for deck codes
vault<-paste(vault, collapse = ' ')
# print vault to console
vault
#define function unupper
unupper <- function(vault){
#list of upped card codes
upped<-unlist(strsplit("6rj 6rk 6rl 6rr 6rs 6tt 6tu 6tv 6u0 6u1 6u2 6u3 6u4 6u5 6u6 6u7 6u8 6u9 6ua 6ug 6uq 711 712 713 714 715 716 717 718 719 71a 71b 71c 71d 71e 71f 71k 71u 745 746 747 748 749 74a 74b 74c 74d 74e 74f 74g 74h 74i 74j 74o 752 779 77a 77b 77c 77d 77e 77f 77g 77h 77i 77j 77k 77l 77m 77s 786 7ad 7ae 7af 7ag 7ah 7ai 7aj 7ak 7al 7am 7an 7ao 7ap 7b0 7ba 7dh 7di 7dj 7dk 7dl 7dm 7dn 7do 7dp 7dq 7dr 7ds 7du 7e4 7ee 7gl 7gm 7gn 7go 7gp 7gq 7gr 7gs 7gt 7gu 7gv 7h0 7h1 7h2 7h3 7h8 7hi 7jp 7jq 7jr 7js 7jt 7ju 7jv 7k0 7k1 7k2 7k3 7k4 7k5 7k6 7kc 7km 7mt 7mu 7mv 7n0 7n1 7n2 7n3 7n4 7n5 7n6 7n7 7n8 7n9 7ng 7nq 7q1 7q2 7q3 7q4 7q5 7q6 7q7 7q8 7q9 7qa 7qb 7qc 7qd 7qe 7qk 7qu 7t5 7t6 7t7 7t8 7t9 7ta 7tb 7tc 7td 7te 7tf 7tg 7th 7ti 7to 7u2 809 80a 80b 80c 80d 80e 80f 80g 80h 80i 80j 80k 80l 80m 80s 816"," "))
#list of unupped card codes
unupped<-unlist(strsplit("4t3 4t4 4t5 4tb 4tc 4vd 4ve 4vf 4vg 4vh 4vi 4vj 4vk 4vl 4vm 4vn 4vo 4vp 4vq 500 50a 52h 52i 52j 52k 52l 52m 52n 52o 52p 52q 52r 52s 52t 52u 52v 534 53e 55l 55m 55n 55o 55p 55q 55r 55s 55t 55u 55v 560 561 562 563 568 56i 58p 58q 58r 58s 58t 58u 58v 590 591 592 593 594 595 596 59c 59m 5bt 5bu 5bv 5c0 5c1 5c2 5c3 5c4 5c5 5c6 5c7 5c8 5c9 5cg 5cq 5f1 5f2 5f3 5f4 5f5 5f6 5f7 5f8 5f9 5fa 5fb 5fc 5fe 5fk 5fu 5i5 5i6 5i7 5i8 5i9 5ia 5ib 5ic 5id 5ie 5if 5ig 5ih 5ii 5ij 5io 5j2 5l9 5la 5lb 5lc 5ld 5le 5lf 5lg 5lh 5li 5lj 5lk 5ll 5lm 5ls 5m6 5od 5oe 5of 5og 5oh 5oi 5oj 5ok 5ol 5om 5on 5oo 5op 5p0 5pa 5rh 5ri 5rj 5rk 5rl 5rm 5rn 5ro 5rp 5rq 5rr 5rs 5rt 5ru 5s4 5se 5ul 5um 5un 5uo 5up 5uq 5ur 5us 5ut 5uu 5uv 5v0 5v1 5v2 5v8 5vi 61p 61q 61r 61s 61t 61u 61v 620 621 622 623 624 625 626 62c 62m"," "))
# recognize each upped card
for (i in 1:length(vault)){
if (vault[i] %in% upped){
# change the upped card to the unupped version by finding the card code in the same position in the unuuped vector like it used to be in the upped vector
vault[i]<-unupped[upped==vault[i]]}}
# output
return(vault)
}
#define function pointcounter
pointcounter <- function(vault){
#list number of points for the card codes
pointlist<-c(30,40,40,35,30,50,60,65,70,70,50,150,30,120,30,90,30,80,30,80,45,55,30,70,30,50,30,30,90,50,90,130,30,60,30,30,80,120,80,40,70,40,60,40,75,90,70,30,100,40,70,60,30,40,110,30,60,40,60,30,40,90,120,45,50,100,60,80,70,75,120,60,60,30,40,70,30,40,50,60,30,60,30,40,60,100,30,55,30,110,50,130,100,60,90,60,80,100,60,70,60,50,60,40,60,70,60,80,75,60,60,30,80,30,45,50,80,160,40,60,50,30,30,55,50,60,50,130,30,60,40,110,75,80,45,70,65,120,60,60,40,30,85,60,80,110,70,110,120,30,30,50,90,70,55,30,80,130,30,30,50,40,70,85,60,65,90,40,90,140,50,120,90,50,30,60,30,110,30,30,60,30,120,80,60,150,70,50,65,40,150,30,60,90,30,30,100)
#list of unupped card codes
unupped<-unlist(strsplit("4t3 4t4 4t5 4tb 4tc 4vd 4ve 4vf 4vg 4vh 4vi 4vj 4vk 4vl 4vm 4vn 4vo 4vp 4vq 500 50a 52h 52i 52j 52k 52l 52m 52n 52o 52p 52q 52r 52s 52t 52u 52v 534 53e 55l 55m 55n 55o 55p 55q 55r 55s 55t 55u 55v 560 561 562 563 568 56i 58p 58q 58r 58s 58t 58u 58v 590 591 592 593 594 595 596 59c 59m 5bt 5bu 5bv 5c0 5c1 5c2 5c3 5c4 5c5 5c6 5c7 5c8 5c9 5cg 5cq 5f1 5f2 5f3 5f4 5f5 5f6 5f7 5f8 5f9 5fa 5fb 5fc 5fe 5fk 5fu 5i5 5i6 5i7 5i8 5i9 5ia 5ib 5ic 5id 5ie 5if 5ig 5ih 5ii 5ij 5io 5j2 5l9 5la 5lb 5lc 5ld 5le 5lf 5lg 5lh 5li 5lj 5lk 5ll 5lm 5ls 5m6 5od 5oe 5of 5og 5oh 5oi 5oj 5ok 5ol 5om 5on 5oo 5op 5p0 5pa 5rh 5ri 5rj 5rk 5rl 5rm 5rn 5ro 5rp 5rq 5rr 5rs 5rt 5ru 5s4 5se 5ul 5um 5un 5uo 5up 5uq 5ur 5us 5ut 5uu 5uv 5v0 5v1 5v2 5v8 5vi 61p 61q 61r 61s 61t 61u 61v 620 621 622 623 624 625 626 62c 62m"," "))
# no cards calculated yet mean that 0 points are used yet
points<-0
# find the point value of each card and add it
for (i in 1:length(vault)){
# add value of new card
points<-points+pointlist[unupped==vault[i]]}
# output
return(points)
}
I noticed that this might have been more trouble than its worth, gotta do all the theorycrafting for this round tomorrow, but at least I finished it. Applying it to each element should be quick, so I think I'll finish that today or at least early tomorrow (Im all outta time right now though).
Edit: Added function pointcounter, fixed some typos