a-lounsbury / interactive-gt Goto Github PK
View Code? Open in Web Editor NEWAn interactive game theory application for analyzing 2-player games using nashpy and axelrod in a tkinter GUI
An interactive game theory application for analyzing 2-player games using nashpy and axelrod in a tkinter GUI
It would probably be good to at least have a button under the Edit menu. Have it open a window what allows the user to enter in the payoffs of the new strategy.
Maybe have another button elsewhere that also does this, but I don't know yet.
Run interactivegt_n_players.py.
Press IESDS button repeatedly.
The payoff matrix entries oscillate between being normal sized and being bigger than they should be.
If possible, convert interactivegt.py to an executable. Pyinstaller doesn't seem to work with nashpy or axelrod. When nashpy is commented out, the executable is created, but it then seems to not recognize axelrod.
See here.
This one is up in the air.
Probably mostly in the dimensionsClick function, if I remember correctly.
Variables numIESDSClicks, originalGame, and originalNumStrats are global variables. Try to find a way to make the Computation in Steps option work without global variables.
Adding a player adds another label that says "Number of strategies for player x:" and an entry to enter the number. A user technically could enter enough players for scrollbars to be necessary for these labels and entries.
It currently calls the saveToFile function from SimGame in pysimultaneous and saves the game as "three_players.txt." It should open an asksaveas file dialog to get the file name from the user.
Figure out if there’s a faster way to generate the matches. I originally thought it generated them rather quickly with the Add All Pairs button, but then I fixed it and realized how slow it actually is. Perhaps the whole database should simply be removed from the program; there’s not much point in having a database if you don’t have lots of data to put into it. Although, I did get it working so that the user can enter 230 matches at a time, which isn’t too much, but it's not too little either.
Scrollbars sort of solved this problem, but figure out how to get the window sizes to change automatically to fit what’s inside. Currently have .geometry(“…”)
statements at the end of some functions, but most of them don’t take into account that the outputs won’t always be the same length because they can take on different values, though it may be possible to have them change dynamically with f-strings.
Run interactivegt_n_players.py.
Select File > Open File.
Open sample games\iesds.txt.
Select the "Computation in Steps" radio button.
Press the "Eliminate Strictly Dominated Strategies" button any number of times.
Press Revert
Two things may happen: (1) the strategy names will switch for players 1 and 2 or become messed up in some other way, or (2) the payoff matrix will revert to the most recent result of pressing the IESDS button, not to the original payoff matrix.
Run interactivegt_n_players.py.
Type "3" for number of players.
Press "Enter numPlayers."
Press "Enter Dimensions."
Click File > Open File.
Open sample games\iesds.txt.
The payoff matrix correctly switches to a 2-player game, but the payoffs don't load.
Figure out how to direct the Tournament outputs from axelrod into tkinter widgets.
Develop wxinteractivegt.py until it's as close as it can be either to interactivegt.py or to interactivegt_n_players.py.
(interactivegt_n_players.py) If possible, fix the scrollbars in the payoff matrix frame so that they're actually usable when the payoff matrix gets bigger. Currently, they simply become grayed-out when the payoff matrix gets bigger, and one has to use the scrollbars on the root frame in order to scroll and see the whole matrix.
Run interactivegt_n_players.py.
Select File > Open File.
Open sample games\iesds.txt.
Select the "Computation in Steps" radio button.
Press the "Eliminate Strictly Dominated Strategies" button repeatedly.
The payoff matrix entries oscillate in size with each press of the button.
It currently causes the payoff matrix entries to oscillate between being normal size and being larger than they're supposed to be when the "Reset Strategy Names" option is chosen repeatedly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.