Code Monkey home page Code Monkey logo

screeps-starter-python's Introduction

screeps-starter-python

MIT licensed Slack Chat Docs Built

This repository is a starter Python AI written for the JavaScript based MMO game, screeps.

While code uploaded to the server must be in JavaScript, this repository is written in Python. We use the Transcrypt transpiler to transpile the python programming into JavaScript.

Specifically, it uses my fork of transcrypt built with a few modifications intended to reduce the overhead of running Python in the Screeps environment. Nothing against Transcrypt itself, and you're free to change the installed fork my modifying requirements.txt! I've just found a few changes useful that I've tested in node.js and the screeps environment, but that I don't have time to generalize enough to include in the main transcrypt codebase.

This repository is intended as a base to be used for building more complex AIs, and has all the tooling needed to transpile Python into JavaScript set up.

Install

To get started, check out the Setup Guide.

Docs

For a documentation index, see The Book, and for the main differences between Python and Transcrypt-flavored-Python, see Syntax Changes.

Community

Join us on the Screeps Slack! We're in #python (though you need to sign up with the first link first :).

screeps-starter-python's People

Contributors

andyytaylor avatar cbgbt avatar daboross avatar jim-hart avatar kor-solidarity avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

screeps-starter-python's Issues

Incorrect converting of "for" list iterator

for _creep in Game.creeps:
    do_something ( _creep )

is translated to JS like this:

for (var _creep of Game.creeps) {
    do_something ( _creep );
}

which raises an error on screeps game console :

TypeError: Game.creeps is not iterable

Changing "_creep of Game.creeps " to "_creep in Game.creeps" fixes the error.

Dunno how

Fake classes constructor suggestion

- None of the constructors for game objects are accurate. It's not reliable to create these in game, but a 'fake' constructor with all attributes as arguments is created to give type checkers correct thoughts on what properties should exist.

Adding assert False, 'with some message' or raise NotImplementedError('with some message') to constructors would prevent people from misusing them.

Build fail

The path python3.5 (from --python=python3.5) does not exist Traceback (most recent call last): File "build.py", line 345, in <module> main() File "build.py", line 334, in main install_env(config) File "build.py", line 290, in install_env .format(ret, "' '".join(args), config.base_dir)) Exception: virtualenv failed. exit code: 3. command line 'D:\Programs\Anaconda\python.exe' '-m' 'virtualenv' '-p' 'python3.5' '--system-site-packages' 'd:\Programs\Anaconda\envs\screeps\screeps-starter-python-update-transcrypt\env'. working dir: 'd:\Programs\Anaconda\envs\screeps\screeps-starter-python-update-transcrypt'.
How to fix it?

Link to enviroment setup doesn't work.

Link to the Enviroment setup doesn't work in the readme, so does the others link don't work anymore.
Also is this repo still working with the current screeps version?

build fail with syntax error:

python version: 3.5 and 3.6. Both failed on Manjaro 18-th version

running transcrypt... Traceback (most recent call last): File "/home/jus/build/screeps-starter-python/env/bin/transcrypt", line 5, in <module> from transcrypt.__main__ import main File "/home/jus/build/screeps-starter-python/env/lib/python3.7/site-packages/transcrypt/__main__.py", line 53, in <module> from org.transcrypt import compiler File "/home/jus/build/screeps-starter-python/env/lib/python3.7/site-packages/transcrypt/modules/org/transcrypt/compiler.py", line 2118 self.visit_FunctionDef (node, async = True) ^ SyntaxError: invalid syntax Traceback (most recent call last): File "./screeps-starter-python/build.py", line 334, in <module> main() File "./screeps-starter-python/build.py", line 329, in main build(config) File "./screeps-starter-python/build.py", line 199, in build run_transcrypt(config) File "./screeps-starter-python/build.py", line 160, in run_transcrypt .format(ret, "' '".join(args), config.source_dir)) Exception: transcrypt failed. exit code: 1. command line '/home/jus/build/screeps-starter-python/env/bin/transcrypt' '-n' '-p' '.none' '-b' '/home/jus/build/screeps-starter-python/src/main.py'. working dir: '/home/jus/build/screeps-starter-python/src'.

build failed under Windows using conda

