Hello! :)
Some resources used: https://www.edx.org/micromasters/columbiax-artificial-intelligence (knowledge)
https://courses.cs.washington.edu/courses/cse473/11au/slides/cse473au11-adversarial-search.pdf (more knowledge)
https://web.uvic.ca/~maryam/AISpring94/Slides/06_ExpectimaxSearch.pdf (even more knowledge!)
https://github.com/yangshun/2048-python (gui)
https://stackoverflow.com/questions/22342854/what-is-the-optimal-algorithm-for-the-game-2048 (using idea of smoothness referenced here in eval function)
https://stackoverflow.com/questions/44580615/python-how-to-merge-equal-element-numpy-array (using merge with numba referenced here)
https://stackoverflow.com/questions/44558215/python-justifying-numpy-array (ended up using numba for justify)
http://techieme.in/matrix-rotation/ (transpose reverse transpose transpose .. cool diagrams)