showdown
Dependency Injector
showdown | Dependency Injector | |
---|---|---|
5 | 7 | |
237 | 3,601 | |
- | 1.0% | |
6.3 | 0.0 | |
13 days ago | 2 months ago | |
Python | Python | |
GNU General Public License v3.0 only | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
showdown
-
AI vs AI Pokemon Tournament - Hoenn Edition.
Like last time I will be using this pokemon showdown bot to make this work. The teams have ben fed into it, and two instances of the bot are running. Bot 1 will challenge Bot 2 to a Gen 7 anything goes match on Pokemon Showdown. The replay is then saved to my PC and live commentary is recorded.
-
Is there ANY way of doing customizable AI vs AI battles that DOESN'T require extensive programming knowledge??
I know about the Showdown bot by Pmariglia. In fact I spoke to the creator for more than two hours on discord trying to get it to work, this involved me downloading python, docker, gitbash, all sorts of command prompt tomfoolery.
-
AI vs AI Pokemon Tournament - The Great Indigo Plateau Tournament.
First a bit of background. While looking for ways to do this I came across this Pokemon Showdown bot, created by Pmariglia. So shout out to them, as this wouldn't have been possible with the work they had already done!
-
How an A.I. is Becoming the World's Best Pokemon Player
He doesn't reveal any big details about the algorithm, but from what I can tell his final iteration is some kind of expectiminimax + pruning, where essentially the bot is looking forward a few turns and based on all possible (or usually all "reasonable") outcomes, picks the moves that minimize the worst outcome, aka your traditional "safe" player. There are definitely limitations to this approach, first of all is the depth of search. To give context, Stockfish regularly searches to 30 moves ahead. I am pretty sure that a lot of implementations are limited to a mere 3 moves ahead, as illustrated here (https://github.com/pmariglia/showdown/issues/53). So, I suspect that ~1600 is going to be a pretty hard limit because you can't use this approach by itself to really develop long-term strategies. Another thing I wanted to point out is that this algorithm is also really prone to exploitability- knowing that your opponent is always a safe player is going to lead to easy manipulation by the best players. He even mentions it here in his Smogon post:
-
Is there anyway to have a Computer fight a Computer? Im trying to have a Bot with Cynthia's team fight Leons team, to settle the debate
A quick google has found an AI program that you could use. https://github.com/pmariglia/showdown Now I don't know if this will simply play for you, or allow you to play against it, but either way there'd be a way to do it.
Dependency Injector
-
Java 21 makes me like Java again
Nothing to do with the nature of the language, but with the nature of the program.
If you're writing a few line script, you don't need a DI container. Once your program gets large, it becomes extremely messy without one. It's no surprise projects like [1] exist.
[1] https://github.com/ets-labs/python-dependency-injector
-
Do You Use Singletons?
Totally agree with this. And I’ve found this pattern pairs really well with https://python-dependency-injector.ets-labs.org/
-
Compclasses: prefer composition over inheritance
dependency_injector: https://github.com/ets-labs/python-dependency-injector
-
Loosely coupled Python code with Dependency Injection
As projects continue to grow, its recommended to utilise a dependency injection framework to “inject” these dependencies, such as Dependency Injector, to inject dependency arguments automatically ✨.
-
What is the best practice for injecting configuration into a python application
One approach is to pass this config as a variable to every class it is required, which I dont prefer. Another option is to annotate the config class as singleton and create the config object at every place where I need them. I also came across this library called Dependency_Injector. https://python-dependency-injector.ets-labs.org/ This seems a bit heavy weight for my use case though. I am looking forward to know how other solve this problem
-
Dependency Injection and Python
Dependency Injector
-
Introduction to Dependency Injection in Python
dependency-injector (docs) is python library that provides a framework which enables you to implement DI and IoC in Python.
What are some alternatives?
libmelee - Open Python 3 API for making your own Smash Bros: Melee AI that works with Slippi Online
django-rest-framework - Web APIs for Django. 🎸
Piccolo - Piccolo (formerly Pilot) – mini game engine for games104
kink - Dependency injection container made for Python
fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production
flask-restful - Simple framework for creating REST APIs
python-slack-sdk - Slack Developer Kit for Python
falcon - The no-magic web data plane API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
fastapi-distributed-websocket - A library to implement websocket for distibuted system based on FastAPI.
connexion - Connexion is a modern Python web framework that makes spec-first and api-first development easy.
starter_types - Given a set of specific criteria, what trio of pokemon type combinations can act as viable alternative starters?
flask-api - Browsable web APIs for Flask.