Pokémon TCG: Sword and Shield—Brilliant Stars

A Complete TFG Probability Matrix + Equations

Magic_Umbreon

Researching Tower Scientist, Retired
Does anyone here map one figure against another?

E.g. for Murkrow versus Treecko in crude approximations...

Whirlwind 4; Surprise 3; Peck 2; Miss 1 = 10 for Murkrow (e.g. 2/5 chance of Whirlwind) and Slam 3; Dodge 2; Pound 1 = 6 (e.g. 1/2 I know it's a bit more actually for slam).

Then I look at each attack on a figure and the chance it has of every outcome on the opponent's figure:

2/5 * 2/3 = Whirlwind beating Treecko = 26.67%
3/10 * 1/2 = surprise losing to Treeko = 15%
3/10 * 2/3 = miss or peck losing to Treecko = 20%
The remaining is the chance of no effect due to a dodge spin or equal white spin = 38.33%

So, I would summarise Murkrow versus Treecko as:

Treecko win: 35%
Murkrow win: 26.67%
Stalemate: 38.33%
None stalemates: 59% Treecko.

For the figures I approximated for Treecko and Murkrow, the end result is that Treecko will win 59% of the none-stalemate games.

The big flaws in the method I used:
I approximated the figures because of laziness but this wouldn't happen normally;
The strengths of the purple effect is not accounted for, nor is movement speed etc. simply how they react in a battle.


I've been thinking about using this method of matching one figure's spin probablities against another for every combination of figures. That data could then be used for "teching" against popular figures, highlighting rows in a spreadsheet to show which figures will beat your entire team (to see your team's weaknesses) and by a series of methods of excluding the weakest figure each time (reflecting a "metagame" in that the figures that beat the better figures are more useful than those that beat the weaker and not used ones) could even show the potentially BEST 6 FIGURES for a team.

It's just in ideas stage now, but I plan to write some computer programs that will do what I did above when given the figure data.

It could look something like this for a subset of 3 figures:

First the data for A, B and C. The contents of the spin wheel doesn't actually matter, because what matters is the result of that data in coompetition to each other. I'd run the program that would give me data for their matchups like so:

v|A |B |C |OVERALL
A|0.5|0.7|0.2 | 0.467
B|0.3|0.5|0.9 | 0.567
C|0.8|0.1|0.5 | 0.467

This is for A, B and C being nontransitive figures: A > B > C > A. This relationship is explained on a wikipedia page.

The "overall" column clearly reflects what is quite obvious between the three figures: because B beats C and C beats A a lot more than A beats B, B is the best figure but in a way only because C is "helping along".

While the table doesn't show anything unexpected, my idea is that by extending the table to a lot more figures I could then go on to simulate different POPULARITIES and to see what effect that has on the figures.

Does anyone think this sort of maths research might lead anywhere useful? At least you've all learnt a bit about me my friends know very well :) I can't just spin the figures and have fun it has to be all equations!
 
This should prove to be useful. I suppose it could provide some sort of frame for a metagame environment and show us what the "good" figures are. Good being a relative term of course, since luck is a major factor in this game. It also seems very interesting, but maybe that's just my math nerdy-ness coming out.

Aside from playing with matrices, wouldn't it be possible to obtain a graph showing the probabilities of each figure and possible results against another? I think that may be useful as well.
 
This should prove to be useful. I suppose it could provide some sort of frame for a metagame environment and show us what the "good" figures are. Good being a relative term of course, since luck is a major factor in this game. It also seems very interesting, but maybe that's just my math nerdy-ness coming out.

Aside from playing with matrices, wouldn't it be possible to obtain a graph showing the probabilities of each figure and possible results against another? I think that may be useful as well.

I'd think so. Have you seen those fractal graphs where they colour in darker/lighter colours to produce a pattern? I could try something like that or just graph the probabilities of one figure against a series.

At the moment I'm just working on some code for automatically comparing one figure to another.

Some of the input mechanisms I've considered have been Gannt chart style ranges and simply columns on a spreadsheet to enter %miss, %dodge etc. but the white areas make it trickier.
 
I'd think so. Have you seen those fractal graphs where they colour in darker/lighter colours to produce a pattern? I could try something like that or just graph the probabilities of one figure against a series.

At the moment I'm just working on some code for automatically comparing one figure to another.

Some of the input mechanisms I've considered have been Gannt chart style ranges and simply columns on a spreadsheet to enter %miss, %dodge etc. but the white areas make it trickier.

A fractal graph may be pushing it, and may seem to be overly complex. Not to mention probably a lot of work. But it would be quite neat to see one made up for Pokemon figures. I was thinking something simple, more like the probability density of each figure, or the probability density of each result of each figure, even.

Good luck with that. It seems to be somewhat complicated, but programming isn't exactly my forte. The thing I'd assume would prove to be somewhat difficult to map is when you factor in damage modifying attacks, such as Charizard's Fire Spin or Zangoose's/Eevee's Swords Dance and Focus Energy, respectively.
 
The thing I'd assume would prove to be somewhat difficult to map is when you factor in damage modifying attacks, such as Charizard's Fire Spin or Zangoose's/Eevee's Swords Dance and Focus Energy, respectively.

My site (which I'm still working on btw) will have an "Analysis" section on figures like that, like Charizarg and Zangoose.

for example:

Odds of Swords Dance + Crush Claw (180): 5.6%
Odds of Swords Dance + Scratch (40): 8.25%
Odds of Swords Dance + Dodge (Nothing happens): 8.25%
 
A fractal graph may be pushing it, and may seem to be overly complex. Not to mention probably a lot of work. But it would be quite neat to see one made up for Pokemon figures. I was thinking something simple, more like the probability density of each figure, or the probability density of each result of each figure, even.

Good luck with that. It seems to be somewhat complicated, but programming isn't exactly my forte. The thing I'd assume would prove to be somewhat difficult to map is when you factor in damage modifying attacks, such as Charizard's Fire Spin or Zangoose's/Eevee's Swords Dance and Focus Energy, respectively.

My site (which I'm still working on btw) will have an "Analysis" section on figures like that, like Charizarg and Zangoose.

for example:

Odds of Swords Dance + Crush Claw (180): 5.6%
Odds of Swords Dance + Scratch (40): 8.25%
Odds of Swords Dance + Dodge (Nothing happens): 8.25%

The plan was to follow Jiggly's trail of thought.

I'm starting off with a very small sample of 10ish figures to see whether my way of doing it is good or not. Example of Charizard versus Pikachu:

Charizard

White

* Fire Spin
o Power: 50x
o Effect: Spin untill you get a result other than Fire Spin. This attack does 50 damage for each Fire Spin.
o Probability: 58.3%
* Iron Tail
o Power: 60
o Probability: 25%

Orange

* Miss
o Probability: 8.3%, 8.3%

Pikachu

Blue

* Dodge
o Probability: 8.3%

White

* Thunderbolt
o Power: 100
o Probability: 25%
* Thundershock
o Power: 40
o Probability: 25%, 25%

Orange

* Miss
o Probability: 8.3%, 8.3%


First I'd work out the chance of each white damage Charizard is capable of:

60 from iron tail = 25%
Where (58.3%) is the chance of hitting fire spin (first time or after a previous spin) and (100%-58.3%) is the chance of a fire spin run ending: H hit M miss

(58.3%)*(100%-58.3%) = HM = 50
(58.3%)*(58.3%)*(100%-58.3%) = HHM = 100
(58.3%)*(58.3%)*(58.3%)*(100%-58.3%) = HHHM = 150

which generalises to:

50n = (100-58.3%)*(58.3%)^n

For the chance of dealing >=50n damage (where 50n is higher than the opponent's white in comparison) where c is the chance of anything but an initial fire spin:

100%-(c+(100%-58.3%)*((58.3%)^1 + (58.3%)^2 + (58.3%)^3 ..... (58.3%)^n-1))

While that looks quite messy for working it out, it's actually really easy to fit in a program.

For a pokémon like Charizard, you'd need to enter the chance of hitting the white (in this case 58.3%) and the multiplier (50 here) into the program.
 
First I'd work out the chance of each white damage Charizard is capable of:

60 from iron tail = 25%
Where (58.3%) is the chance of hitting fire spin (first time or after a previous spin) and (100%-58.3%) is the chance of a fire spin run ending: H hit M miss

(58.3%)*(100%-58.3%) = HM = 50
(58.3%)*(58.3%)*(100%-58.3%) = HHM = 100
(58.3%)*(58.3%)*(58.3%)*(100%-58.3%) = HHHM = 150

which generalises to:

50n = (100-58.3%)*(58.3%)^n

For the chance of dealing >=50n damage (where 50n is higher than the opponent's white in comparison) where c is the chance of anything but an initial fire spin:

100%-(c+(100%-58.3%)*((58.3%)^1 + (58.3%)^2 + (58.3%)^3 ..... (58.3%)^n-1))

While that looks quite messy for working it out, it's actually really easy to fit in a program.

For a pokémon like Charizard, you'd need to enter the chance of hitting the white (in this case 58.3%) and the multiplier (50 here) into the program.

oh.....ow. My brain hurts. :p
 
Back
Top