(screeps) C:\Users\Forseti>cd screeps-starter-python-master

(screeps) C:\Users\Forseti\screeps-starter-python-master>python build.py
Traceback (most recent call last):
File "build.py", line 334, in
main()
File "build.py", line 322, in main
config = load_config(base_dir)
File "build.py", line 133, in load_config
with open(os.path.join(base_dir, config_file)) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\Forseti\scr
eeps-starter-python-master\config.json'

Error after transcript update

execution environment

Window 10 version : 1909 64 bit
Python version : 3.7.6 64 bit

Contents of requirements.txt

git+git://github.com/daboross/Transcrypt.git@import-export-attempt-1#egg=transcrypt

execute : python build.py

>>>python build.py
running transcrypt...
Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.7.5
Copyright (C) Geatec Engineering. License: Apache 2.0


Saving target code in: D:\...\screeps-starter-python-master/src/__target__/org.transcrypt.__runtime__.js

Error while compiling (offending file last):
        File '<org.transcrypt.compiler.Module object at 0x000001E3536BAF88>', line 0, namely:

        Attempt to import module: main.py
        Can't find any of:
                D:/Lab/[Project]/Python/OutSource/screeps-starter-python-master/src/main/py.py
                D:/Lab/[Project]/Python/OutSource/screeps-starter-python-master/src/main/py.js
                c:/work/python3.7.6/lib/site-packages/transcrypt/modules/main/py.py
                c:/work/python3.7.6/lib/site-packages/transcrypt/modules/main/py.js
                C:/Work/Python3.7.6/Scripts/transcrypt.EXE/main/py.py
                C:/Work/Python3.7.6/Scripts/transcrypt.EXE/main/py.js
                c:/work/python3.7.6/python37.zip/main/py.py
                c:/work/python3.7.6/python37.zip/main/py.js
                C:/Work/Panda3D-1.10.4.1-x64/main/py.py
                C:/Work/Panda3D-1.10.4.1-x64/main/py.js
                c:/work/python3.7.6/DLLs/main/py.py
                c:/work/python3.7.6/DLLs/main/py.js
                c:/work/python3.7.6/lib/main/py.py
                c:/work/python3.7.6/lib/main/py.js
                c:/work/python3.7.6/main/py.py
                c:/work/python3.7.6/main/py.js
                C:/Users/[User name]/AppData/Roaming/Python/Python37/site-packages/main/py.py
                C:/Users/[User name]/AppData/Roaming/Python/Python37/site-packages/main/py.js
                c:/work/python3.7.6/lib/site-packages/main/py.py
                c:/work/python3.7.6/lib/site-packages/main/py.js
                c:/work/python3.7.6/lib/site-packages/win32/main/py.py
                c:/work/python3.7.6/lib/site-packages/win32/main/py.js
                c:/work/python3.7.6/lib/site-packages/win32/lib/main/py.py
                c:/work/python3.7.6/lib/site-packages/win32/lib/main/py.js
                c:/work/python3.7.6/lib/site-packages/Pythonwin/main/py.py
                c:/work/python3.7.6/lib/site-packages/Pythonwin/main/py.js


Aborted
Traceback (most recent call last):
  File "build.py", line 366, in <module>
    main(uploadmode=False)
  File "build.py", line 358, in main
    build(config)
  File "build.py", line 199, in build
    run_transcrypt(config)
  File "build.py", line 160, in run_transcrypt
    .format(ret, "' '".join(args), config.source_dir))
Exception: transcrypt failed. exit code: 5. command line 'C:\Work\Python3.7.6\Scripts\transcrypt.EXE' '-p' '.none' '-n' '-b' 'D:\...\screeps-starter-python-master\src\main.py'. working dir: 'D:\...\screeps-starter-python-master\src'.

I did it without making any changes.
It worked well before the update.

How can you solve it?
+No virtual environment was used.

Build fails with incorrect path

C:\Users\Wesley\Documents\Screeps\screeps-starter-python-master\screeps-starter-python-master>python build.py
creating virtualenv environment...
Traceback (most recent call last):
File "build.py", line 334, in
main()
File "build.py", line 323, in main
install_env(config)
File "build.py", line 275, in install_env
ret = subprocess.Popen(args, cwd=config.base_dir).wait()
File "C:\Users\Wesley\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 676, in init
restore_signals, start_new_session)
File "C:\Users\Wesley\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 957, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

