PuzzleScript - open-source HTML5 puzzle game engine. PyGame - a 2D game engine in Python. ?; RPGMaker - series of programs for the development of role-playing games. ?; Ren'Py - visual novel engine using the Python language in simplified form. It supports Windows, Mac OS X, Linux, Android and iOS ?️. This is a simple version of Tic Tac Toe that I built to learn Pygame. Option to create new game when the last game is finished. Allow players to specify board size. Allow players to change the colors of the board. Add the computer as a player and allow players to choose an AI opponent. I programmed a tic-tac-toe game using pygame. It's the first game I make. I'd really appreaciate any comments you have about the coding style and any improvements that could be made.
Pygame Installation¶
Pygame requires Python; if you don't already have it, you can download it from python.org. Use python 3.7.7 or greater, because it is much friendlier to newbies, and additionally runs faster.
The best way to install pygame is with the pip tool (which is what python uses to install packages). Note, this comes with python in recent versions. We use the --user flag to tell it to install into the home directory, rather than globally.
To see if it works, run one of the included examples:
If it works, you are ready to go! If not there are more detailed, platform-specific instructions further down the page. Next steps...¶
You could try:
- Having a go at one of the tutorials.
- Or dive right into the pygame Docs
Further info on installation¶
Hopefully the installation instructions above worked for you. If not, please read some alternative installation methods, and extra details below.
Wheels are available for x86 and x64 architectures on Linux and Windows, and for x64 on Mac. If pip doesn't find a wheel for your platform, it will try to compile pygame from source (see below).
pygame requires a 'newer' pip. If pygame starts compiling from source and fails, first try upgrading pip.
Raspberry Pi¶
This comes with pygame already installed on the default raspbian installation.
Windows installation¶
Make sure you install python3.6 with the 'Add python 3.6 to PATH' option selected. This means that python, and pip will work for you from the command line.
There is documentation with python for the 'windows installation steps'
If you get 'PermissionError: [WinError 5] Access is denied', before starting the command prompt right click and 'Run as administrator'. Notice that this does not seem to work with Python 3.9 - use 3.7.
Mac installation¶
Recent versions of Mac OS X require pygame 2¶
If your examples aren't running and you are using a recent version of Mac OS X; try this line to install pygame instead:
virtualenv issue¶
There are problems with '
' and pygame on mac, where it loses focus. More details here: details on the virtualenv issue. It does work if you create a venv with python -m venv however. Instructions if you want to use an virtualenv (some people have trouble with the window losing focus when inside a venv).
That's just needed on mac if you use virtualenv, not if you install it with --user, or if you use -m venv.
Anaconda Mac¶
Use
instead of
(note the w on the end). If it doesn't work for you, please see the /wiki/MacCompile instructions.
Unix Binary Packages¶
Many Linux and BSD distributions have their own packages of Pygame. These may have an older version of Pygame than the wheels, but have been carefully tested with other packages in that distribution.
Debian/Ubuntu/Mint¶
Fedora/Red hat¶
OpenSUSE¶
Arch/Manjaro
Mac Os Download
Distribution | Python 3 package | Python 2 package | Debian/Ubuntu | python3-pygame | python-pygame | Fedora | python3-pygame | pygame |
---|
FreeBSD also has an active pygame package. While techinicaly it isn't binary, it is automatically built and installed by the ports manager. See the FreeBSD package page for more information. http://www.freebsdports.info/ports/devel/py-game.html
Gentoo has a builtin package for pygame. This is compiled for your system as it installs, similar to BSD, http://packages.gentoo.org/package/dev-python/pygame
Installing From Source¶
Compilation¶
Compiling and installing pygame is handled by Python's distutils. Pygame also comes with some scripts to automatically configure the flags needed to build pygame. Use the 'setup.py' script to start the installation.
The first time you run the setup script, it will call the 'config.py' script. This will build a 'Setup' file which stores all the information needed to compile. The 'config.py' will do a good job of detecting what dependencies are available and where they are located. If it isn't perfect, it is easy to build your own, or edit the created 'Setup' text file. This 'Setup' file is a simple Makefile-like text file. It defines variables needed to use each dependency, and then enables all the pygame modules with found dependencies. If you have trouble compiling, you should be able to easily fix any problems inside the 'Setup' file.
Running the 'setup.py' script will call distutils to build and install the pygame package. Distutils actually supports a wide variety of compile and install options. running 'python setup.py help' will start to show you the different options available. You can change many things like install locations, compiler to use, and more. Calling the 'setup.py' script with no arguments and it will just ask you if you want the default flags needed to compile and install.
Some of the .c files are generated by Cython from .pyx files. Running 'setup.py cython' will update them.
Windows Compiling Info
You can compile pygame on windows with mingw (gcc for windows) and also with visual studio. Up to date details can be found here: CompileWindows
Unix Compiling Info
Compiling from linux shouldn't give you any problems. One thing you must keep in mind is that most linux RPM packages separate the actual library from the 'dev' files needed to compile. To build you will need to make sure the packages like 'SDL-dev' are installed.
You can check to see if SDL is ready to be built from by running the command sdl-config and seeing if it is found. If the sdl-configPygame Tic-tac-toe Mac Os X
script is not on the path (or you have more than one?) Set the environment variable SDL_CONFIG to its location.Sometimes you will have the SDL libraries installed in once location, and the other SDL libraries in another. This tricks the pygame config scripts, but you can help it out by setting the environment LOCALBASE to a path prefix where the other libraries are. The common case for this is SDL installed in /usr and other SDL libs installed in /usr/local. The command for this situation is 'LOCALBASE=/usr/local python setup.py install'.
Mac OS X Compiling Info¶
Up to date instructions for compiling on Mac OS X can be found here: MacCompile
Pygame Tic-tac-toe Mac Os Update
if anaconda is installed¶
please deactivate base by:
then :
Dec-26-2020, 01:51 PM I somehow created Tic tac toe (not finished yet). when I place 'X' it place 'X' properly, and when I place 'O' it place 'O' but it also change 'X' to 'O' and then it continue to change. I'm not able to interpret what is issue but if you run this code you will know. does anyone know how to fix this problem Dec-27-2020, 12:45 AM (This post was last modified: Dec-27-2020, 12:46 AM by metulburr.) You have a few bad habits as well as over-complicated processes. bad habits: You should not be using global keyword. You are asking for bugs. over complicated: It would be better to have 0 as O and 1 as X as a boolean, or whatever. Even better than that it would be better to have a dictionary or list of the positions and set them and then display them in their position for whatever the position's content is. problem: Your draw function is ran every iteration of the loop. This, in conjunction with you using global, means it flips back and forth for everyone, instead of how you intend it. Instead, once you set one save it in a dictionary/list, then simply just draw the entire dictionary/list. fix with dictionary: Which if it was a dictionary... key can be position while the value identifies it to be X or O. Set all the keys to be the positions with values set to None in the beginning. Draw the entire dictionary. Those that do not have an X or O value do not draw anything, but still retain the position in advance. When someone clicks on a square assign that position to be X or O only if it has none. Recommended Tutorials: BBcode, Forum Rules and Instructions, How to ask smart questions, the Basics, Classes, Python Gotchas |
Users browsing this thread: 1 Guest(s)