Skip to main content

Automate plotting posts in Splatoon based on BlueZ, and optimize its efficiency via Traveling Salesman Problem (TSP).

Project description

Splatoon Bot

Automate plotting posts in Splatoon based on BlueZ, and optimize its efficiency via Traveling Salesman Problem (TSP).

The mailbox is a service in the Splatoon hub that allows players to create drawings and share them via social media. The drawings may be viewable by other players and may be displayed as signs or graffiti in the hub and in various stages in multiplayer matches.

Installation

BlueZ is a Bluetooth protocol stack included with the official Linux kernel distributions. If you have a Linux machine with a Bluetooth connection, then things become easier:

$ pip install splatbot

If you're using macOS or Windows, an external Bluetooth adapter is needed and please follow the instructions below:

  1. Install VirtualBox
  2. Install VirtualBox Extension Pack
  3. Install Vagrant
  4. Clone splatbot and make a Vagrantfile:
    $ git clone https://github.com/necusjz/splatbot.git
    $ cd splatbot/vagrant
    $ ./make_vagrantfile.py
    

After that, a Vagrantfile will be generated and the current directory is the location where you run any Vagrant command.

Usage

Generate the macro represents the actual plotting process:

$ splatbot macro -i <image>

Wirelessly plotting the post on switch console or another window:

$ splatbot start -i <macro> [--dry-run]

Some Vagrant commands that might be useful:

Create and configure guest machines according to your Vagrantfile:
$ vagrant up

SSH into a running Vagrant machine and give you access to a shell:
$ vagrant ssh

Shut down the running machine Vagrant is managing:
$ vagrant halt

Stop the running machine Vagrant is managing and destroy all resources that were created during the machine creation process:
$ vagrant destroy

Benchmark

We provide a dataset collected from ikasumi.art to easier achieve performance test on your pathing algorithm:

The results will be shown in the pipeline (via pytest -s -v --color=yes tests/):

+------------------+-----------+------------+--------------+
| Benchmark        | Current   | Previous   | Result       |
+==================+===========+============+==============+
| jellyfish.png    | 108606    | 44514      | 2.44x slower |
+------------------+-----------+------------+--------------+
| judd.png         | 100660    | 52616      | 1.91x slower |
+------------------+-----------+------------+--------------+
| kanji.png        | 97159     | 55961      | 1.74x slower |
+------------------+-----------+------------+--------------+
| marie.png        | 100218    | 53238      | 1.88x slower |
+------------------+-----------+------------+--------------+
| octoling.png     | 98888     | 54232      | 1.82x slower |
+------------------+-----------+------------+--------------+
| sakura.png       | 87194     | 66214      | 1.32x slower |
+------------------+-----------+------------+--------------+
| skyline.png      | 89671     | 63751      | 1.41x slower |
+------------------+-----------+------------+--------------+
| splattershot.png | 100344    | 52910      | 1.90x slower |
+------------------+-----------+------------+--------------+

Contributing

We love contributions! Before submitting a Pull Request, it's always good to start with a new issue first.

License

This repository is licensed under MIT. Full license text is available in LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

splatbot-0.3.0.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

splatbot-0.3.0-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page