Directory of C:\Users\Wesley\Documents\Screeps\screeps-starter-python-master\screeps-starter-python-master

08/20/2019 10:10 PM

.
08/20/2019 10:10 PM ..
08/20/2019 06:44 PM 1,268 .gitignore
08/20/2019 06:44 PM book
08/20/2019 06:44 PM 423 book.json
08/20/2019 06:44 PM 10,960 build.py
08/20/2019 09:40 PM 129 config.json
08/20/2019 06:48 PM 151 config.private-server-example.json
08/20/2019 06:44 PM 100 config2
08/20/2019 06:44 PM 4,767 file_expander.py
08/20/2019 06:44 PM js_files
08/20/2019 06:44 PM 1,076 LICENSE
08/20/2019 06:44 PM 1,375 README.md
08/20/2019 06:44 PM 86 requirements.txt
08/20/2019 06:44 PM src
08/20/2019 06:51 PM pycache
10 File(s) 20,335 bytes
6 Dir(s) 13,902,995,456 bytes free

python3 build.py fails on mac os running 12.6..8

im not sure if this issue is new or similar to the bin removed error previously posted if its the same thing ill just post a comment in the other issues post. This is also my first issues post so if i leave anything out please comment and ill edit the post. here is what my terminal spits out when i tried to python3 build.py. python3 isnt new on my system but node is, so perhaps thats the issue? anyway heres the terminal results:
Traceback (most recent call last):
File "/Users/user/screeps-starter-python/build.py", line 437, in
main()
File "/Users/user/screeps-starter-python/build.py", line 426, in main
install_node_dependencies(config)
File "/Users/user/screeps-starter-python/build.py", line 403, in install_node_dependencies
if config.rollup_executable() is not None:
File "/Users/user/screeps-starter-python/build.py", line 159, in rollup_executable
for path in possible_rollup_binary_paths(self):
File "/Users/user/screeps-starter-python/build.py", line 52, in possible_rollup_binary_paths
raise Exception("npm bin failed. exit code: {}. command line '{}'. stderr: {}. stdout: {}"
Exception: npm bin failed. exit code: 1. command line '/usr/local/bin/npm' 'bin'. stderr: . stdout: Unknown command: "bin"

To see a list of supported npm commands, run:
npm help

Thanks in advanced.

Python 3.6 is EOL

Screeps claims to be python-compatible, but the only version of python you can play it is so old it's illegal to code in it. There is a new version of transspiler that supports python 3.9 already, but this repository is not using it. As far as I see, there is not even a ton of changes, it's like 66 commits and 17 merges (the dabross performance patches would need to be potentially updated). Lots of modern python syntax could be enabled, python is on the hype wave, it would be cool to be able to use it with python properly.

List manipulation doesn't translate right

In python:

>>> q=[1,2,3]
>>> y=[4,5]
>>> z=q+4*y
>>> z
[1, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5]

Above translated via transcrypt:

var q = list ([1, 2, 3]);
var y = list ([4, 5]);
var z = q + 4 * y;
console.log (z);
1,2,3NaN

So array manipulation doesn't translate right

python build.py

this same problem in python 3.12 and in conda python 3.11

d:\anaconda3\envs\screeps\Library\screeps-starter-python>python build.py
Traceback (most recent call last):
File "d:\anaconda3\envs\screeps\Library\screeps-starter-python\build.py", line 437, in
main()
File "d:\anaconda3\envs\screeps\Library\screeps-starter-python\build.py", line 426, in main
install_node_dependencies(config)
File "d:\anaconda3\envs\screeps\Library\screeps-starter-python\build.py", line 403, in install_node_dependencies
if config.rollup_executable() is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\anaconda3\envs\screeps\Library\screeps-starter-python\build.py", line 159, in rollup_executable
for path in possible_rollup_binary_paths(self):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\anaconda3\envs\screeps\Library\screeps-starter-python\build.py", line 52, in possible_rollup_binary_paths
raise Exception("npm bin failed. exit code: {}. command line '{}'. stderr: {}. stdout: {}"
Exception: npm bin failed. exit code: 1. command line 'C:\Program Files\nodejs\npm.CMD' 'bin'. stderr: . stdout: Unknown command: "bin"

To see a list of supported npm commands, run:
npm help

Config for private server

The config.default.json seems to only consider the official screeps server.

Is it possible to configure the screeps-starter-python for private server as with screeps-typescript-starter ?

fails to transcrypt

$ ./build.py 
running transcrypt...

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.6.54
Copyright (C) Geatec Engineering. License: Apache 2.0


Error while compiling (offending file last):
        File '/s/var/code/screeps-starter-python/src/main.py', line 1, at import of:
        File '/s/var/code/screeps-starter-python/src/harvester.py', line 1, at import of:
        File '/s/var/code/screeps-starter-python/src/defs/__init__.py', line 22, at import of:
        File '/s/var/code/screeps-starter-python/env/lib/python3.6/site-packages/transcrypt/modules/org/transcrypt/stubs/browser.py', line 1, namely:

        Attempt to import module: builtins
        Can't find any of:
                /s/var/code/screeps-starter-python/src/builtins.py
                /s/var/code/screeps-starter-python/src/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/lib/python3.6/site-packages/transcrypt/modules/builtins.py
                /s/var/code/screeps-starter-python/env/lib/python3.6/site-packages/transcrypt/modules/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/bin/builtins.py
                /s/var/code/screeps-starter-python/env/bin/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/lib/python36.zip/builtins.py
                /s/var/code/screeps-starter-python/env/lib/python36.zip/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/lib/python3.6/builtins.py
                /s/var/code/screeps-starter-python/env/lib/python3.6/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/lib/python3.6/lib-dynload/builtins.py
                /s/var/code/screeps-starter-python/env/lib/python3.6/lib-dynload/__javascript__/builtins.mod.js
                /usr/lib/python3.6/builtins.py
                /usr/lib/python3.6/__javascript__/builtins.mod.js
                /s/var/code/screeps-starter-python/env/lib/python3.6/site-packages/builtins.py
                /s/var/code/screeps-starter-python/env/lib/python3.6/site-packages/__javascript__/builtins.mod.js
                /usr/local/lib/python3.6/dist-packages/builtins.py
                /usr/local/lib/python3.6/dist-packages/__javascript__/builtins.mod.js
                /usr/lib/python3/dist-packages/builtins.py
                /usr/lib/python3/dist-packages/__javascript__/builtins.mod.js


Aborted
Traceback (most recent call last):
  File "./build.py", line 309, in <module>
    main()
  File "./build.py", line 304, in main
    build(config)
  File "./build.py", line 182, in build
    run_transcrypt(config)
  File "./build.py", line 143, in run_transcrypt
    .format(ret, "' '".join(args), source_dir))
Exception: transcrypt failed. exit code: 5. command line '/s/var/code/screeps-starter-python/env/bin/transcrypt' '-n' '-p' '.none' '-b' '/s/var/code/screeps-starter-python/src/main.py'. working dir: '/s/var/code/screeps-starter-python/src'.

I guess it's because Transcrypt tries to translate

if TYPE_CHECKING:
    from transcrypt.modules.org.transcrypt.stubs.browser import __pragma__

So I would just do

# __pragma__('skip')
from transcrypt.modules.org.transcrypt.stubs.browser import __pragma__

PS I hope to make a PR a bit later :)

