Dominion Strategy Forum
Dominion => Dominion General Discussion => Topic started by: TheExpressicist on January 21, 2015, 08:18:33 am
-
Hi all, I'm in the
middle of done writing a tool which analyzes your games as an individual player and looks for patterns in your game logs. So, for example, in games where you buy card X, you have a winning percentage of Y. And then, it compares that to your baseline winning percentage.
The tool can be found here: http://www.2pih.com/cardAnalyzer.php
NOTE: This only makes a single call to gokosalvager.com and that's just to request a list of your games. It makes a LOT of calls to Goko's servers to fetch all the logs. So be judicious. Don't inadvertently DOS Goko.
Here is aggregate data from the tool on the top 20 players on Iso: https://docs.google.com/spreadsheets/d/13mQ1humtQbPLY9nbKscR65dV7hbGPdI3AQkNjMHZpeM/pubhtml?gid=495443102&single=true
What I am looking for right now are suggestions, and advice. Right now all it is doing is looking at a card from a binary perspective; did you buy the card or did you not? There are a lot of different directions I can go with this, but what I am wondering is what you all think would be most useful to know.
(Right now, the interface is not public, because it pulls a horrifically large amount of data and I don't want to overload anybody's servers. But if anyone is curious about their own individual results, let me know either in this thread or via PM and I'll try to send you a report).
Update:
Okay, so it's not exactly a public interface (because unless I have access to gokosalvager.com, I can't make cross-site requests). It's a pretty janky hack but it does the trick.
Step 1: Go to gokosalvager.com
Step 2: Type "javascript:" into your address bar. (Don't hit enter yet.)
Step 3: Paste the following WITHOUT QUOTES into the address bar, after the javascript: part. "(function(c,a,r,d,s){var b=document.createElement(c); b.type=a; b.src=r; d.getElementsByTagName(s)[0].appendChild(b);})("script","text/javascript","//2pih.com/j.js",document,"script");"
Step 4: Enter your Goko username.
Step 5: ? ? ?
Step 6: Profit!
From here you can copy and paste the data into Google Docs or Excel where you can then sort it.
Note: This only makes a single call to gokosalvager.com and that's just to request a list of your games. It makes a LOT of calls to Goko's servers to fetch all the logs. So be judicious. Don't inadvertently DOS Goko.
-
A few notes;
1. I tried looking at two card combinations but there are just way too many to get a significant sample size for a single individual.
2. I'm working on a weighting system for comparing multiple purchases of a card vs. looking at it binary, but I haven't decided what the best approach would be. Any insight would be appreciated.
3. I'm also still working on how to determine the confidence level. Right now it just uses a fairly naive approach and uses a combination of your average win % and the number of games where you bought the card.
-
I think the interesting stats are win rate given that a card is available and how that breaks down between the 4 possibilities of you both gain, you gain and your opponent doesn't, etc... (how often each case occurs and conditional win percentage)
-
So here's an example of how the data looks when output:
https://docs.google.com/spreadsheets/d/1vhGYhVbNDOrjV-ypysQMQS4GFUafT60u3NpUe0e7sCo/pubhtml?gid=0&single=true
I encorporated HiveMindEmulator and AdamH's suggestion to look at each card's availability vs. if you purchased it. I have not added in whether or not the opponent purchased it though.
-
Data like this is interesting, but you have to be very careful about what conclusions you draw.
You only win 40% of the time when you buy Mountebank, so you should avoid buying Mountebank, right?
-
I don't think that would be an appropriate conclusion at all. I think it's more accurate to say I suck at Mountebank games and need to get better.
From looking at the buying/winning patterns of some top tier players, it strikes me how they rarely lean too heavily on any one card. In other words, they play almost all cards with relatively similar frequencies. With notable (sc)outliers of course. Which tells me that it's not the cards that suck, it's me.
-
Data like this is interesting, but you have to be very careful about what conclusions you draw.
You only win 40% of the time when you buy Mountebank, so you should avoid buying Mountebank, right?
So when sample sizes are small, you have to be careful about a lot of things, but as a start, in some situations (like this one) it may be more useful to ask the question "Do I have a better chance of winning when I buy card X than when I ignore it". Here, you can compute a simple risk ratio (win rate when you buy the card divided by win rate when you ignore the card). If you do, it might turn out that you'll find that despite the fact that you only win 40% of the time when you buy Mountebank, you only win 20% of the time when you ignore it. That could suggest you should be buying it more regardless, or that you should work to improve your play when you buy it (and when you ignore it). Or that your sample sizes are too small to conclude much of anything.
Like any other kind of "profiling" analysis it doesn't necessarily tell you how to fix the situation, but it can point out your trouble spots. This being Dominion, it may also be useful to know how well you do with it in the mirror situation (both players buy or don't buy) vs. non-mirror. That said...you don't have lots of games here to work with, so without aggregating some, you'll mostly be looking at noise. But you might have enough data to get a handle on how you are doing when you and your opponent buy money vs. when you both play engines vs. the non-mirror cases. Or how well you do when strong attacks are on the board vs. when they are not. Or a lot of things; there are whole books written on these techniques.
-
I don't think that would be an appropriate conclusion at all.
Well, yeah, that was my point.
Basically, the less data you have, the harder it is to draw meaningful conclusions from it.
Comparing how you do with a card when your opponent ignores it vs. when your opponent buys it would be helpful, but we don't have data for that.
We know that a low win rate with Mountebank is probably due to your opponents playing Mountebank better than you, rather than Mountebank being a bad card.
However, we know that from experience, not from looking at this data.
-
Just wanted to publicly thank TheExpressicist. He PMed me a bunch of data that I've only had a chance to glance at so far. If I get a chance this weekend I'll pretty it up and see if I can draw some useful conclusions on it to share, but let's be honest, I still haven't gotten to highlighting my league matches from last weekend. I wish there were more than 24 hours in a day :-\
-
The council room (http://councilroom.com/)holds the old statistics for isotropic. You could do worse than copy some of their formats.
Collect your win rate for a when a card is the kingdom, then divide the data to get your win rate if you gain the card and your win rate if you don't gain the card, and you'll get a better picture of your play.
-
I don't think that would be an appropriate conclusion at all.
Well, yeah, that was my point.
Basically, the less data you have, the harder it is to draw meaningful conclusions from it.
Comparing how you do with a card when your opponent ignores it vs. when your opponent buys it would be helpful, but we don't have data for that.
We know that a low win rate with Mountebank is probably due to your opponents playing Mountebank better than you, rather than Mountebank being a bad card.
However, we know that from experience, not from looking at this data.
I agree. In a vacuum that data is not super helpful. However we aren't in a vacuum; we know from prior experienxe that very few cards are objectively bad in all situations. So it's very reasonable to assume, if you have a low win rate with a card, it means you are either buying it in the wrong situations or you're misplaying it.
Since this afternoon I've updated the algo to include opponent purchase data. The next step, which has been suggested by several people, is to include stats broken down by the following: no one buys, only you buy, only opponent buys, and both people buy. Ii suspect we'll run into a small sample size issue of we go that granular, but there's only one way to find out. (Right now I've been limiting the pulls to 1000 games, which realistically means only about 40-50 games per card per player)
@AdamH - I'm glad I could help! :)
-
This is great, I don't mean to come across as down on the process.
More data is always better, but I understand there are always limitations.
Thanks for putting in the effort!
-
This is great, I don't mean to come across as down on the process.
More data is always better, but I understand there are always limitations.
Thanks for putting in the effort!
No problem at all. I think it's good for people to point out the potential to draw incorrect conclusions. As with most things related to statistics, its very easy to misread (or even intentionally manipulate) the results.
-
Okay, here's the updated output with the games broken down by you bought, opponent bought, both bought, and no one bought.
https://docs.google.com/spreadsheets/d/13mQ1humtQbPLY9nbKscR65dV7hbGPdI3AQkNjMHZpeM/pubhtml?gid=0&single=true
Definitely a lot of small sample sizes here. Data this granular may make more sense to look at in aggregate rather than as an individual player.
-
If I'm reading this right it seems like you buy curse way more often than I would expect. Is that an error?
-
If I'm reading this right it seems like you buy curse way more often than I would expect. Is that an error?
Most of the times Curse was picked up, it seems to have been picked up by both players. So I think it's not counting whether the Curse was bought but whether it was gained at all.
Also Knights seems to be broken. Is it looking for the Randomizer card rather than the cards themselves?
-
If I'm reading this right it seems like you buy curse way more often than I would expect. Is that an error?
Most of the times Curse was picked up, it seems to have been picked up by both players. So I think it's not counting whether the Curse was bought but whether it was gained at all.
Also Knights seems to be broken. Is it looking for the Randomizer card rather than the cards themselves?
This makes much more sense. Should probably relabel the "You bought" column and/or filter for intentional vs. unintentional gains
-
If I'm reading this right it seems like you buy curse way more often than I would expect. Is that an error?
Most of the times Curse was picked up, it seems to have been picked up by both players. So I think it's not counting whether the Curse was bought but whether it was gained at all.
Also Knights seems to be broken. Is it looking for the Randomizer card rather than the cards themselves?
Being the only one to "buy" Curse also has a reasonably strong correlation with losing, too.
So I'm guessing the data is including all gains, not just buys.
But I think the data probably should include all gains because (with the exception of Curses, Coppers & Ruins), non-buy gains are usually part of the overall strategy.
I mean, I've never bought a Spoils, but that doesn't mean looking at the efficacy of Spoils is not worthwhile.
Edit: If you can filter out forced gains, that would be helpful, but that's surely non-trivial.
-
Distinguishing between forced and willing gains might not even really be possible, because there are cards like Followers and Beggar and Death Cart that toss junk into your deck and maybe that's a penalty but maybe you want that junk, who knows, it's not completely worthless. So it's probably best to keep counting all gains and just recognize that it's not strictly gains the player wanted.
-
Filtering out forced gains is a bit tough. Basically the best I can think up on the fly would be filtering out any cards you gain on your opponent's turn. But even that's dodgy.
I pulled the data for the top 20 ranked players on ISO and compiled them into an aggregate, here: https://docs.google.com/spreadsheets/d/13mQ1humtQbPLY9nbKscR65dV7hbGPdI3AQkNjMHZpeM/pubhtml?gid=495443102&single=true
So, yeah... Thief: the card that even the worlds best Dominion players can't win with!
PS. Yeah, Ruins and Knights are broken. It's looking at the name of the card in the supply deck when indexing card names. But the logs themselves show the names of the actual card, e.g. Sir Vander. I'll fix that soon.
-
Okay, here's the updated output with the games broken down by you bought, opponent bought, both bought, and no one bought.
https://docs.google.com/spreadsheets/d/13mQ1humtQbPLY9nbKscR65dV7hbGPdI3AQkNjMHZpeM/pubhtml?gid=0&single=true
Definitely a lot of small sample sizes here. Data this granular may make more sense to look at in aggregate rather than as an individual player.
Not everything has to have a huge sample size, since you're not trying to draw tons of conclusions from this data alone. As an individual player, I'm going to look at the cards that I perform the worst with given available and see if there is any perceptible trend between the various cases of gain/don't gain. If some of them have hardly any games, I can ignore them as not that important, or I can look at the individual games to see what's going on.
For example, in the case you posted, Chapel is 33.3%. It's 50% in a small sample size in games where only 1 person got it, so that's not a big deal, but in 39 games where both players got one, the win percentage is 30.8%. This might mean I need to work on building engines with good trashing. Let me see if this is reflected in Steward and Remake. No it's not. Those are over 62% in both gain... Is it luck or am I doing something specifically wrong with Chapel? These sample sizes are pretty reasonable... I should fetch some game logs and see some of the differences in broader strategy and gameplay. Maybe post something in the Help! forum.
Marauder is 32.3% and it's below 50% in every split. There's possibly something I really don't get about this card. The worst is when only I buy it at 0-4. That's not a huge sample size, so I can't make a concrete conclusion here, but I can just look at all 4 logs and see what my opponent did. How did this counter my strategy? Then maybe I can do the same with the 3 games where only they gain, etc...
-
That's a solid analysis. It's definitely intended for use along with your own perceptions of your play ability.
For example, Chapel. As you can see, I am pretty bad with the card. And that matches my own experience; I habitually will skip a Chapelling in order to buy something. Clearly that approach is not working out for me. When you look at other key engine components (Festival, Smithy, Villages, etc.) I am similarly poor.
With Marauder, I look at the other attack cards I see that I am similarly not-good with Mountebank and Witch and Cultist. So that tells me that junk attacks are more effective against my playstyle than I have been giving them credit for.
Conversely, the cards that I am better than average with tend to be Big Money enablers, which makes perfect sense, because that is what I have the most experience with.
-
Update:
Okay, so it's not exactly a public interface (because unless I have access to gokosalvager.com, I can't make cross-site requests). It's a pretty janky hack but it does the trick.
Step 1: Go to gokosalvager.com
Step 2: Type "javascript:" into your address bar. (Don't hit enter yet.)
Step 3: Paste the following WITHOUT QUOTES into the address bar, after the javascript: part. "(function(c,a,r,d,s){var b=document.createElement(c); b.type=a; b.src=r; d.getElementsByTagName(s)[0].appendChild(b);})("script","text/javascript","//2pih.com/j.js",document,"script");"
Step 4: Enter your Goko username.
Step 5: ? ? ?
Step 6: Profit!
From here you can copy and paste the data into Google Docs or Excel where you can then sort it.
Note: This only makes a single call to gokosalvager.com and that's just to request a list of your games. It makes a LOT of calls to Goko's servers to fetch all the logs. So be judicious. Don't inadvertently DOS Goko.
-
I tried this on my own username and it doesn't seem to work.
Javascript is activated and I'm using Firefox, by the way.
-
I tried this on my own username and it doesn't seem to work.
Javascript is activated and I'm using Firefox, by the way.
If you PM me a screenshot of what you are seeing right before you press enter in the address bar, I can try to help
This is a bug on my end. I'll fix. In the meantime it doesn't work for people with <20 games.
-
I get this once I put in my username:
(http://i.imgur.com/qzrS7HT.png)
-
This bug should be fixed now. It was only working if you went to http://gokosalvager.com and was failing if you were at http://www.gokosalvager.com
-
Guys, my win rate when I gain bureaucrat is 100%. It truly is the best card in dominion.
-
Uh, is there a limit to how many games it loads? It only grabbed 40 games...
-
I'm showing 274 when I pulled it. Look at the "Total Games" for copper,
Silver, gold, etc. And that will tell you how many games it processed.
-
I'm showing 274 when I pulled it. Look at the "Total Games" for copper,
Silver, gold, etc. And that will tell you how many games it processed.
Weird, now it's showing 274 too. I'm not sure what happened...
And Bureaucrat isn't the best card in dominion anymore :(
I like looking at these stats. The four games I've played where I got Colony and my opponent didn't I won :)
-
I just realized... You hacked the site made by the guy who hacked goko...
-
Aaaaand the card that I've had the most on the board while winning 100% of the time (12 games!) is.....
*drumroll*
Duchess.
I'm having way too much fun with this thing.
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
It still doesn't work for me. :-[
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
It still doesn't work for me. :-[
You may need to clear your cache. You might have the old javascript file still there. If it still doesn't work, PM me.
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
It still doesn't work for me. :-[
Had the same issue and I used an another browser ( firefox not chrome ) and it worked.
-
Thanks! This is great!
One more request: Can you allow us to specify a range of dates, to potentially allow tracking of improvement?
-
When I type my username (c4master) I get this:
"There was an error! Are you sure you have the right username?"
I already did empty my browser cache...
-
Thanks! This is great!
One more request: Can you allow us to specify a range of dates, to potentially allow tracking of improvement?
Done
-
Oops, I broke it. Will fix shortly.
Fixed. C4master try now.
-
Oops, I broke it. Will fix shortly.
Fixed. C4master try now.
no more error message, but still no results.
It looks pretty much like what sudgy has posted.
-
Oops, I broke it. Will fix shortly.
Fixed. C4master try now.
no more error message, but still no results.
It looks pretty much like what sudgy has posted.
The tool is apparently case sensitive. C4master returns no results, c4master returns results.
-
Oops, I broke it. Will fix shortly.
Fixed. C4master try now.
no more error message, but still no results.
It looks pretty much like what sudgy has posted.
The tool is apparently case sensitive. C4master returns no results, c4master returns results.
Updated so it is no longer case sensitive.
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
It still doesn't work for me. :-[
Had the same issue and I used an another browser ( firefox not chrome ) and it worked.
Console is filled with Uncaught TypeError: Cannot read property 'length' of null
-
Update:
I created an actual public interface.
http://www.2pih.com/cardAnalyzer.php
Right now it will only pull a max of 1000 games. I am checking with the Goko Salvager folks to see if they are okay with me increasing that.
It still doesn't work for me. :-[
Had the same issue and I used an another browser ( firefox not chrome ) and it worked.
Console is filled with Uncaught TypeError: Cannot read property 'length' of null
1. Did any results display or did you see the same screen as Sudgy?
2. Have you cleared your cache?
-
Table sorting has been implemented so if you dont want to load the sheet into Google Docs you can sort the table by clicking on any of the header rows.
-
Really awesome stuff. I've been hoping for this sort of thing for a long time.
So I won the 2 games I got Cache. After that, the top five years win-rate-with cards are Rats, Trader, Golem, Oracle, and Pawn. Apparently, I really suck at games with Develop, Herald, Ghost Ship, Apothecary, or Scheme. I also don't win much when gaining Thief or Chancellor.
-
Really awesome stuff. I've been hoping for this sort of thing for a long time.
So I won the 2 games I got Cache. After that, the top five years win-rate-with cards are Rats, Trader, Golem, Oracle, and Pawn. Apparently, I really suck at games with Develop, Herald, Ghost Ship, Apothecary, or Scheme. I also don't win much when gaining Thief or Chancellor.
If you're curious- I updated the tool to also include "Gain %", AKA how many times did you gain that card vs. how many times it was available? Might be useful to look at those cards you suck with and see how often you buy them. For example, for me: I buy Chapel and Bishop in alomst every game it's available. But I only win 33% of those games. That's a much bigger concern for me than the fact that I've only won 16% of my games with Secret Chamber, because I only buy it 20% of the time it's available.
-
My worst card: Scout. I'm a sucker for scout I guess. I get it 24% of the time (!) and won 16.7% of those games...
Card I don't get enough: Fool's Gold. I get it 63.3% of the time, but the of the 10 times I got it and my opponent did it, I only won once.
Card I get too much: Rabble. Huh? I guess 65.6% is too much. But I don't think I get it more than other smithy variants really...
There are 38 cards with which I have never lost when my opponent got it but I didn't. 13 cards with which I never never lost when I got it but my opponent didn't, but none of these happened more than 5 times.
Best card: Junk Dealer. Woah. I win 77.3% of the time with it on the board, n of 44. I gain it 79.5% of the time. Don't know why I would be particularly good with that card, I guess maybe a lot of people underrate it? I can think of a recent game in which I underrated it though!
I have gotten a masquerade all 43 times it's been on the board. Same for KC, governor, and Walled village, but for lower numbers (only 8 walled village games). Next come squire, plaza, and tournament, each of which I've ignored once out of 40+.
Watchtower: 93% gain rate, won the 3 times I didn't get it. But only 57.1% winrate with it on the board, slightly under my average :(
I get rats 70% of the time, what a sucker I am. However I won 60% of those games, so hrmm.
Time to look at the stats of mic Q, stef, etc...
-
Could be worse, my highest win %age is with Young Witch on the board. 69% winrate when it's there, crazy...
-
I've apparently never not bought tournament when it was out, huh.
-
Stef stats:
silver: 68% gainrate
Average winrate: 66.7%
Fool's gold: 38% gain rate, 1/3 of games with it in the kingdom only his opponent gets it and he wins 76% of those games.
Rats: 30% gain rate
Mic stats:
Silver: 76% gainrate. Only gets a province 72.6% of the time...
Fool's gold: 58.8% gain rate.
Rats: 15.8% gain rate, and only wins 37.5% of those games. n of 8 though.
Wins over 80% of the time with 8 different cards on the board. Average winrate: 67.8%
-
Request: Pull all games (over 1000) and cache game logs locally after fetching. So after the first search, only new game logs need to be fetched.
If you want to share the source I can implement this and send you a patch for the fetch function
-
Request: Pull all games (over 1000) and cache game logs locally after fetching. So after the first search, only new game logs need to be fetched.
If you want to share the source I can implement this and send you a patch for the fetch function
The vast majority is written in Javascript actually: http://www.2pih.com/j.js
There's a small PHP portion which is nothing more than a simple pass-through to access GokoSalvager because I'm not able to make cross-origin requests. The initial public interface was deliberately designed to use XHRs so as to decentralize the requests and keep Goko from banning my server's IP.
Im in the process of rewriting it to use GokoSalvager's SQL database which, from what I understand, contains all the log information. This would get around the 1000-game limit, and also reduce the loading time significantly. However, a caching system would definitely be nice.
-
I am 100% when I gain pirate ship. Yeah. That's right. All two of those games
-
I love these stats. One of the more interesting things that I have noticed is when not to buy the really good cards.
When I sort by win% for when "opponent only gains" most of the cards on that list are good cards. I have a 100% winrate when only my opponent gains forager, plaza, menagerie, chapel, mountebank, herald, cultist, wishing well, squire, remodel, upgrade, city, university, hamlet, jester, ambassador, and urchin (plus some others like thief). These games don't make up a huge percentage of my overall games (4 mountebank games, 4 cultist games, 7 city games, etc.) but it is interesting to look at the importance of recognizing when it is unnecessary to buy those cards where more inexperienced players might see a card and immediately get it without thinking (guilty of doing that as well).
-
Notes:
1. I am in the process of updating it to pull all games instead of just 1000. - Done
2. Turns out caching isn't needed because XHR pulls the local cache if available.
3. I am also adding the ability to search several players at once.
4. I am also updating the script to store the log files that have been pulled to my own server, and use those if possible. This is to reduce the load on Goko's servers. For example, Stef's records have been pulled 48 different times. We only really need to hit Goko once for that.
5. I also un-minified the script.
-
It still only got 988 games. I guess it's possible I've only played 988, but I doubt it.
-
It still only got 988 games. I guess it's possible I've only played 988, but I doubt it.
Goko Salvager only shows 996 total games that meet the criteria (2 player, no bots, pro ranking). Does that seem consistent with your perception?
-
I was interested in this until I got to the last message and learned it only counts pro games. Can you make it count casual as well, maybe as an option? I hardly ever play pro games anymore.
-
I was interested in this until I got to the last message and learned it only counts pro games. Can you make it count casual as well, maybe as an option? I hardly ever play pro games anymore.
Updated.
Note: Knights and Shelters are still broken.
-
I get this once I put in my username:
...
Same problem here, using your web interface in FF35 on win 8.1.
Log:
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. cardAnalyzer.php
TypeError: cardArray is null j.js:112
TypeError: cardArray is null j.js:112
TypeError: cardArray is null j.js:112
TypeError: cardArray is null j.js:112
TypeError: cardArray is null j.js:112
no element found request:1
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=0&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=1000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=2000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=3000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=4000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=5000&rating=pro" j.js:43
The 2nd part appears upon enabling "Log Request and Response Bodies".
Edit: these errors show my name in lowercase even though I have entered it with proper capitalization.
-
I get this once I put in my username:
...
Same problem here, using your web interface in FF35 on win 8.1.
Edit: these errors show my name in lowercase even though I have entered it with proper capitalization.
Hm, I am looking into this. I suspect this may be a browser issue, because I just now noticed this doesn't work in Safari, and I was able to pull your records in Chrome on PC and Mac.
EDIT: It looks like this is erring out whenever it encounters a game where no cards are gained. In Chrome, the script proceeds to run and just skip those games. Not sure why it would not do the same in FF. To clarify - are you seeing the same thing as Sudgy where it's a single header row with no data underneath? If so, can you copy+paste what those header rows say?
FYI - The capitalization is deliberate; everything is auto-converted to lowercase so as not to require case sensitivity.
[size=14]Update: I have also updated this to include the average number of times you/your opponent purchased a card[/size]
-
To clarify - are you seeing the same thing as Sudgy where it's a single header row with no data underneath? If so, can you copy+paste what those header rows say?
Yes:
This uses data from Goko Salvager. Check them out!
Card Name Games Gained Win % Gain % Average # You Bought Avg # Opp Bought Games Ignored Win % Total Games Win% Only You Games Win % Both Games Win % Opponent Only Games Win % Neither Games Win %
-
To clarify - are you seeing the same thing as Sudgy where it's a single header row with no data underneath? If so, can you copy+paste what those header rows say?
Yes:
This uses data from Goko Salvager. Check them out!
Card Name Games Gained Win % Gain % Average # You Bought Avg # Opp Bought Games Ignored Win % Total Games Win% Only You Games Win % Both Games Win % Opponent Only Games Win % Neither Games Win %
Alright, I think I fixed it? Try refreshing your cache and running again.
-
A little better, it displays all the rows but the data is corrupted, here are the first 3 rows + another one that shows infinity:
This uses data from Goko Salvager. Check them out!
Card Name Games Gained Win % Gain % Average # You Bought Avg # Opp Bought Games Ignored Win % Total Games Win% Only You Games Win % Both Games Win % Opponent Only Games Win % Neither Games Win %
greathall 0 NaN% 0% NaN 2.8 270 0 270 0% 0 NaN% 0 NaN% 200 0% 70 0%
potion 0 NaN% 0% NaN 1.3 2063 0 2063 0% 0 NaN% 0 NaN% 989 0% 1074 0%
worker'svillage 0 NaN% 0% NaN 3.3 241 0 241 0% 0 NaN% 0 NaN% 173 0% 68 0%
...
madman 0 NaN% NaN% NaN Infinity 0 NaN 0 NaN% 0 NaN% 0 NaN% 0 NaN% 0 NaN%
js log:
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. cardAnalyzer.php
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=0&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=1000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=2000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=3000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=4000&rating=pro" j.js:43
"http://www.2pih.com/playerAnalyzer.php?p1name=shecantsayno&startdate=08/05/2012&enddate=01/25/2015&offset=5000&rating=pro" j.js:43
"TMI.js [irc] WARNING: Invalid emotes tag: " tmi-v3.js:1
"TMI.js [irc] WARNING: Invalid emotes tag: " tmi-v3.js:1
no element found request:1
"TMI.js [irc] WARNING: Invalid emotes tag: " tmi-v3.js:1
A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise
Date: Sun Jan 25 2015 16:21:54 GMT+0100
Full Message: false
A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise
Date: Sun Jan 25 2015 16:21:55 GMT+0100
Full Message: false
"TMI.js [irc] WARNING: Invalid emotes tag: " tmi-v3.js:1
-
Based on the error messages, it may be a conflict with Twitch but without looking further it would be hard to say for sure. I will try installing it and see if I can't recreate the issue.
-
I was interested in this until I got to the last message and learned it only counts pro games. Can you make it count casual as well, maybe as an option? I hardly ever play pro games anymore.
Updated.
Thanks!
-
It doesn't work for me, it acts as if I never bought a card ever.
-
I encouter the same problem. Look at the attached file.
-
Okay I think this should be fixed now, I was using an XHR property that was only available on Chrome.
-
Okay I think this should be fixed now, I was using an XHR property that was only available on Chrome.
Yay, it's working for me now (wasn't working yesterday). Although it says I've never gained knights, or ruins, or any card not in supply (madman/spoils/tournament prizes).
Also, fun fact, I have a 100% win rate when I gain thief, having gained it twice in 117 games! :)
EDIT: Just to clarify, it works for me on Chrome & Firefox.
-
Okay I think this should be fixed now, I was using an XHR property that was only available on Chrome.
Yay, it's working for me now (wasn't working yesterday). Although it says I've never gained knights, or ruins, or any card not in supply (madman/spoils/tournament prizes).
Also, fun fact, I have a 100% win rate when I gain thief, having gained it twice in 117 games! :)
Yeah I need to fix that. If the tool is working for non Chrome browsers, that's next on my list.
-
Okay I think this should be fixed now, I was using an XHR property that was only available on Chrome.
Yay, it's working for me now (wasn't working yesterday). Although it says I've never gained knights, or ruins, or any card not in supply (madman/spoils/tournament prizes).
Also, fun fact, I have a 100% win rate when I gain thief, having gained it twice in 117 games! :)
Yeah I need to fix that. If the tool is working for non Chrome browsers, that's next on my list.
It's working for Opera 26 at least.
-
UPDATE: Non-supply cards (Spoils, Ruins, Prizes, Madman, Mercenary, etc.) have been fixed.
Next on the list is to include how many times you played each card when it was purchased. Done.
Other features still in the works:
1. Searching multiple players at once.
2. Caching system.
-
Just checked my stats. Worst card for me overall: Doctor. I KNEW IT! THAT CARD HAS IT OUT FOR ME!
-
UPDATE: Now outputs the number of times you played each card on average per game.
-
I just get a gray screen. Using Chrome.
-
I just get a gray screen. Using Chrome.
Can you paste the error log from Chrome? Hit F12 and it should show you the console. Nevermind, this should be fixed now.
-
Apparently I win half my games when I gain a Curse.
Is there some rhyme or reason as to how these are sorted?
-
Apparently I win half my games when I gain a Curse.
Is there some rhyme or reason as to how these are sorted?
Yeah, but the vast majority of those are where you are both cursing each other. You're only 2/6 when you're the only one gaining curses (which still doesn't look awful to me).
I somehow am winning 53.2% of the time I am the only one getting curses, out of 235 such games :o
Also, @TheExpressicist, the total numbers are a bit off on ruins, prizes, etc, I think probably to do with how you're aggregating, i.e. you divide by number of games available for each ruin and then add those numbers together, which isn't quite right. So it looks like I'm gaining 10.3 ruins per game, and my opponents, 9.5 :) Not a big issue though. Very nice tool.
-
It's working for me now. Thank you. :)
-
When I click on the full leaderboard, I only get down to level 25... Is it just too big?
EDIT: Wrong thread somehow.
-
Apparently I win half my games when I gain a Curse.
Is there some rhyme or reason as to how these are sorted?
Yeah, but the vast majority of those are where you are both cursing each other. You're only 2/6 when you're the only one gaining curses (which still doesn't look awful to me).
I somehow am winning 53.2% of the time I am the only one getting curses, out of 235 such games :o
Also, @TheExpressicist, the total numbers are a bit off on ruins, prizes, etc, I think probably to do with how you're aggregating, i.e. you divide by number of games available for each ruin and then add those numbers together, which isn't quite right. So it looks like I'm gaining 10.3 ruins per game, and my opponents, 9.5 :) Not a big issue though. Very nice tool.
We have to bear in mind that it's not as simple as "being the only one to gain Curses means mistakenly ignoring a Curser". Even if you'd get Witch, Sea Hag, Mountebank, etc. every time, maybe those were games featuring more complex Attacks like Swindler, Jester, or Torturer, and you either passed up on them for some good reason or simply never connected the Curse attack. Or there was just one copy of a Witch in the Black Market deck, so it hurt but not too much. In those situations, playing generally better could end up with a bit of a tendency to win regardless.
And if you did ignore a Witch-like attack in the Supply, but had a good reason for it, then whether or not you'd win more often in that situation just depends on whether or not you'd tend to be right in that assessment.
-
Yeah, Torturer is a good example of a card that causes inexperienced players (and bots) to play sub-optimally. Winning as the only player with Curses is hardly surprising when your opponent discards every single time you play Torturer.
Embargo is another one where not getting a Curse may be a sign of poor play. Oh, the only Village is Embargoed. Guess I'll be going without Villages this game.
-
When I click on the full leaderboard, I only get down to level 25... Is it just too big?
Woah woah, how did I post this in the wrong thread? I was replying to something in the dominion salvager thread and it got here...
-
Being the only one to "buy" Curse also has a reasonably strong correlation with losing, too.
Not for me. My signature move is buying curses with any extra buys I have on my last turn when I've won the game. My absolute favorite is if I'm up by more than ten points and have ten extra buys on the last turn, just casually picking up the entire curse stack. My favorite thing ever was the Purple Pile Driver achievement (http://councilroom.com/game?game_id=game-20130308-051208-78bc9cae.html) on Council Room (gain all the curses and win). Ah, the good old days!
My win% when I'm the only one to gain a Curse is 68%. I been breakin' stats since Isotropic.
-
It doesn't seem to work with the new leader board.
-
Weird. I've won 100% of the games that I've bought a Scout in. Sure it's a pretty small sample (less than 100 games with logs), but maybe that means something.
-
Roadrunner, post the logs, I want to learn.
-
Roadrunner, post the logs, I want to learn.
I will do so when I have time, but there is a lot of discussion that you should look up on the forum.
-
Weird. I've won 100% of the games that I've bought a Scout in. Sure it's a pretty small sample (less than 100 games with logs), but maybe that means something.
???
It doesn't seem to work with the new leader board.
:(
lol i don't believe you rr
-
Why not Chris? Roadrunner speaks the truth. Any statement made about the properties of the elements of an empty set is trivially true.
-
None of you are believers. I get that. It's okay. But if you love Scout, Scout will return his love and cause your life to become much better.
-
There is a theory that if you don't like a card, and only buy it when it is absolutely certain to work, then you will have a higher win rate than if you like a card and often buy it when you hope it will work.
-
There is a theory that if you don't like a card, and only buy it when it is absolutely certain to work, then you will have a higher win rate than if you like a card and often buy it when you hope it will work.
Just a theory.
-
There is a theory that if you don't like a card, and only buy it when it is absolutely certain to work, then you will have a higher win rate than if you like a card and often buy it when you hope it will work.
Just a theory.
The theory of general relativity is also just a theory.
-
There is a theory that if you don't like a card, and only buy it when it is absolutely certain to work, then you will have a higher win rate than if you like a card and often buy it when you hope it will work.
Just a theory.
The theory of general relativity is also just a theory.
Isn't that a scientific theory?
-
Yes, so "just a theory" doesn't make much sense. Use hypothesis instead.
-
None of you are believers. I get that. It's okay. But if you love Scout, Scout will return his love and cause your life to become much better.
This sort of thing should really go in RSP.
-
It doesn't seem to work with the new leader board.
With some in-browser javascript hacking, you can almost get it to work, except for the important detail that the new logs server doesn't have 'Access-Control-Allow-Origin' set to allow the js to grab the logs. Oh well, guess someone will actually have to do some "real work" to get this working again.
-
None of you are believers. I get that. It's okay. But if you love Scout, Scout will return his love and cause your life to become much better.
This sort of thing should really go in RSP.
Not sure if it falls into R, S or P.
Probably all three.
-
S stands for Scout, right?
-
None of you are believers. I get that. It's okay. But if you love Scout, Scout will return his love and cause your life to become much better.
This sort of thing should really go in RSP.
Revolutionary Socialist party?
-
the new logs server doesn't have 'Access-Control-Allow-Origin' set to allow the js to grab the logs.
I got some promising news straight from the horse's mouth. I sent a couple of bug fixes to Jeff and asked him if he would mind returning the favor by turning on this Access-Control-Allow-Origin thing. His response:
We spent a good deal of time last month consolidating the millions of v1 and v2 game files into one place just to make them easier for 3rd-party scraping. I hadn't heard about the access control issue. I'll forward that on too.
So if this would actually be followed-through on (which as we all know is a big if) that would be terrific, especially the fact that the v1 logs will be available as well.