npm bin has been removed

When attempting to build it with a fresh install of node.js, the build fails because it attempts to call "npm bin" but that command had been removed in npm 9.0.0. They say to use "npm exec" instead but I'm not sure how I'd have to modify the syntax to work with the different command.

Build fails if password isnt defined in config.json

To be consistent with the config.default.json file, where the password entry isnt present,

In build.py, l73

Change
self.password = config_json['password']

To
self.password = config_json.get('password')

Build failed

running transcrypt...

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.7.17
Copyright (C) Geatec Engineering. License: Apache 2.0


Saving target code in: /home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src/__target__/org.transcrypt.__runtime__.js
Saving target code in: /home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src/__target__/defs.js
Saving target code in: /home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src/__target__/harvester.js
Saving target code in: /home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src/__target__/main.js

Ready

copying artifacts...
/home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/node_modules/rollup/dist/shared/loadConfigFile.js:536
        return import(pluginPath);
               ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Module.<anonymous> (/home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/node_modules/rollup/dist/bin/rollup:22:24)

Traceback (most recent call last):
  File "build.py", line 437, in <module>
    main()
  File "build.py", line 432, in main
    build(config)
  File "build.py", line 278, in build
    copy_artifacts(config)
  File "build.py", line 254, in copy_artifacts
    raise Exception("rollup failed. exit code: {}. command line '{}'. working dir: '{}'."
Exception: rollup failed. exit code: 1. command line '/home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/node_modules/.bin/rollup' '--format' 'cjs' '--input' '/home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src/__target__/main.js'. working dir: '/home/toor/Desktop/game/screeps-starter-python/screeps-starter-python/src'.

how to fix it?

README Enhancement - Equivalent Python Syntax Examples

Who doesn't love an excessively detailed README? Can you really resist the urge to put in a sweet table of continents?

The README by itself isn't lacking in respect to what it does or what it tries to accomplish. Unfortunately, because of how Screeps handles certain methods and objects, finding a python syntax that fits can be confusing at first. This isn't anyone's fault, it's just the nature of writing Python code that will be translated to equivalent JavaScript for a specific program.

The idea for this came from doing the tutorials where it was initially hard to find a way to write some expressions in Python that would accomplish what the tutorial was asking me to do (like passing a filter expression as an optional argument). The slack channel was immensely helpful helpful though, and after asking a few questions, it was immediately clear there is usually a way to create similar Python code. However, because the message history for the #Python channel goes back only a few days, there is no record of the questions asked (or the answers).

To help those new to Screeps who want to write their code in Python, I think a mini-guide of sorts containing Python equivalent code of common Screeps idioms and code usage. It wouldn't cover every conceivable case, just how to accomplish some of the more complex features Screeps offers using Python syntax.

I'd like to start working on a rough draft for this idea, but wanted to get feedback before I put anything together to see if it would be fitting for the project itself.

JS Error

Saving target code in: C:/Users/Ariel/Desktop/screeps/src/target/org.transcrypt.runtime.js
Saving target code in: C:/Users/Ariel/Desktop/screeps/src/target/defs.js
Saving target code in: C:/Users/Ariel/Desktop/screeps/src/target/harvester.js
Saving target code in: C:/Users/Ariel/Desktop/screeps/src/target/main.js

Ready

copying artifacts...
←[36m
←[1mC:\Users\Ariel\Desktop\screeps\src_target_\main.js←[22m → ←[1mstdout←[22m...←[39m
←[1m←[31m[!] ←[1mError: Unexpected token←[22m←[1m←[39m←[22m
target\main.js (9:14)
←[2m 7: export var main = function () {
8: for (var name of Object.keys (Game.creeps)) {
9: var creep = ;
^
10: harvester.run_harvester (creep);
←[22m }
←[2mError: Unexpected token
at error (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:5265:30)
at Module.error (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:9858:16)
at tryParse (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:9739:23)
at Module.setSource (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:10165:19)
at ModuleLoader.addModuleSource (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:18335:20)
at async ModuleLoader.fetchModule (C:\Users\Ariel\Desktop\screeps\node_modules\rollup\dist\shared\rollup.js:18391:9)
at async Promise.all (index 0)←[22m

Traceback (most recent call last):
File "C:\Users\Ariel\Desktop\screeps\build.py", line 437, in
main()
File "C:\Users\Ariel\Desktop\screeps\build.py", line 432, in main
build(config)
File "C:\Users\Ariel\Desktop\screeps\build.py", line 278, in build
copy_artifacts(config)
File "C:\Users\Ariel\Desktop\screeps\build.py", line 254, in copy_artifacts
raise Exception("rollup failed. exit code: {}. command line '{}'. working dir: '{}'."
Exception: rollup failed. exit code: 1. command line 'C:\Users\Ariel\Desktop\screeps\node_modules.bin\rollup.cmd' '--format' 'cjs' '--input' 'C:\Users\Ariel\Desktop\screeps\src_target_\main.js'. working dir: 'C:\Users\Ariel\Desktop\screeps\src'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.