From 388160732fcf5a7c549105a0f9daeaa7f0092291 Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Sun, 18 Apr 2021 17:47:13 -0300 Subject: [PATCH 01/47] Add localization support Add Makefile targets for generating/updating POT files, for updating PO files, and for building translated docs. --- docs/Makefile | 20 +- docs/_templates/gumroad.html | 6 +- docs/conf.py | 4 + docs/locale/docs.pot | 1362 ++++++++++++++++++++++++++++++++++ docs/locale/sphinx.pot | 38 + docs/requirements-doc.txt | 2 + 6 files changed, 1427 insertions(+), 5 deletions(-) create mode 100644 docs/locale/docs.pot create mode 100644 docs/locale/sphinx.pot create mode 100644 docs/requirements-doc.txt diff --git a/docs/Makefile b/docs/Makefile index 359209f0..b7b6f541 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -4,6 +4,7 @@ # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = python -msphinx +SPHINXINTL = python -msphinx_intl SPHINXPROJ = FreeGames SOURCEDIR = . BUILDDIR = _build @@ -12,9 +13,24 @@ BUILDDIR = _build help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +.PHONY: help Makefile update-po + +update-po: pot + $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(O) + +pot: gettext + @cp $(BUILDDIR)/gettext/{docs,sphinx}.pot locale/ + +%-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) +%-translated: + @for locale in $(LOCALES); do \ + SPHINXOPTS="-D language=$$locale"; \ + BUILDDIR="$(BUILDDIR)/$$locale"; \ + TARGET="$(patsubst %-translated,%,$@)"; \ + $(SPHINXBUILD) -M "$$TARGET" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ + done # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_templates/gumroad.html b/docs/_templates/gumroad.html index c9c9687e..2a0ad8c5 100644 --- a/docs/_templates/gumroad.html +++ b/docs/_templates/gumroad.html @@ -1,5 +1,5 @@ -

Donate

-

If you or your organization uses Free Games, consider donating:

+

{{ _('Donate') }}

+

{{ _('If you or your organization uses Free Games, consider donating:') }}

- Donate to Free Python Games + {{ _('Donate to Free Python Games') }}

diff --git a/docs/conf.py b/docs/conf.py index 0c339e44..b7de4ca9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -199,3 +199,7 @@ # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True + +# Gettext / i18n +locale_dirs = ['locale/'] +gettext_compact = 'docs' diff --git a/docs/locale/docs.pot b/docs/locale/docs.pot new file mode 100644 index 00000000..1d92d8cd --- /dev/null +++ b/docs/locale/docs.pot @@ -0,0 +1,1362 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-18 17:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../ant.rst:2 +msgid "Ant" +msgstr "" + +#: ../../ant.rst:4 +msgid "Ant, simple animation demo." +msgstr "" + +#: ../../api.rst:2 +msgid "Free Python Games API Reference" +msgstr "" + +#: ../../api.rst:4 +msgid ":doc:`Free Python Games ` includes a few helpful utilities. The best way to expose beginners to these functions is with Python's built-in help function. Learners should be able to understand and write the drawing functions themselves." +msgstr "" + +#: ../../api.rst:13 +msgid "Drawing Functions" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.line:1 +msgid "Draw line from `(a, b)` to `(x, y)`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.square:1 +msgid "Draw square at `(x, y)` with side length `size` and fill color `name`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.square:3 +msgid "The square is oriented so the bottom left corner is at (x, y)." +msgstr "" + +#: ../../api.rst:20 +msgid "Helper Functions" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:1 +msgid "Floor of `value` given `size` and `offset`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:3 +msgid "The floor function is best understood with a diagram of the number line::" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:8 +msgid "The number line shown has offset 200 denoted by the left-hand tick mark at -200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. The floor of a value is the left-hand tick mark of the range where it lies. So for the points show above: ``floor(x)`` is -200, ``floor(y)`` is 0, and ``floor(z)`` is 100." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.path:1 +msgid "Return full path to `filename` in freegames module." +msgstr "" + +#: ../../api.rst:27 +msgid "Vectors" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector:1 +msgid "Two-dimensional vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector:3 +msgid "Vectors can be modified in-place." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__init__:1 +msgid "Initialize vector with coordinates: x, y." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__add__:1 +msgid "v.__add__(w) -> v + w" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__mul__:1 +msgid "v.__mul__(w) -> v * w" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.copy:1 +msgid "Return copy of vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.move:1 +msgid "Move vector by other (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.rotate:1 +msgid "Rotate vector counter-clockwise by angle (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.scale:1 +msgid "Scale vector by other (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.vector.x:1 +msgid "X-axis component of vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.vector.y:1 +msgid "Y-axis component of vector." +msgstr "" + +#: ../../bagels.rst:2 +msgid "Bagels" +msgstr "" + +#: ../../bagels.rst:4 +msgid "Bagels, a number puzzle game." +msgstr "" + +#: ../../bounce.rst:2 +msgid "Bounce" +msgstr "" + +#: ../../bounce.rst:4 +msgid "Bounce, a simple animation demo." +msgstr "" + +#: ../../cannon.rst:2 +#: ../../../README.rst:169 +msgid "Cannon" +msgstr "" + +#: ../../cannon.rst:4 +msgid "Cannon, hitting targets with projectiles." +msgstr "" + +#: ../../connect.rst:2 +msgid "Connect Four" +msgstr "" + +#: ../../connect.rst:4 +msgid "Connect Four, two-player connection game." +msgstr "" + +#: ../../crypto.rst:2 +msgid "Crypto" +msgstr "" + +#: ../../crypto.rst:4 +msgid "Crypto: tool for encrypting and decrypting messages." +msgstr "" + +#: ../../curriculum.rst:2 +msgid "Free Python Games Curriculum" +msgstr "" + +#: ../../curriculum.rst:4 +msgid "What follows are notes for a week-long curriculum developed for Maker Camp at The River Church Community. Maker Camp was a summer day camp for Middle School students in the California Bay Area." +msgstr "" + +#: ../../curriculum.rst:8 +msgid "Each game has exercises at the top." +msgstr "" + +#: ../../curriculum.rst:9 +msgid "Visualize code with http://pythontutor.com" +msgstr "" + +#: ../../curriculum.rst:10 +msgid "Extras: $ python3 -m turtledemo" +msgstr "" + +#: ../../curriculum.rst:14 +msgid "Day 1" +msgstr "" + +#: ../../curriculum.rst:16 +msgid "What is a computer? Calculator + Clock." +msgstr "" + +#: ../../curriculum.rst:17 +msgid "Discuss Alan Turing and Turing Machines." +msgstr "" + +#: ../../curriculum.rst:18 +msgid "Discuss John Von Neumann and Von Neumann Machines." +msgstr "" + +#: ../../curriculum.rst:19 +msgid "What is a program? Computer Recipe." +msgstr "" + +#: ../../curriculum.rst:20 +msgid "Introduce Terminal, black background, give the computer commands." +msgstr "" + +#: ../../curriculum.rst:21 +msgid "Introduce Python Shell, white background, write Python statements." +msgstr "" + +#: ../../curriculum.rst:22 +msgid "Activity: connect and decorate computers." +msgstr "" + +#: ../../curriculum.rst:23 +msgid "Problem solving: divide and conquer." +msgstr "" + +#: ../../curriculum.rst:24 +msgid "Statements: assignment, if/elif/else, while, import" +msgstr "" + +#: ../../curriculum.rst:25 +msgid "Data types: int, str" +msgstr "" + +#: ../../curriculum.rst:26 +msgid "Functions: print, help, int" +msgstr "" + +#: ../../curriculum.rst:27 +msgid "Modules: random" +msgstr "" + +#: ../../curriculum.rst:30 +#: ../../curriculum.rst:70 +#: ../../curriculum.rst:115 +#: ../../curriculum.rst:157 +#: ../../curriculum.rst:184 +msgid "Games" +msgstr "" + +#: ../../curriculum.rst:32 +msgid ":doc:`guess`.py - Guess number within range." +msgstr "" + +#: ../../curriculum.rst:34 +msgid "Explain: from random import randint" +msgstr "" + +#: ../../curriculum.rst:35 +msgid "randint(...)" +msgstr "" + +#: ../../curriculum.rst:36 +msgid "Variables" +msgstr "" + +#: ../../curriculum.rst:37 +msgid "Equality" +msgstr "" + +#: ../../curriculum.rst:38 +msgid "print(...)" +msgstr "" + +#: ../../curriculum.rst:39 +msgid "Inequality" +msgstr "" + +#: ../../curriculum.rst:40 +msgid "input(...)" +msgstr "" + +#: ../../curriculum.rst:41 +msgid "int(...)" +msgstr "" + +#: ../../curriculum.rst:42 +msgid "Increase range to 1,000 and guess the number." +msgstr "" + +#: ../../curriculum.rst:43 +msgid "Discuss method of guessing. That's an algorithm!" +msgstr "" + +#: ../../curriculum.rst:45 +msgid ":doc:`snake`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:48 +#: ../../curriculum.rst:97 +#: ../../curriculum.rst:139 +#: ../../curriculum.rst:166 +#: ../../curriculum.rst:191 +msgid "Bible Story" +msgstr "" + +#: ../../curriculum.rst:50 +msgid "Genesis 1 - God the Creator (Creation)" +msgstr "" + +#: ../../curriculum.rst:52 +msgid "What did God do at the beginning?" +msgstr "" + +#: ../../curriculum.rst:53 +msgid "What did God see in creation?" +msgstr "" + +#: ../../curriculum.rst:54 +msgid "What is special about people?" +msgstr "" + +#: ../../curriculum.rst:55 +msgid "Why do we create things?" +msgstr "" + +#: ../../curriculum.rst:59 +msgid "Day 2" +msgstr "" + +#: ../../curriculum.rst:61 +msgid "Activity: Blind partner obstacle course." +msgstr "" + +#: ../../curriculum.rst:62 +msgid "Problem solving: brute-force." +msgstr "" + +#: ../../curriculum.rst:63 +msgid "Famous Christian programmer: Donald Knuth" +msgstr "" + +#: ../../curriculum.rst:64 +msgid "Statements: try/except, for, def" +msgstr "" + +#: ../../curriculum.rst:65 +msgid "Data types: float, bool" +msgstr "" + +#: ../../curriculum.rst:66 +msgid "Functions: type, dir, str, ord, chr" +msgstr "" + +#: ../../curriculum.rst:67 +msgid "Modules: turtle" +msgstr "" + +#: ../../curriculum.rst:72 +msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages." +msgstr "" + +#: ../../curriculum.rst:74 +msgid "ord function and chr function" +msgstr "" + +#: ../../curriculum.rst:75 +msgid "modulo operator" +msgstr "" + +#: ../../curriculum.rst:76 +msgid "Write decode function" +msgstr "" + +#: ../../curriculum.rst:77 +msgid "Encrypt numbers" +msgstr "" + +#: ../../curriculum.rst:79 +msgid ":doc:`paint`.py - Draw shapes." +msgstr "" + +#: ../../curriculum.rst:81 +msgid "Draw line" +msgstr "" + +#: ../../curriculum.rst:82 +msgid "Draw square" +msgstr "" + +#: ../../curriculum.rst:83 +msgid "for-statement, range function." +msgstr "" + +#: ../../curriculum.rst:84 +msgid "Draw five-pointed star: forward(50); right(144) (x5)" +msgstr "" + +#: ../../curriculum.rst:85 +msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)" +msgstr "" + +#: ../../curriculum.rst:86 +#: ../../give-gift-python.rst:141 +msgid "help(...)" +msgstr "" + +#: ../../curriculum.rst:87 +#: ../../give-gift-python.rst:142 +msgid "undo(...)" +msgstr "" + +#: ../../curriculum.rst:88 +msgid "def-statement, refactor code to star function" +msgstr "" + +#: ../../curriculum.rst:89 +msgid "color('green'); color('blue', 'yellow')" +msgstr "" + +#: ../../curriculum.rst:90 +msgid "begin_fill(); end_fill()" +msgstr "" + +#: ../../curriculum.rst:91 +msgid "width function" +msgstr "" + +#: ../../curriculum.rst:92 +msgid "Write polygon(sides, length) function" +msgstr "" + +#: ../../curriculum.rst:94 +msgid ":doc:`flappy`.py - Flappy Bird inspired game." +msgstr "" + +#: ../../curriculum.rst:99 +msgid "Genesis 6:5-22 - God the Engineer (Noah)" +msgstr "" + +#: ../../curriculum.rst:101 +msgid "Why did God regret making people?" +msgstr "" + +#: ../../curriculum.rst:102 +msgid "How was Noah different?" +msgstr "" + +#: ../../curriculum.rst:103 +msgid "What was God's plan?" +msgstr "" + +#: ../../curriculum.rst:104 +msgid "How are we washed today?" +msgstr "" + +#: ../../curriculum.rst:108 +msgid "Day 3" +msgstr "" + +#: ../../curriculum.rst:110 +msgid "Activity: Simon Says" +msgstr "" + +#: ../../curriculum.rst:111 +msgid "Famous Christian programmer: Fred Brooks" +msgstr "" + +#: ../../curriculum.rst:112 +msgid "Functions: onscreenclick, onkey, ontimer" +msgstr "" + +#: ../../curriculum.rst:117 +msgid ":doc:`bagels`.py - Digit guessing puzzle." +msgstr "" + +#: ../../curriculum.rst:118 +#: ../../give-gift-python.rst:120 +msgid "Animation" +msgstr "" + +#: ../../curriculum.rst:120 +msgid "Draw arc: circle(100, 90)" +msgstr "" + +#: ../../curriculum.rst:121 +msgid "flower(...)" +msgstr "" + +#: ../../curriculum.rst:122 +msgid "Draw flower and rotate" +msgstr "" + +#: ../../curriculum.rst:123 +msgid "ontimer(...)" +msgstr "" + +#: ../../curriculum.rst:124 +msgid "hideturtle(); tracer(False); polygon(4, 200); update()" +msgstr "" + +#: ../../curriculum.rst:126 +msgid ":doc:`tictactoe`.py - Tic-tac-toe." +msgstr "" + +#: ../../curriculum.rst:128 +msgid "line(...)" +msgstr "" + +#: ../../curriculum.rst:129 +msgid "grid(...)" +msgstr "" + +#: ../../curriculum.rst:130 +msgid "drawx(...)" +msgstr "" + +#: ../../curriculum.rst:131 +msgid "drawo(...)" +msgstr "" + +#: ../../curriculum.rst:132 +msgid "floor(...)" +msgstr "" + +#: ../../curriculum.rst:133 +msgid "onscreenclick(goto)" +msgstr "" + +#: ../../curriculum.rst:135 +msgid ":doc:`simonsays`.py - Simon Says" +msgstr "" + +#: ../../curriculum.rst:136 +msgid ":doc:`cannon`.py - Hitting targets with projectiles." +msgstr "" + +#: ../../curriculum.rst:141 +msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")" +msgstr "" + +#: ../../curriculum.rst:143 +msgid "What did Isaiah say would happen?" +msgstr "" + +#: ../../curriculum.rst:144 +msgid "What did John the Baptist say would happen?" +msgstr "" + +#: ../../curriculum.rst:145 +msgid "What did God say about Jesus? When?" +msgstr "" + +#: ../../curriculum.rst:146 +msgid "How did Jesus give his disciples new jobs?" +msgstr "" + +#: ../../curriculum.rst:150 +msgid "Day 4" +msgstr "" + +#: ../../curriculum.rst:152 +msgid "Activity: Collage of concepts." +msgstr "" + +#: ../../curriculum.rst:153 +msgid "Famous Christian programmer: Larry Wall" +msgstr "" + +#: ../../curriculum.rst:154 +msgid "Data types: list, dict, vector" +msgstr "" + +#: ../../curriculum.rst:159 +msgid ":doc:`bounce`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:160 +msgid ":doc:`pong`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:161 +msgid ":doc:`ant`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:162 +msgid ":doc:`tron`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:163 +msgid ":doc:`tiles`.py - Puzzle game of number shuffling." +msgstr "" + +#: ../../curriculum.rst:168 +msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)" +msgstr "" + +#: ../../curriculum.rst:170 +msgid "What does Jesus tell the disciples?" +msgstr "" + +#: ../../curriculum.rst:171 +msgid "What does the man tell the Pharisees?" +msgstr "" + +#: ../../curriculum.rst:172 +msgid "What does the man believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:173 +msgid "What do you believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:177 +msgid "Day 5" +msgstr "" + +#: ../../curriculum.rst:179 +msgid "Activity: Make or modify your own game." +msgstr "" + +#: ../../curriculum.rst:180 +msgid "Famous Christian programmer: Jon Skeet" +msgstr "" + +#: ../../curriculum.rst:181 +msgid "Answer: What next?" +msgstr "" + +#: ../../curriculum.rst:186 +msgid ":doc:`connect`.py - Connect Four" +msgstr "" + +#: ../../curriculum.rst:187 +msgid ":doc:`memory`.py - Puzzle game of number pairs." +msgstr "" + +#: ../../curriculum.rst:188 +msgid ":doc:`pacman`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:193 +msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)" +msgstr "" + +#: ../../curriculum.rst:195 +msgid "What does God make? When?" +msgstr "" + +#: ../../curriculum.rst:196 +msgid "Who is the Lamb and the Bride?" +msgstr "" + +#: ../../curriculum.rst:197 +msgid "What is special about the city?" +msgstr "" + +#: ../../curriculum.rst:198 +msgid "How can we live in the Holy City?" +msgstr "" + +#: ../../development.rst:2 +msgid "Free Python Games Development" +msgstr "" + +#: ../../development.rst:4 +msgid ":doc:`Free Python Games ` development is lead by Grant Jenks ." +msgstr "" + +#: ../../development.rst:8 +msgid "Collaborators Welcome" +msgstr "" + +#: ../../development.rst:10 +msgid "Search issues or open a new issue to start a discussion around a bug." +msgstr "" + +#: ../../development.rst:11 +msgid "Fork the `GitHub repository`_ and make your changes in a new branch." +msgstr "" + +#: ../../development.rst:12 +msgid "Write a test which shows the bug was fixed." +msgstr "" + +#: ../../development.rst:13 +msgid "Send a pull request and message the development lead until its merged and published." +msgstr "" + +#: ../../development.rst:19 +msgid "Requests for Contributions" +msgstr "" + +#: ../../development.rst:21 +msgid "Simplifications to existing games." +msgstr "" + +#: ../../development.rst:22 +msgid "Refactoring to simplify games." +msgstr "" + +#: ../../development.rst:23 +msgid "Improved documentation." +msgstr "" + +#: ../../development.rst:24 +msgid "Additional games. Requirements for new games:" +msgstr "" + +#: ../../development.rst:26 +msgid "Fun to play." +msgstr "" + +#: ../../development.rst:27 +msgid "Matching code style." +msgstr "" + +#: ../../development.rst:28 +msgid "Limited Python feature set." +msgstr "" + +#: ../../development.rst:29 +msgid "Short (less than 100 lines of code)." +msgstr "" + +#: ../../development.rst:32 +msgid "Get the Code" +msgstr "" + +#: ../../development.rst:34 +msgid ":doc:`Free Python Games ` is actively developed in a `GitHub repository`_." +msgstr "" + +#: ../../development.rst:37 +msgid "You can either clone the public repository::" +msgstr "" + +#: ../../development.rst:41 +msgid "Download the `tarball `_::" +msgstr "" + +#: ../../development.rst:45 +msgid "Or, download the `zipball `_::" +msgstr "" + +#: ../../development.rst:50 +msgid "Installing Dependencies" +msgstr "" + +#: ../../development.rst:52 +msgid "Install development dependencies with `pip `_::" +msgstr "" + +#: ../../development.rst:56 +msgid "All packages for running tests and building documentation will be installed." +msgstr "" + +#: ../../development.rst:59 +msgid "Testing" +msgstr "" + +#: ../../development.rst:61 +msgid ":doc:`Free Python Games ` currently tests against three versions of Python:" +msgstr "" + +#: ../../development.rst:64 +msgid "CPython 3.4" +msgstr "" + +#: ../../development.rst:65 +msgid "CPython 3.5" +msgstr "" + +#: ../../development.rst:66 +msgid "CPython 3.6" +msgstr "" + +#: ../../development.rst:68 +msgid "Testing uses `tox `_. If you don't want to install all the development requirements, then, after downloading, you can simply run::" +msgstr "" + +#: ../../development.rst:74 +msgid "The test argument to setup.py will download a minimal testing infrastructure and run the tests." +msgstr "" + +#: ../../fidget.rst:2 +#: ../../../README.rst:295 +msgid "Fidget" +msgstr "" + +#: ../../fidget.rst:4 +msgid "Fidget, inspired by fidget spinners." +msgstr "" + +#: ../../flappy.rst:2 +#: ../../../README.rst:192 +msgid "Flappy" +msgstr "" + +#: ../../flappy.rst:4 +msgid "Flappy, game inspired by Flappy Bird." +msgstr "" + +#: ../../give-gift-python.rst:2 +msgid "Give the Gift of Python" +msgstr "" + +#: ../../give-gift-python.rst:4 +msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*" +msgstr "" + +#: ../../give-gift-python.rst:7 +msgid "Who am I?" +msgstr "" + +#: ../../give-gift-python.rst:9 +msgid "Python programmer." +msgstr "" + +#: ../../give-gift-python.rst:10 +msgid "Hundreds of hours of classroom instruction." +msgstr "" + +#: ../../give-gift-python.rst:13 +msgid "What we need?" +msgstr "" + +#: ../../give-gift-python.rst:15 +msgid "Interest!" +msgstr "" + +#: ../../give-gift-python.rst:16 +msgid "Typing skills." +msgstr "" + +#: ../../give-gift-python.rst:17 +msgid "Math: Arithmetic, Algebra, Geometry" +msgstr "" + +#: ../../give-gift-python.rst:20 +msgid "Setup" +msgstr "" + +#: ../../give-gift-python.rst:22 +msgid "Install Python, https://www.python.org/" +msgstr "" + +#: ../../give-gift-python.rst:23 +msgid "Run IDLE, ``$ python -m idlelib.idle``" +msgstr "" + +#: ../../give-gift-python.rst:24 +msgid "Write code." +msgstr "" + +#: ../../give-gift-python.rst:27 +msgid "Open the Turtle Window" +msgstr "" + +#: ../../give-gift-python.rst:35 +msgid "Commands" +msgstr "" + +#: ../../give-gift-python.rst:49 +msgid "Loops" +msgstr "" + +#: ../../give-gift-python.rst:59 +msgid "Shapes" +msgstr "" + +#: ../../give-gift-python.rst:71 +msgid "Dots" +msgstr "" + +#: ../../give-gift-python.rst:79 +msgid "Functions" +msgstr "" + +#: ../../give-gift-python.rst:93 +msgid "Colors" +msgstr "" + +#: ../../give-gift-python.rst:102 +msgid "Locations" +msgstr "" + +#: ../../give-gift-python.rst:113 +msgid "Inputs" +msgstr "" + +#: ../../give-gift-python.rst:115 +msgid "listen" +msgstr "" + +#: ../../give-gift-python.rst:116 +msgid "onclick" +msgstr "" + +#: ../../give-gift-python.rst:117 +msgid "onkey" +msgstr "" + +#: ../../give-gift-python.rst:122 +msgid "ontimer" +msgstr "" + +#: ../../give-gift-python.rst:123 +msgid "hideturtle" +msgstr "" + +#: ../../give-gift-python.rst:124 +msgid "tracer" +msgstr "" + +#: ../../give-gift-python.rst:125 +msgid "clear" +msgstr "" + +#: ../../give-gift-python.rst:126 +msgid "update" +msgstr "" + +#: ../../give-gift-python.rst:139 +msgid "Tips" +msgstr "" + +#: ../../give-gift-python.rst:143 +msgid "Embrace copy/paste" +msgstr "" + +#: ../../give-gift-python.rst:144 +msgid "Close window/reset()" +msgstr "" + +#: ../../give-gift-python.rst:147 +msgid "Activities" +msgstr "" + +#: ../../give-gift-python.rst:149 +msgid "Spell your name." +msgstr "" + +#: ../../give-gift-python.rst:150 +msgid "``python -m pip install freegames``" +msgstr "" + +#: ../../give-gift-python.rst:153 +msgid "Notes" +msgstr "" + +#: ../../give-gift-python.rst:155 +msgid "Start simple! Start easy! Start plain!" +msgstr "" + +#: ../../give-gift-python.rst:156 +msgid "Focus on fun! No PEP8. No Pylint." +msgstr "" + +#: ../../give-gift-python.rst:157 +msgid "Make it readable! Say it aloud." +msgstr "" + +#: ../../give-gift-python.rst:158 +msgid "No special shells! No IPython." +msgstr "" + +#: ../../give-gift-python.rst:159 +msgid "Show them mistakes! Red is your favorite color!" +msgstr "" + +#: ../../give-gift-python.rst:160 +msgid "No virtual environments!" +msgstr "" + +#: ../../give-gift-python.rst:161 +msgid "If they're not ready, don't push them!" +msgstr "" + +#: ../../give-gift-python.rst:162 +msgid "No dunder methods or attributes! No __name__ or __main__." +msgstr "" + +#: ../../guess.rst:2 +msgid "Guess" +msgstr "" + +#: ../../guess.rst:4 +msgid "Guess a number within a range." +msgstr "" + +#: ../../../README.rst:2 +msgid "Free Python Games" +msgstr "" + +#: ../../../README.rst:4 +msgid "`Free Python Games`_ is an Apache2 licensed collection of free Python games intended for education and fun. The games are written in simple Python code and designed for experimentation and changes. Simplified versions of several classic arcade games are included." +msgstr "" + +#: ../../../README.rst:9 +msgid "Python is one of the top-five most popular programming languages in the world and available for free from `Python.org `_. Python includes an extensive Standard Library distributed with your installation. The Standard Library has a module called Turtle which is a popular way to introduce programming to kids. Turtle was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free Python Games`_ are implemented using Python and its Turtle module." +msgstr "" + +#: ../../../README.rst:17 +msgid "Starting in 2012, `Free Python Games`_ began as an after school program to teach programming to inner-city youth. The goal was to have fun as much as it was to learn. Since then the games have been improved and used in a variety of settings ranging from classrooms to summer day-camps." +msgstr "" + +#: ../../../README.rst:22 +msgid "The games run anywhere Python can be installed which includes desktop computers running Windows, Mac OS, or Linux and older or low-power hardware such as the Raspberry Pi. Kids across the United States in grades 6th-12th have enjoyed learning about topics such as encryption and projectile motion through games." +msgstr "" + +#: ../../../README.rst:27 +msgid "Each game is entirely independent from the others and includes comments along with a list of exercises to work through with students. Creativity and flexibility is important. There is no right or wrong way to implement a new feature or behavior! You never know which games students will engage with best." +msgstr "" + +#: ../../../README.rst:36 +msgid "Testimonials" +msgstr "" + +#: ../../../README.rst:38 +msgid "*\"I love Free Python Games because the games are fun and they're easy to understand and change. I like making my own games now.\"*" +msgstr "" + +#: ../../../README.rst:41 +msgid "-- Luke Martin, Student" +msgstr "" + +#: ../../../README.rst:43 +msgid "*\"Free Python Games inspired and introduced a new hobby to our son. Thank you so much for exposing him to coding. He is having so much fun!\"*" +msgstr "" + +#: ../../../README.rst:46 +msgid "-- Mary Lai, Parent" +msgstr "" + +#: ../../../README.rst:48 +msgid "*\"Free Python Games are great because they really engage students and let them learn at their own pace.\"*" +msgstr "" + +#: ../../../README.rst:51 +msgid "-- Rick Schertle, Teacher, Steindorf STEAM School" +msgstr "" + +#: ../../../README.rst:53 +msgid "*\"Free Python Games combines play and learning in a flexible environment that reduces the stress of a difficult topic like programming.\"*" +msgstr "" + +#: ../../../README.rst:56 +msgid "-- Brett Bymaster, Youth Pastor, The River Church Community" +msgstr "" + +#: ../../../README.rst:58 +msgid "*\"Free Python Games is great for students, is highly organized and flexible, and seeks to unleash inquiry and understanding.\"*" +msgstr "" + +#: ../../../README.rst:61 +msgid "-- Terri Furton, Principal, Downtown College Prep" +msgstr "" + +#: ../../../README.rst:65 +msgid "Features" +msgstr "" + +#: ../../../README.rst:67 +msgid "Fun to play!" +msgstr "" + +#: ../../../README.rst:68 +msgid "Simple Python code" +msgstr "" + +#: ../../../README.rst:69 +msgid "Easy to install" +msgstr "" + +#: ../../../README.rst:70 +msgid "Designed for education" +msgstr "" + +#: ../../../README.rst:71 +msgid "Depends only on the Python Standard Library" +msgstr "" + +#: ../../../README.rst:72 +msgid "Used in hundreds of hours of classroom instruction" +msgstr "" + +#: ../../../README.rst:73 +msgid "Fully Documented" +msgstr "" + +#: ../../../README.rst:74 +msgid "100% Test Coverage" +msgstr "" + +#: ../../../README.rst:75 +msgid "Developed on Python 3.7" +msgstr "" + +#: ../../../README.rst:76 +msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" +msgstr "" + +#: ../../../README.rst:77 +msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" +msgstr "" + +#: ../../../README.rst:78 +msgid "Tested using Travis CI and AppVeyor CI" +msgstr "" + +#: ../../../README.rst:88 +msgid "Quickstart" +msgstr "" + +#: ../../../README.rst:90 +msgid "Installing Free Python Games is simple with `pip `_::" +msgstr "" + +#: ../../../README.rst:95 +msgid "Free Python Games supports a command-line interface (CLI). Help for the CLI is available using::" +msgstr "" + +#: ../../../README.rst:100 +msgid "The CLI supports three commands: list, copy, and show. For a list of all games run::" +msgstr "" + +#: ../../../README.rst:105 +msgid "Any of the listed games may be played by executing the Python module from the command-line. To reference the Python module, combine \"freegames\" with the name of the game. For example, to play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:111 +msgid "Games can be modified by copying their source code. The copy command will create a Python file in your local directory which you can edit. For example, to copy and play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:118 +msgid "Python includes a built-in text editor named IDLE which can also execute Python code. To launch the editor and make changes to the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:123 +msgid "You can also access documentation in the interpreter with Python's built-in help function::" +msgstr "" + +#: ../../../README.rst:131 +msgid "Free Games" +msgstr "" + +#: ../../../README.rst:134 +#: ../../paint.rst:2 +msgid "Paint" +msgstr "" + +#: ../../../README.rst:136 +msgid "`Paint`_ -- draw lines and shapes on the screen. Click to mark the start of a shape and click again to mark its end. Different shapes and colors can be selected using the keyboard." +msgstr "" + +#: ../../../README.rst:146 +#: ../../snake.rst:2 +msgid "Snake" +msgstr "" + +#: ../../../README.rst:148 +msgid "`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat the green food. Each time the food is consumed, the snake grows one segment longer. Avoid eating yourself or going out of bounds!" +msgstr "" + +#: ../../../README.rst:158 +#: ../../pacman.rst:2 +msgid "Pacman" +msgstr "" + +#: ../../../README.rst:160 +msgid "`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat all the white food. Watch out for red ghosts that roam the maze." +msgstr "" + +#: ../../../README.rst:171 +msgid "`Cannon`_ -- projectile motion. Click the screen to fire your cannnonball. The cannonball pops blue balloons in its path. Pop all the balloons before they can cross the screen." +msgstr "" + +#: ../../../README.rst:181 +msgid "Connect" +msgstr "" + +#: ../../../README.rst:183 +msgid "`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first player to connect four discs vertically, horizontally, or diagonally wins!" +msgstr "" + +#: ../../../README.rst:194 +msgid "`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your wings. Watch out for black ravens as you fly across the screen." +msgstr "" + +#: ../../../README.rst:203 +#: ../../memory.rst:2 +msgid "Memory" +msgstr "" + +#: ../../../README.rst:205 +msgid "`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a number. Match two numbers and the tiles will disappear to reveal an image." +msgstr "" + +#: ../../../README.rst:214 +#: ../../pong.rst:2 +msgid "Pong" +msgstr "" + +#: ../../../README.rst:216 +msgid "`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up and down. The first player to miss the ball loses." +msgstr "" + +#: ../../../README.rst:225 +#: ../../simonsays.rst:2 +msgid "Simon Says" +msgstr "" + +#: ../../../README.rst:227 +msgid "`Simon Says`_ -- classic memory puzzle game. Click the screen to start. Watch the pattern and then click the tiles in the same order. Each time you get the sequence right the pattern gets one step longer." +msgstr "" + +#: ../../../README.rst:237 +#: ../../tictactoe.rst:2 +msgid "Tic Tac Toe" +msgstr "" + +#: ../../../README.rst:239 +msgid "`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. Connect three in a row and you win!" +msgstr "" + +#: ../../../README.rst:248 +#: ../../tiles.rst:2 +msgid "Tiles" +msgstr "" + +#: ../../../README.rst:250 +msgid "`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile adjacent to the empty square to swap positions. Can you make the tiles count one to fifteen from left to right and bottom to top?" +msgstr "" + +#: ../../../README.rst:260 +#: ../../tron.rst:2 +msgid "Tron" +msgstr "" + +#: ../../../README.rst:262 +msgid "`Tron`_ -- classic arcade game. Use the keyboard to change the direction of your Tron player. Avoid touching the line drawn by your opponent." +msgstr "" + +#: ../../../README.rst:271 +#: ../../life.rst:2 +msgid "Life" +msgstr "" + +#: ../../../README.rst:273 +msgid "`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular automation created in 1970 by John Conway." +msgstr "" + +#: ../../../README.rst:282 +#: ../../maze.rst:2 +msgid "Maze" +msgstr "" + +#: ../../../README.rst:284 +msgid "`Maze`_ -- move from one side to another. Inspired by `A Universe in One Line of Code with 10 PRINT`_. Tap the screen to trace a path from one side to another." +msgstr "" + +#: ../../../README.rst:297 +msgid "`Fidget`_ -- fidget spinner inspired animation. Click the screen to accelerate the fidget spinner." +msgstr "" + +#: ../../../README.rst:307 +msgid "User Guide" +msgstr "" + +#: ../../../README.rst:309 +msgid "For those wanting more details, this part of the documentation describes curriculum, API, and development." +msgstr "" + +#: ../../../README.rst:312 +msgid "`Talk: Give the Gift of Python`_" +msgstr "" + +#: ../../../README.rst:313 +msgid "`Free Python Games Curriculum`_" +msgstr "" + +#: ../../../README.rst:314 +msgid "`Free Python Games API Reference`_" +msgstr "" + +#: ../../../README.rst:315 +msgid "`Free Python Games Development`_" +msgstr "" + +#: ../../../README.rst:324 +msgid "References" +msgstr "" + +#: ../../../README.rst:326 +msgid "`Free Python Games Documentation`_" +msgstr "" + +#: ../../../README.rst:327 +msgid "`Free Python Games at PyPI`_" +msgstr "" + +#: ../../../README.rst:328 +msgid "`Free Python Games at GitHub`_" +msgstr "" + +#: ../../../README.rst:329 +msgid "`Free Python Games Issue Tracker`_" +msgstr "" + +#: ../../../README.rst:338 +msgid "Free Python Games License" +msgstr "" + +#: ../../../README.rst:340 +msgid "Copyright 2017-2020 Grant Jenks" +msgstr "" + +#: ../../../README.rst:342 +msgid "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at" +msgstr "" + +#: ../../../README.rst:346 +msgid "http://www.apache.org/licenses/LICENSE-2.0" +msgstr "" + +#: ../../../README.rst:348 +msgid "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." +msgstr "" + +#: ../../life.rst:4 +msgid "Game of Life simulation." +msgstr "" + +#: ../../maze.rst:4 +msgid "Maze, move from one side to another." +msgstr "" + +#: ../../memory.rst:4 +msgid "Memory, puzzle game of number pairs." +msgstr "" + +#: ../../pacman.rst:4 +msgid "Pacman, classic arcade game." +msgstr "" + +#: ../../paint.rst:4 +msgid "Paint, for drawing shapes." +msgstr "" + +#: ../../pong.rst:4 +msgid "Pong, classic arcade game." +msgstr "" + +#: ../../simonsays.rst:4 +msgid "A game of watching and recalling patterns." +msgstr "" + +#: ../../snake.rst:4 +msgid "Snake, classic arcade game." +msgstr "" + +#: ../../tictactoe.rst:4 +msgid "A paper-and-pencil game for two players." +msgstr "" + +#: ../../tiles.rst:4 +msgid "Tiles, number swapping game." +msgstr "" + +#: ../../tron.rst:4 +msgid "Tron, classic arcade game." +msgstr "" diff --git a/docs/locale/sphinx.pot b/docs/locale/sphinx.pot new file mode 100644 index 00000000..820f893b --- /dev/null +++ b/docs/locale/sphinx.pot @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-04-18 17:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../_templates/gumroad.html:1 +msgid "Donate" +msgstr "" + +#: ../../_templates/gumroad.html:2 +msgid "If you or your organization uses Free Games, consider donating:" +msgstr "" + +#: ../../_templates/gumroad.html:4 +msgid "Donate to Free Python Games" +msgstr "" + +#: ../../_templates/pagetoc.html:11 +msgid "Contents" +msgstr "" + +#: ../../_templates/search.html:14 +#: ../../_templates/search.html:17 +msgid "Search" +msgstr "" diff --git a/docs/requirements-doc.txt b/docs/requirements-doc.txt new file mode 100644 index 00000000..1054d912 --- /dev/null +++ b/docs/requirements-doc.txt @@ -0,0 +1,2 @@ +sphinx +sphinx-intl From b3ad91e3de9952eb3f4c9e6d0c8223fa68c91e47 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Tue, 24 Aug 2021 20:53:28 -0300 Subject: [PATCH 02/47] Update Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit alterando para português brasileiro --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index b7b6f541..70c4e5a7 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -16,7 +16,7 @@ help: .PHONY: help Makefile update-po update-po: pot - $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(O) + $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" -l pt_BR pot: gettext @cp $(BUILDDIR)/gettext/{docs,sphinx}.pot locale/ From e7092a0d1f70d6e2025ffddf822feb359f917fe2 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Tue, 24 Aug 2021 21:06:51 -0300 Subject: [PATCH 03/47] Update conf.py desativando o gettext compact --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index b7de4ca9..eeae7b6e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -202,4 +202,4 @@ # Gettext / i18n locale_dirs = ['locale/'] -gettext_compact = 'docs' +gettext_compact = False From e4ddc389eda0d01359a695db62835d705c7db503 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Tue, 24 Aug 2021 21:09:25 -0300 Subject: [PATCH 04/47] Update Makefile Separando o comando em duas linhas --- docs/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 70c4e5a7..e2d76e7e 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -19,7 +19,8 @@ update-po: pot $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" -l pt_BR pot: gettext - @cp $(BUILDDIR)/gettext/{docs,sphinx}.pot locale/ + @cp $(BUILDDIR)/gettext/docs.pot locale/ + @cp $(BUILDDIR)/gettext/sphinx.pot locale/ %-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) %-translated: From 04201dd850b455644d809f0b726fbbec702c411b Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Tue, 24 Aug 2021 21:27:30 -0300 Subject: [PATCH 05/47] Update Makefile Atualizando para python3 --- docs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index e2d76e7e..e00766bb 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -3,8 +3,8 @@ # You can set these variables from the command line. SPHINXOPTS = -SPHINXBUILD = python -msphinx -SPHINXINTL = python -msphinx_intl +SPHINXBUILD = python3 -msphinx +SPHINXINTL = python3 -msphinx_intl SPHINXPROJ = FreeGames SOURCEDIR = . BUILDDIR = _build From 024d0c2ecd9a7c7df9137dccaa1845d45e4f49c4 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 25 Aug 2021 14:38:38 -0300 Subject: [PATCH 06/47] Update Makefile Mudando o comando para gerar os aquivos .pot --- docs/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index e00766bb..15c1c76a 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -19,8 +19,7 @@ update-po: pot $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" -l pt_BR pot: gettext - @cp $(BUILDDIR)/gettext/docs.pot locale/ - @cp $(BUILDDIR)/gettext/sphinx.pot locale/ + @cp $(BUILDDIR)/gettext/*.pot locale/ %-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) %-translated: From 0a5d48808be9a31e3a47a8a474ad24ac2fc4de4e Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 25 Aug 2021 14:51:35 -0300 Subject: [PATCH 07/47] Arquivos .po gerados MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit os arquivos são gerados com o comando "make update-po". É preciso criar a pasta manualmente. --- docs/locale/pt_BR/LC_MESSAGES/ant.po | 28 + docs/locale/pt_BR/LC_MESSAGES/api.po | 121 +++++ docs/locale/pt_BR/LC_MESSAGES/bagels.po | 28 + docs/locale/pt_BR/LC_MESSAGES/bounce.po | 28 + docs/locale/pt_BR/LC_MESSAGES/cannon.po | 28 + docs/locale/pt_BR/LC_MESSAGES/connect.po | 28 + docs/locale/pt_BR/LC_MESSAGES/crypto.po | 28 + docs/locale/pt_BR/LC_MESSAGES/curriculum.po | 505 +++++++++++++++++ docs/locale/pt_BR/LC_MESSAGES/development.po | 165 ++++++ docs/locale/pt_BR/LC_MESSAGES/fidget.po | 28 + docs/locale/pt_BR/LC_MESSAGES/flappy.po | 28 + .../pt_BR/LC_MESSAGES/give-gift-python.po | 212 ++++++++ docs/locale/pt_BR/LC_MESSAGES/guess.po | 28 + docs/locale/pt_BR/LC_MESSAGES/index.po | 507 ++++++++++++++++++ docs/locale/pt_BR/LC_MESSAGES/life.po | 28 + docs/locale/pt_BR/LC_MESSAGES/maze.po | 28 + docs/locale/pt_BR/LC_MESSAGES/memory.po | 28 + docs/locale/pt_BR/LC_MESSAGES/pacman.po | 28 + docs/locale/pt_BR/LC_MESSAGES/paint.po | 28 + docs/locale/pt_BR/LC_MESSAGES/pong.po | 28 + docs/locale/pt_BR/LC_MESSAGES/simonsays.po | 28 + docs/locale/pt_BR/LC_MESSAGES/snake.po | 28 + docs/locale/pt_BR/LC_MESSAGES/sphinx.po | 40 ++ docs/locale/pt_BR/LC_MESSAGES/tictactoe.po | 28 + docs/locale/pt_BR/LC_MESSAGES/tiles.po | 28 + docs/locale/pt_BR/LC_MESSAGES/tron.po | 28 + 26 files changed, 2110 insertions(+) create mode 100644 docs/locale/pt_BR/LC_MESSAGES/ant.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/api.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/bagels.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/bounce.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/cannon.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/connect.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/crypto.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/curriculum.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/development.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/fidget.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/flappy.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/guess.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/index.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/life.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/maze.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/memory.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/pacman.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/paint.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/pong.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/simonsays.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/snake.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/sphinx.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/tictactoe.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/tiles.po create mode 100644 docs/locale/pt_BR/LC_MESSAGES/tron.po diff --git a/docs/locale/pt_BR/LC_MESSAGES/ant.po b/docs/locale/pt_BR/LC_MESSAGES/ant.po new file mode 100644 index 00000000..10ce7d57 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/ant.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../ant.rst:2 +msgid "Ant" +msgstr "" + +#: ../../ant.rst:4 +msgid "Ant, simple animation demo." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/api.po b/docs/locale/pt_BR/LC_MESSAGES/api.po new file mode 100644 index 00000000..5d143791 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/api.po @@ -0,0 +1,121 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../api.rst:2 +msgid "Free Python Games API Reference" +msgstr "" + +#: ../../api.rst:4 +msgid "" +":doc:`Free Python Games ` includes a few helpful utilities. The " +"best way to expose beginners to these functions is with Python's built-in" +" help function. Learners should be able to understand and write the " +"drawing functions themselves." +msgstr "" + +#: ../../api.rst:13 +msgid "Drawing Functions" +msgstr "" + +#: freegames.utils.line:1 of +msgid "Draw line from `(a, b)` to `(x, y)`." +msgstr "" + +#: freegames.utils.square:1 of +msgid "Draw square at `(x, y)` with side length `size` and fill color `name`." +msgstr "" + +#: freegames.utils.square:3 of +msgid "The square is oriented so the bottom left corner is at (x, y)." +msgstr "" + +#: ../../api.rst:20 +msgid "Helper Functions" +msgstr "" + +#: freegames.utils.floor:1 of +msgid "Floor of `value` given `size` and `offset`." +msgstr "" + +#: freegames.utils.floor:3 of +msgid "The floor function is best understood with a diagram of the number line::" +msgstr "" + +#: freegames.utils.floor:8 of +msgid "" +"The number line shown has offset 200 denoted by the left-hand tick mark " +"at -200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. " +"The floor of a value is the left-hand tick mark of the range where it " +"lies. So for the points show above: ``floor(x)`` is -200, ``floor(y)`` is" +" 0, and ``floor(z)`` is 100." +msgstr "" + +#: freegames.utils.path:1 of +msgid "Return full path to `filename` in freegames module." +msgstr "" + +#: ../../api.rst:27 +msgid "Vectors" +msgstr "" + +#: freegames.utils.vector:1 of +msgid "Two-dimensional vector." +msgstr "" + +#: freegames.utils.vector:3 of +msgid "Vectors can be modified in-place." +msgstr "" + +#: freegames.utils.vector.__init__:1 of +msgid "Initialize vector with coordinates: x, y." +msgstr "" + +#: freegames.utils.vector.__add__:1 of +msgid "v.__add__(w) -> v + w" +msgstr "" + +#: freegames.utils.vector.__mul__:1 of +msgid "v.__mul__(w) -> v * w" +msgstr "" + +#: freegames.utils.vector.copy:1 of +msgid "Return copy of vector." +msgstr "" + +#: freegames.utils.vector.move:1 of +msgid "Move vector by other (in-place)." +msgstr "" + +#: freegames.utils.vector.rotate:1 of +msgid "Rotate vector counter-clockwise by angle (in-place)." +msgstr "" + +#: freegames.utils.vector.scale:1 of +msgid "Scale vector by other (in-place)." +msgstr "" + +#: freegames.vector.x:1 of +msgid "X-axis component of vector." +msgstr "" + +#: freegames.vector.y:1 of +msgid "Y-axis component of vector." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/bagels.po b/docs/locale/pt_BR/LC_MESSAGES/bagels.po new file mode 100644 index 00000000..51c2afc1 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/bagels.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../bagels.rst:2 +msgid "Bagels" +msgstr "" + +#: ../../bagels.rst:4 +msgid "Bagels, a number puzzle game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/bounce.po b/docs/locale/pt_BR/LC_MESSAGES/bounce.po new file mode 100644 index 00000000..c8d4fe54 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/bounce.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../bounce.rst:2 +msgid "Bounce" +msgstr "" + +#: ../../bounce.rst:4 +msgid "Bounce, a simple animation demo." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/cannon.po b/docs/locale/pt_BR/LC_MESSAGES/cannon.po new file mode 100644 index 00000000..21439876 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/cannon.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../cannon.rst:2 +msgid "Cannon" +msgstr "" + +#: ../../cannon.rst:4 +msgid "Cannon, hitting targets with projectiles." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/connect.po b/docs/locale/pt_BR/LC_MESSAGES/connect.po new file mode 100644 index 00000000..21a9ee18 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/connect.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../connect.rst:2 +msgid "Connect Four" +msgstr "" + +#: ../../connect.rst:4 +msgid "Connect Four, two-player connection game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/crypto.po b/docs/locale/pt_BR/LC_MESSAGES/crypto.po new file mode 100644 index 00000000..5aa42d53 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/crypto.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../crypto.rst:2 +msgid "Crypto" +msgstr "" + +#: ../../crypto.rst:4 +msgid "Crypto: tool for encrypting and decrypting messages." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/curriculum.po b/docs/locale/pt_BR/LC_MESSAGES/curriculum.po new file mode 100644 index 00000000..5d0de036 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/curriculum.po @@ -0,0 +1,505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../curriculum.rst:2 +msgid "Free Python Games Curriculum" +msgstr "" + +#: ../../curriculum.rst:4 +msgid "" +"What follows are notes for a week-long curriculum developed for Maker " +"Camp at The River Church Community. Maker Camp was a summer day camp for " +"Middle School students in the California Bay Area." +msgstr "" + +#: ../../curriculum.rst:8 +msgid "Each game has exercises at the top." +msgstr "" + +#: ../../curriculum.rst:9 +msgid "Visualize code with http://pythontutor.com" +msgstr "" + +#: ../../curriculum.rst:10 +msgid "Extras: $ python3 -m turtledemo" +msgstr "" + +#: ../../curriculum.rst:14 +msgid "Day 1" +msgstr "" + +#: ../../curriculum.rst:16 +msgid "What is a computer? Calculator + Clock." +msgstr "" + +#: ../../curriculum.rst:17 +msgid "Discuss Alan Turing and Turing Machines." +msgstr "" + +#: ../../curriculum.rst:18 +msgid "Discuss John Von Neumann and Von Neumann Machines." +msgstr "" + +#: ../../curriculum.rst:19 +msgid "What is a program? Computer Recipe." +msgstr "" + +#: ../../curriculum.rst:20 +msgid "Introduce Terminal, black background, give the computer commands." +msgstr "" + +#: ../../curriculum.rst:21 +msgid "Introduce Python Shell, white background, write Python statements." +msgstr "" + +#: ../../curriculum.rst:22 +msgid "Activity: connect and decorate computers." +msgstr "" + +#: ../../curriculum.rst:23 +msgid "Problem solving: divide and conquer." +msgstr "" + +#: ../../curriculum.rst:24 +msgid "Statements: assignment, if/elif/else, while, import" +msgstr "" + +#: ../../curriculum.rst:25 +msgid "Data types: int, str" +msgstr "" + +#: ../../curriculum.rst:26 +msgid "Functions: print, help, int" +msgstr "" + +#: ../../curriculum.rst:27 +msgid "Modules: random" +msgstr "" + +#: ../../curriculum.rst:30 ../../curriculum.rst:70 ../../curriculum.rst:115 +#: ../../curriculum.rst:157 ../../curriculum.rst:184 +msgid "Games" +msgstr "" + +#: ../../curriculum.rst:32 +msgid ":doc:`guess`.py - Guess number within range." +msgstr "" + +#: ../../curriculum.rst:34 +msgid "Explain: from random import randint" +msgstr "" + +#: ../../curriculum.rst:35 +msgid "randint(...)" +msgstr "" + +#: ../../curriculum.rst:36 +msgid "Variables" +msgstr "" + +#: ../../curriculum.rst:37 +msgid "Equality" +msgstr "" + +#: ../../curriculum.rst:38 +msgid "print(...)" +msgstr "" + +#: ../../curriculum.rst:39 +msgid "Inequality" +msgstr "" + +#: ../../curriculum.rst:40 +msgid "input(...)" +msgstr "" + +#: ../../curriculum.rst:41 +msgid "int(...)" +msgstr "" + +#: ../../curriculum.rst:42 +msgid "Increase range to 1,000 and guess the number." +msgstr "" + +#: ../../curriculum.rst:43 +msgid "Discuss method of guessing. That's an algorithm!" +msgstr "" + +#: ../../curriculum.rst:45 +msgid ":doc:`snake`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:48 ../../curriculum.rst:97 ../../curriculum.rst:139 +#: ../../curriculum.rst:166 ../../curriculum.rst:191 +msgid "Bible Story" +msgstr "" + +#: ../../curriculum.rst:50 +msgid "Genesis 1 - God the Creator (Creation)" +msgstr "" + +#: ../../curriculum.rst:52 +msgid "What did God do at the beginning?" +msgstr "" + +#: ../../curriculum.rst:53 +msgid "What did God see in creation?" +msgstr "" + +#: ../../curriculum.rst:54 +msgid "What is special about people?" +msgstr "" + +#: ../../curriculum.rst:55 +msgid "Why do we create things?" +msgstr "" + +#: ../../curriculum.rst:59 +msgid "Day 2" +msgstr "" + +#: ../../curriculum.rst:61 +msgid "Activity: Blind partner obstacle course." +msgstr "" + +#: ../../curriculum.rst:62 +msgid "Problem solving: brute-force." +msgstr "" + +#: ../../curriculum.rst:63 +msgid "Famous Christian programmer: Donald Knuth" +msgstr "" + +#: ../../curriculum.rst:64 +msgid "Statements: try/except, for, def" +msgstr "" + +#: ../../curriculum.rst:65 +msgid "Data types: float, bool" +msgstr "" + +#: ../../curriculum.rst:66 +msgid "Functions: type, dir, str, ord, chr" +msgstr "" + +#: ../../curriculum.rst:67 +msgid "Modules: turtle" +msgstr "" + +#: ../../curriculum.rst:72 +msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages." +msgstr "" + +#: ../../curriculum.rst:74 +msgid "ord function and chr function" +msgstr "" + +#: ../../curriculum.rst:75 +msgid "modulo operator" +msgstr "" + +#: ../../curriculum.rst:76 +msgid "Write decode function" +msgstr "" + +#: ../../curriculum.rst:77 +msgid "Encrypt numbers" +msgstr "" + +#: ../../curriculum.rst:79 +msgid ":doc:`paint`.py - Draw shapes." +msgstr "" + +#: ../../curriculum.rst:81 +msgid "Draw line" +msgstr "" + +#: ../../curriculum.rst:82 +msgid "Draw square" +msgstr "" + +#: ../../curriculum.rst:83 +msgid "for-statement, range function." +msgstr "" + +#: ../../curriculum.rst:84 +msgid "Draw five-pointed star: forward(50); right(144) (x5)" +msgstr "" + +#: ../../curriculum.rst:85 +msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)" +msgstr "" + +#: ../../curriculum.rst:86 +msgid "help(...)" +msgstr "" + +#: ../../curriculum.rst:87 +msgid "undo(...)" +msgstr "" + +#: ../../curriculum.rst:88 +msgid "def-statement, refactor code to star function" +msgstr "" + +#: ../../curriculum.rst:89 +msgid "color('green'); color('blue', 'yellow')" +msgstr "" + +#: ../../curriculum.rst:90 +msgid "begin_fill(); end_fill()" +msgstr "" + +#: ../../curriculum.rst:91 +msgid "width function" +msgstr "" + +#: ../../curriculum.rst:92 +msgid "Write polygon(sides, length) function" +msgstr "" + +#: ../../curriculum.rst:94 +msgid ":doc:`flappy`.py - Flappy Bird inspired game." +msgstr "" + +#: ../../curriculum.rst:99 +msgid "Genesis 6:5-22 - God the Engineer (Noah)" +msgstr "" + +#: ../../curriculum.rst:101 +msgid "Why did God regret making people?" +msgstr "" + +#: ../../curriculum.rst:102 +msgid "How was Noah different?" +msgstr "" + +#: ../../curriculum.rst:103 +msgid "What was God's plan?" +msgstr "" + +#: ../../curriculum.rst:104 +msgid "How are we washed today?" +msgstr "" + +#: ../../curriculum.rst:108 +msgid "Day 3" +msgstr "" + +#: ../../curriculum.rst:110 +msgid "Activity: Simon Says" +msgstr "" + +#: ../../curriculum.rst:111 +msgid "Famous Christian programmer: Fred Brooks" +msgstr "" + +#: ../../curriculum.rst:112 +msgid "Functions: onscreenclick, onkey, ontimer" +msgstr "" + +#: ../../curriculum.rst:117 +msgid ":doc:`bagels`.py - Digit guessing puzzle." +msgstr "" + +#: ../../curriculum.rst:118 +msgid "Animation" +msgstr "" + +#: ../../curriculum.rst:120 +msgid "Draw arc: circle(100, 90)" +msgstr "" + +#: ../../curriculum.rst:121 +msgid "flower(...)" +msgstr "" + +#: ../../curriculum.rst:122 +msgid "Draw flower and rotate" +msgstr "" + +#: ../../curriculum.rst:123 +msgid "ontimer(...)" +msgstr "" + +#: ../../curriculum.rst:124 +msgid "hideturtle(); tracer(False); polygon(4, 200); update()" +msgstr "" + +#: ../../curriculum.rst:126 +msgid ":doc:`tictactoe`.py - Tic-tac-toe." +msgstr "" + +#: ../../curriculum.rst:128 +msgid "line(...)" +msgstr "" + +#: ../../curriculum.rst:129 +msgid "grid(...)" +msgstr "" + +#: ../../curriculum.rst:130 +msgid "drawx(...)" +msgstr "" + +#: ../../curriculum.rst:131 +msgid "drawo(...)" +msgstr "" + +#: ../../curriculum.rst:132 +msgid "floor(...)" +msgstr "" + +#: ../../curriculum.rst:133 +msgid "onscreenclick(goto)" +msgstr "" + +#: ../../curriculum.rst:135 +msgid ":doc:`simonsays`.py - Simon Says" +msgstr "" + +#: ../../curriculum.rst:136 +msgid ":doc:`cannon`.py - Hitting targets with projectiles." +msgstr "" + +#: ../../curriculum.rst:141 +msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")" +msgstr "" + +#: ../../curriculum.rst:143 +msgid "What did Isaiah say would happen?" +msgstr "" + +#: ../../curriculum.rst:144 +msgid "What did John the Baptist say would happen?" +msgstr "" + +#: ../../curriculum.rst:145 +msgid "What did God say about Jesus? When?" +msgstr "" + +#: ../../curriculum.rst:146 +msgid "How did Jesus give his disciples new jobs?" +msgstr "" + +#: ../../curriculum.rst:150 +msgid "Day 4" +msgstr "" + +#: ../../curriculum.rst:152 +msgid "Activity: Collage of concepts." +msgstr "" + +#: ../../curriculum.rst:153 +msgid "Famous Christian programmer: Larry Wall" +msgstr "" + +#: ../../curriculum.rst:154 +msgid "Data types: list, dict, vector" +msgstr "" + +#: ../../curriculum.rst:159 +msgid ":doc:`bounce`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:160 +msgid ":doc:`pong`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:161 +msgid ":doc:`ant`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:162 +msgid ":doc:`tron`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:163 +msgid ":doc:`tiles`.py - Puzzle game of number shuffling." +msgstr "" + +#: ../../curriculum.rst:168 +msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)" +msgstr "" + +#: ../../curriculum.rst:170 +msgid "What does Jesus tell the disciples?" +msgstr "" + +#: ../../curriculum.rst:171 +msgid "What does the man tell the Pharisees?" +msgstr "" + +#: ../../curriculum.rst:172 +msgid "What does the man believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:173 +msgid "What do you believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:177 +msgid "Day 5" +msgstr "" + +#: ../../curriculum.rst:179 +msgid "Activity: Make or modify your own game." +msgstr "" + +#: ../../curriculum.rst:180 +msgid "Famous Christian programmer: Jon Skeet" +msgstr "" + +#: ../../curriculum.rst:181 +msgid "Answer: What next?" +msgstr "" + +#: ../../curriculum.rst:186 +msgid ":doc:`connect`.py - Connect Four" +msgstr "" + +#: ../../curriculum.rst:187 +msgid ":doc:`memory`.py - Puzzle game of number pairs." +msgstr "" + +#: ../../curriculum.rst:188 +msgid ":doc:`pacman`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:193 +msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)" +msgstr "" + +#: ../../curriculum.rst:195 +msgid "What does God make? When?" +msgstr "" + +#: ../../curriculum.rst:196 +msgid "Who is the Lamb and the Bride?" +msgstr "" + +#: ../../curriculum.rst:197 +msgid "What is special about the city?" +msgstr "" + +#: ../../curriculum.rst:198 +msgid "How can we live in the Holy City?" +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/development.po b/docs/locale/pt_BR/LC_MESSAGES/development.po new file mode 100644 index 00000000..2dd074d9 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/development.po @@ -0,0 +1,165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../development.rst:2 +msgid "Free Python Games Development" +msgstr "" + +#: ../../development.rst:4 +msgid "" +":doc:`Free Python Games ` development is lead by Grant Jenks " +"." +msgstr "" + +#: ../../development.rst:8 +msgid "Collaborators Welcome" +msgstr "" + +#: ../../development.rst:10 +msgid "Search issues or open a new issue to start a discussion around a bug." +msgstr "" + +#: ../../development.rst:11 +msgid "Fork the `GitHub repository`_ and make your changes in a new branch." +msgstr "" + +#: ../../development.rst:12 +msgid "Write a test which shows the bug was fixed." +msgstr "" + +#: ../../development.rst:13 +msgid "" +"Send a pull request and message the development lead until its merged and" +" published." +msgstr "" + +#: ../../development.rst:19 +msgid "Requests for Contributions" +msgstr "" + +#: ../../development.rst:21 +msgid "Simplifications to existing games." +msgstr "" + +#: ../../development.rst:22 +msgid "Refactoring to simplify games." +msgstr "" + +#: ../../development.rst:23 +msgid "Improved documentation." +msgstr "" + +#: ../../development.rst:24 +msgid "Additional games. Requirements for new games:" +msgstr "" + +#: ../../development.rst:26 +msgid "Fun to play." +msgstr "" + +#: ../../development.rst:27 +msgid "Matching code style." +msgstr "" + +#: ../../development.rst:28 +msgid "Limited Python feature set." +msgstr "" + +#: ../../development.rst:29 +msgid "Short (less than 100 lines of code)." +msgstr "" + +#: ../../development.rst:32 +msgid "Get the Code" +msgstr "" + +#: ../../development.rst:34 +msgid "" +":doc:`Free Python Games ` is actively developed in a `GitHub " +"repository`_." +msgstr "" + +#: ../../development.rst:37 +msgid "You can either clone the public repository::" +msgstr "" + +#: ../../development.rst:41 +msgid "" +"Download the `tarball `_::" +msgstr "" + +#: ../../development.rst:45 +msgid "" +"Or, download the `zipball `_::" +msgstr "" + +#: ../../development.rst:50 +msgid "Installing Dependencies" +msgstr "" + +#: ../../development.rst:52 +msgid "" +"Install development dependencies with `pip `_::" +msgstr "" + +#: ../../development.rst:56 +msgid "" +"All packages for running tests and building documentation will be " +"installed." +msgstr "" + +#: ../../development.rst:59 +msgid "Testing" +msgstr "" + +#: ../../development.rst:61 +msgid "" +":doc:`Free Python Games ` currently tests against three versions " +"of Python:" +msgstr "" + +#: ../../development.rst:64 +msgid "CPython 3.4" +msgstr "" + +#: ../../development.rst:65 +msgid "CPython 3.5" +msgstr "" + +#: ../../development.rst:66 +msgid "CPython 3.6" +msgstr "" + +#: ../../development.rst:68 +msgid "" +"Testing uses `tox `_. If you don't want" +" to install all the development requirements, then, after downloading, " +"you can simply run::" +msgstr "" + +#: ../../development.rst:74 +msgid "" +"The test argument to setup.py will download a minimal testing " +"infrastructure and run the tests." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/fidget.po b/docs/locale/pt_BR/LC_MESSAGES/fidget.po new file mode 100644 index 00000000..c3f289db --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/fidget.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../fidget.rst:2 +msgid "Fidget" +msgstr "" + +#: ../../fidget.rst:4 +msgid "Fidget, inspired by fidget spinners." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/flappy.po b/docs/locale/pt_BR/LC_MESSAGES/flappy.po new file mode 100644 index 00000000..e45bcaf2 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/flappy.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../flappy.rst:2 +msgid "Flappy" +msgstr "" + +#: ../../flappy.rst:4 +msgid "Flappy, game inspired by Flappy Bird." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po b/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po new file mode 100644 index 00000000..d0e75df4 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/give-gift-python.po @@ -0,0 +1,212 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../give-gift-python.rst:2 +msgid "Give the Gift of Python" +msgstr "" + +#: ../../give-gift-python.rst:4 +msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*" +msgstr "" + +#: ../../give-gift-python.rst:7 +msgid "Who am I?" +msgstr "" + +#: ../../give-gift-python.rst:9 +msgid "Python programmer." +msgstr "" + +#: ../../give-gift-python.rst:10 +msgid "Hundreds of hours of classroom instruction." +msgstr "" + +#: ../../give-gift-python.rst:13 +msgid "What we need?" +msgstr "" + +#: ../../give-gift-python.rst:15 +msgid "Interest!" +msgstr "" + +#: ../../give-gift-python.rst:16 +msgid "Typing skills." +msgstr "" + +#: ../../give-gift-python.rst:17 +msgid "Math: Arithmetic, Algebra, Geometry" +msgstr "" + +#: ../../give-gift-python.rst:20 +msgid "Setup" +msgstr "" + +#: ../../give-gift-python.rst:22 +msgid "Install Python, https://www.python.org/" +msgstr "" + +#: ../../give-gift-python.rst:23 +msgid "Run IDLE, ``$ python -m idlelib.idle``" +msgstr "" + +#: ../../give-gift-python.rst:24 +msgid "Write code." +msgstr "" + +#: ../../give-gift-python.rst:27 +msgid "Open the Turtle Window" +msgstr "" + +#: ../../give-gift-python.rst:35 +msgid "Commands" +msgstr "" + +#: ../../give-gift-python.rst:49 +msgid "Loops" +msgstr "" + +#: ../../give-gift-python.rst:59 +msgid "Shapes" +msgstr "" + +#: ../../give-gift-python.rst:71 +msgid "Dots" +msgstr "" + +#: ../../give-gift-python.rst:79 +msgid "Functions" +msgstr "" + +#: ../../give-gift-python.rst:93 +msgid "Colors" +msgstr "" + +#: ../../give-gift-python.rst:102 +msgid "Locations" +msgstr "" + +#: ../../give-gift-python.rst:113 +msgid "Inputs" +msgstr "" + +#: ../../give-gift-python.rst:115 +msgid "listen" +msgstr "" + +#: ../../give-gift-python.rst:116 +msgid "onclick" +msgstr "" + +#: ../../give-gift-python.rst:117 +msgid "onkey" +msgstr "" + +#: ../../give-gift-python.rst:120 +msgid "Animation" +msgstr "" + +#: ../../give-gift-python.rst:122 +msgid "ontimer" +msgstr "" + +#: ../../give-gift-python.rst:123 +msgid "hideturtle" +msgstr "" + +#: ../../give-gift-python.rst:124 +msgid "tracer" +msgstr "" + +#: ../../give-gift-python.rst:125 +msgid "clear" +msgstr "" + +#: ../../give-gift-python.rst:126 +msgid "update" +msgstr "" + +#: ../../give-gift-python.rst:139 +msgid "Tips" +msgstr "" + +#: ../../give-gift-python.rst:141 +msgid "help(...)" +msgstr "" + +#: ../../give-gift-python.rst:142 +msgid "undo(...)" +msgstr "" + +#: ../../give-gift-python.rst:143 +msgid "Embrace copy/paste" +msgstr "" + +#: ../../give-gift-python.rst:144 +msgid "Close window/reset()" +msgstr "" + +#: ../../give-gift-python.rst:147 +msgid "Activities" +msgstr "" + +#: ../../give-gift-python.rst:149 +msgid "Spell your name." +msgstr "" + +#: ../../give-gift-python.rst:150 +msgid "``python -m pip install freegames``" +msgstr "" + +#: ../../give-gift-python.rst:153 +msgid "Notes" +msgstr "" + +#: ../../give-gift-python.rst:155 +msgid "Start simple! Start easy! Start plain!" +msgstr "" + +#: ../../give-gift-python.rst:156 +msgid "Focus on fun! No PEP8. No Pylint." +msgstr "" + +#: ../../give-gift-python.rst:157 +msgid "Make it readable! Say it aloud." +msgstr "" + +#: ../../give-gift-python.rst:158 +msgid "No special shells! No IPython." +msgstr "" + +#: ../../give-gift-python.rst:159 +msgid "Show them mistakes! Red is your favorite color!" +msgstr "" + +#: ../../give-gift-python.rst:160 +msgid "No virtual environments!" +msgstr "" + +#: ../../give-gift-python.rst:161 +msgid "If they're not ready, don't push them!" +msgstr "" + +#: ../../give-gift-python.rst:162 +msgid "No dunder methods or attributes! No __name__ or __main__." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/guess.po b/docs/locale/pt_BR/LC_MESSAGES/guess.po new file mode 100644 index 00000000..6c7b2be8 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/guess.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../guess.rst:2 +msgid "Guess" +msgstr "" + +#: ../../guess.rst:4 +msgid "Guess a number within a range." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/index.po b/docs/locale/pt_BR/LC_MESSAGES/index.po new file mode 100644 index 00000000..b431ba6a --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/index.po @@ -0,0 +1,507 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../../README.rst:2 +msgid "Free Python Games" +msgstr "" + +#: ../../../README.rst:4 +msgid "" +"`Free Python Games`_ is an Apache2 licensed collection of free Python " +"games intended for education and fun. The games are written in simple " +"Python code and designed for experimentation and changes. Simplified " +"versions of several classic arcade games are included." +msgstr "" + +#: ../../../README.rst:9 +msgid "" +"Python is one of the top-five most popular programming languages in the " +"world and available for free from `Python.org " +"`_. Python includes an extensive Standard " +"Library distributed with your installation. The Standard Library has a " +"module called Turtle which is a popular way to introduce programming to " +"kids. Turtle was part of the original Logo programming language developed" +" by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free " +"Python Games`_ are implemented using Python and its Turtle module." +msgstr "" + +#: ../../../README.rst:17 +msgid "" +"Starting in 2012, `Free Python Games`_ began as an after school program " +"to teach programming to inner-city youth. The goal was to have fun as " +"much as it was to learn. Since then the games have been improved and used" +" in a variety of settings ranging from classrooms to summer day-camps." +msgstr "" + +#: ../../../README.rst:22 +msgid "" +"The games run anywhere Python can be installed which includes desktop " +"computers running Windows, Mac OS, or Linux and older or low-power " +"hardware such as the Raspberry Pi. Kids across the United States in " +"grades 6th-12th have enjoyed learning about topics such as encryption and" +" projectile motion through games." +msgstr "" + +#: ../../../README.rst:27 +msgid "" +"Each game is entirely independent from the others and includes comments " +"along with a list of exercises to work through with students. Creativity " +"and flexibility is important. There is no right or wrong way to implement" +" a new feature or behavior! You never know which games students will " +"engage with best." +msgstr "" + +#: ../../../README.rst:36 +msgid "Testimonials" +msgstr "" + +#: ../../../README.rst:38 +msgid "" +"*\"I love Free Python Games because the games are fun and they're easy to" +" understand and change. I like making my own games now.\"*" +msgstr "" + +#: ../../../README.rst:41 +msgid "-- Luke Martin, Student" +msgstr "" + +#: ../../../README.rst:43 +msgid "" +"*\"Free Python Games inspired and introduced a new hobby to our son. " +"Thank you so much for exposing him to coding. He is having so much " +"fun!\"*" +msgstr "" + +#: ../../../README.rst:46 +msgid "-- Mary Lai, Parent" +msgstr "" + +#: ../../../README.rst:48 +msgid "" +"*\"Free Python Games are great because they really engage students and " +"let them learn at their own pace.\"*" +msgstr "" + +#: ../../../README.rst:51 +msgid "-- Rick Schertle, Teacher, Steindorf STEAM School" +msgstr "" + +#: ../../../README.rst:53 +msgid "" +"*\"Free Python Games combines play and learning in a flexible environment" +" that reduces the stress of a difficult topic like programming.\"*" +msgstr "" + +#: ../../../README.rst:56 +msgid "-- Brett Bymaster, Youth Pastor, The River Church Community" +msgstr "" + +#: ../../../README.rst:58 +msgid "" +"*\"Free Python Games is great for students, is highly organized and " +"flexible, and seeks to unleash inquiry and understanding.\"*" +msgstr "" + +#: ../../../README.rst:61 +msgid "-- Terri Furton, Principal, Downtown College Prep" +msgstr "" + +#: ../../../README.rst:65 +msgid "Features" +msgstr "" + +#: ../../../README.rst:67 +msgid "Fun to play!" +msgstr "" + +#: ../../../README.rst:68 +msgid "Simple Python code" +msgstr "" + +#: ../../../README.rst:69 +msgid "Easy to install" +msgstr "" + +#: ../../../README.rst:70 +msgid "Designed for education" +msgstr "" + +#: ../../../README.rst:71 +msgid "Depends only on the Python Standard Library" +msgstr "" + +#: ../../../README.rst:72 +msgid "Used in hundreds of hours of classroom instruction" +msgstr "" + +#: ../../../README.rst:73 +msgid "Fully Documented" +msgstr "" + +#: ../../../README.rst:74 +msgid "100% Test Coverage" +msgstr "" + +#: ../../../README.rst:75 +msgid "Developed on Python 3.7" +msgstr "" + +#: ../../../README.rst:76 +msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" +msgstr "" + +#: ../../../README.rst:77 +msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" +msgstr "" + +#: ../../../README.rst:78 +msgid "Tested using Travis CI and AppVeyor CI" +msgstr "" + +#: ../../../README.rst:88 +msgid "Quickstart" +msgstr "" + +#: ../../../README.rst:90 +msgid "" +"Installing Free Python Games is simple with `pip " +"`_::" +msgstr "" + +#: ../../../README.rst:95 +msgid "" +"Free Python Games supports a command-line interface (CLI). Help for the " +"CLI is available using::" +msgstr "" + +#: ../../../README.rst:100 +msgid "" +"The CLI supports three commands: list, copy, and show. For a list of all " +"games run::" +msgstr "" + +#: ../../../README.rst:105 +msgid "" +"Any of the listed games may be played by executing the Python module from" +" the command-line. To reference the Python module, combine \"freegames\" " +"with the name of the game. For example, to play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:111 +msgid "" +"Games can be modified by copying their source code. The copy command will" +" create a Python file in your local directory which you can edit. For " +"example, to copy and play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:118 +msgid "" +"Python includes a built-in text editor named IDLE which can also execute " +"Python code. To launch the editor and make changes to the \"snake\" game " +"run::" +msgstr "" + +#: ../../../README.rst:123 +msgid "" +"You can also access documentation in the interpreter with Python's built-" +"in help function::" +msgstr "" + +#: ../../../README.rst:131 +msgid "Free Games" +msgstr "" + +#: ../../../README.rst:134 +msgid "Paint" +msgstr "" + +#: ../../../README.rst:136 +msgid "" +"`Paint`_ -- draw lines and shapes on the screen. Click to mark the start " +"of a shape and click again to mark its end. Different shapes and colors " +"can be selected using the keyboard." +msgstr "" + +msgid "Paint Free Python Game" +msgstr "" + +#: ../../../README.rst:146 +msgid "Snake" +msgstr "" + +#: ../../../README.rst:148 +msgid "" +"`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat " +"the green food. Each time the food is consumed, the snake grows one " +"segment longer. Avoid eating yourself or going out of bounds!" +msgstr "" + +msgid "Snake Free Python Game" +msgstr "" + +#: ../../../README.rst:158 +msgid "Pacman" +msgstr "" + +#: ../../../README.rst:160 +msgid "" +"`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat " +"all the white food. Watch out for red ghosts that roam the maze." +msgstr "" + +msgid "Pacman Free Python Game" +msgstr "" + +#: ../../../README.rst:169 +msgid "Cannon" +msgstr "" + +#: ../../../README.rst:171 +msgid "" +"`Cannon`_ -- projectile motion. Click the screen to fire your " +"cannnonball. The cannonball pops blue balloons in its path. Pop all the " +"balloons before they can cross the screen." +msgstr "" + +msgid "Cannon Free Python Game" +msgstr "" + +#: ../../../README.rst:181 +msgid "Connect" +msgstr "" + +#: ../../../README.rst:183 +msgid "" +"`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first " +"player to connect four discs vertically, horizontally, or diagonally " +"wins!" +msgstr "" + +msgid "Connect 4 Free Python Game" +msgstr "" + +#: ../../../README.rst:192 +msgid "Flappy" +msgstr "" + +#: ../../../README.rst:194 +msgid "" +"`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your " +"wings. Watch out for black ravens as you fly across the screen." +msgstr "" + +msgid "Flappy Bird Free Python Game" +msgstr "" + +#: ../../../README.rst:203 +msgid "Memory" +msgstr "" + +#: ../../../README.rst:205 +msgid "" +"`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a " +"number. Match two numbers and the tiles will disappear to reveal an " +"image." +msgstr "" + +msgid "Memory Free Python Game" +msgstr "" + +#: ../../../README.rst:214 +msgid "Pong" +msgstr "" + +#: ../../../README.rst:216 +msgid "" +"`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up " +"and down. The first player to miss the ball loses." +msgstr "" + +msgid "Pong Free Python Game" +msgstr "" + +#: ../../../README.rst:225 +msgid "Simon Says" +msgstr "" + +#: ../../../README.rst:227 +msgid "" +"`Simon Says`_ -- classic memory puzzle game. Click the screen to start. " +"Watch the pattern and then click the tiles in the same order. Each time " +"you get the sequence right the pattern gets one step longer." +msgstr "" + +msgid "Simon Says Free Python Game" +msgstr "" + +#: ../../../README.rst:237 +msgid "Tic Tac Toe" +msgstr "" + +#: ../../../README.rst:239 +msgid "" +"`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. " +"Connect three in a row and you win!" +msgstr "" + +msgid "Tic Tac Toe Free Python Game" +msgstr "" + +#: ../../../README.rst:248 +msgid "Tiles" +msgstr "" + +#: ../../../README.rst:250 +msgid "" +"`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile " +"adjacent to the empty square to swap positions. Can you make the tiles " +"count one to fifteen from left to right and bottom to top?" +msgstr "" + +msgid "Tiles Free Python Game" +msgstr "" + +#: ../../../README.rst:260 +msgid "Tron" +msgstr "" + +#: ../../../README.rst:262 +msgid "" +"`Tron`_ -- classic arcade game. Use the keyboard to change the direction " +"of your Tron player. Avoid touching the line drawn by your opponent." +msgstr "" + +msgid "Tron Free Python Game" +msgstr "" + +#: ../../../README.rst:271 +msgid "Life" +msgstr "" + +#: ../../../README.rst:273 +msgid "" +"`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular " +"automation created in 1970 by John Conway." +msgstr "" + +msgid "Game of Life Free Python Game" +msgstr "" + +#: ../../../README.rst:282 +msgid "Maze" +msgstr "" + +#: ../../../README.rst:284 +msgid "" +"`Maze`_ -- move from one side to another. Inspired by `A Universe in One " +"Line of Code with 10 PRINT`_. Tap the screen to trace a path from one " +"side to another." +msgstr "" + +msgid "Maze Free Python Game" +msgstr "" + +#: ../../../README.rst:295 +msgid "Fidget" +msgstr "" + +#: ../../../README.rst:297 +msgid "" +"`Fidget`_ -- fidget spinner inspired animation. Click the screen to " +"accelerate the fidget spinner." +msgstr "" + +msgid "Fidget Spinner Free Python Game" +msgstr "" + +#: ../../../README.rst:307 +msgid "User Guide" +msgstr "" + +#: ../../../README.rst:309 +msgid "" +"For those wanting more details, this part of the documentation describes " +"curriculum, API, and development." +msgstr "" + +#: ../../../README.rst:312 +msgid "`Talk: Give the Gift of Python`_" +msgstr "" + +#: ../../../README.rst:313 +msgid "`Free Python Games Curriculum`_" +msgstr "" + +#: ../../../README.rst:314 +msgid "`Free Python Games API Reference`_" +msgstr "" + +#: ../../../README.rst:315 +msgid "`Free Python Games Development`_" +msgstr "" + +#: ../../../README.rst:324 +msgid "References" +msgstr "" + +#: ../../../README.rst:326 +msgid "`Free Python Games Documentation`_" +msgstr "" + +#: ../../../README.rst:327 +msgid "`Free Python Games at PyPI`_" +msgstr "" + +#: ../../../README.rst:328 +msgid "`Free Python Games at GitHub`_" +msgstr "" + +#: ../../../README.rst:329 +msgid "`Free Python Games Issue Tracker`_" +msgstr "" + +#: ../../../README.rst:338 +msgid "Free Python Games License" +msgstr "" + +#: ../../../README.rst:340 +msgid "Copyright 2017-2020 Grant Jenks" +msgstr "" + +#: ../../../README.rst:342 +msgid "" +"Licensed under the Apache License, Version 2.0 (the \"License\"); you may" +" not use this file except in compliance with the License. You may obtain" +" a copy of the License at" +msgstr "" + +#: ../../../README.rst:346 +msgid "http://www.apache.org/licenses/LICENSE-2.0" +msgstr "" + +#: ../../../README.rst:348 +msgid "" +"Unless required by applicable law or agreed to in writing, software " +"distributed under the License is distributed on an \"AS IS\" BASIS, " +"WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." +" See the License for the specific language governing permissions and " +"limitations under the License." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/life.po b/docs/locale/pt_BR/LC_MESSAGES/life.po new file mode 100644 index 00000000..1eef9ba2 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/life.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../life.rst:2 +msgid "Life" +msgstr "" + +#: ../../life.rst:4 +msgid "Game of Life simulation." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/maze.po b/docs/locale/pt_BR/LC_MESSAGES/maze.po new file mode 100644 index 00000000..59df0e8e --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/maze.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../maze.rst:2 +msgid "Maze" +msgstr "" + +#: ../../maze.rst:4 +msgid "Maze, move from one side to another." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/memory.po b/docs/locale/pt_BR/LC_MESSAGES/memory.po new file mode 100644 index 00000000..891e017f --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/memory.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../memory.rst:2 +msgid "Memory" +msgstr "" + +#: ../../memory.rst:4 +msgid "Memory, puzzle game of number pairs." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/pacman.po b/docs/locale/pt_BR/LC_MESSAGES/pacman.po new file mode 100644 index 00000000..c6e5a90f --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/pacman.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../pacman.rst:2 +msgid "Pacman" +msgstr "" + +#: ../../pacman.rst:4 +msgid "Pacman, classic arcade game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/paint.po b/docs/locale/pt_BR/LC_MESSAGES/paint.po new file mode 100644 index 00000000..1791e0be --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/paint.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../paint.rst:2 +msgid "Paint" +msgstr "" + +#: ../../paint.rst:4 +msgid "Paint, for drawing shapes." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/pong.po b/docs/locale/pt_BR/LC_MESSAGES/pong.po new file mode 100644 index 00000000..ee8d2d29 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/pong.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../pong.rst:2 +msgid "Pong" +msgstr "" + +#: ../../pong.rst:4 +msgid "Pong, classic arcade game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/simonsays.po b/docs/locale/pt_BR/LC_MESSAGES/simonsays.po new file mode 100644 index 00000000..666d9f77 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/simonsays.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../simonsays.rst:2 +msgid "Simon Says" +msgstr "" + +#: ../../simonsays.rst:4 +msgid "A game of watching and recalling patterns." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/snake.po b/docs/locale/pt_BR/LC_MESSAGES/snake.po new file mode 100644 index 00000000..92dbf086 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/snake.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../snake.rst:2 +msgid "Snake" +msgstr "" + +#: ../../snake.rst:4 +msgid "Snake, classic arcade game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/sphinx.po b/docs/locale/pt_BR/LC_MESSAGES/sphinx.po new file mode 100644 index 00000000..fc9b7ced --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/sphinx.po @@ -0,0 +1,40 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../_templates/gumroad.html:1 +msgid "Donate" +msgstr "" + +#: ../../_templates/gumroad.html:2 +msgid "If you or your organization uses Free Games, consider donating:" +msgstr "" + +#: ../../_templates/gumroad.html:4 +msgid "Donate to Free Python Games" +msgstr "" + +#: ../../_templates/pagetoc.html:11 +msgid "Contents" +msgstr "" + +#: ../../_templates/search.html:14 ../../_templates/search.html:17 +msgid "Search" +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po b/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po new file mode 100644 index 00000000..2663f6e3 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/tictactoe.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../tictactoe.rst:2 +msgid "Tic Tac Toe" +msgstr "" + +#: ../../tictactoe.rst:4 +msgid "A paper-and-pencil game for two players." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/tiles.po b/docs/locale/pt_BR/LC_MESSAGES/tiles.po new file mode 100644 index 00000000..fbd80dbb --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/tiles.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../tiles.rst:2 +msgid "Tiles" +msgstr "" + +#: ../../tiles.rst:4 +msgid "Tiles, number swapping game." +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/tron.po b/docs/locale/pt_BR/LC_MESSAGES/tron.po new file mode 100644 index 00000000..f1d3af29 --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/tron.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../tron.rst:2 +msgid "Tron" +msgstr "" + +#: ../../tron.rst:4 +msgid "Tron, classic arcade game." +msgstr "" + From cd58a7dee9ae6ccd8ce648248887bbb4060c2d46 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 25 Aug 2021 14:52:37 -0300 Subject: [PATCH 08/47] gerando arquivos .pot --- docs/locale/ant.pot | 25 ++ docs/locale/api.pot | 109 +++++++ docs/locale/bagels.pot | 25 ++ docs/locale/bounce.pot | 25 ++ docs/locale/cannon.pot | 25 ++ docs/locale/connect.pot | 25 ++ docs/locale/crypto.pot | 25 ++ docs/locale/curriculum.pot | 505 +++++++++++++++++++++++++++++++ docs/locale/development.pot | 141 +++++++++ docs/locale/fidget.pot | 25 ++ docs/locale/flappy.pot | 25 ++ docs/locale/give-gift-python.pot | 209 +++++++++++++ docs/locale/guess.pot | 25 ++ docs/locale/index.pot | 417 +++++++++++++++++++++++++ docs/locale/life.pot | 25 ++ docs/locale/maze.pot | 25 ++ docs/locale/memory.pot | 25 ++ docs/locale/pacman.pot | 25 ++ docs/locale/paint.pot | 25 ++ docs/locale/pong.pot | 25 ++ docs/locale/simonsays.pot | 25 ++ docs/locale/snake.pot | 25 ++ docs/locale/sphinx.pot | 2 +- docs/locale/tictactoe.pot | 25 ++ docs/locale/tiles.pot | 25 ++ docs/locale/tron.pot | 25 ++ 26 files changed, 1882 insertions(+), 1 deletion(-) create mode 100644 docs/locale/ant.pot create mode 100644 docs/locale/api.pot create mode 100644 docs/locale/bagels.pot create mode 100644 docs/locale/bounce.pot create mode 100644 docs/locale/cannon.pot create mode 100644 docs/locale/connect.pot create mode 100644 docs/locale/crypto.pot create mode 100644 docs/locale/curriculum.pot create mode 100644 docs/locale/development.pot create mode 100644 docs/locale/fidget.pot create mode 100644 docs/locale/flappy.pot create mode 100644 docs/locale/give-gift-python.pot create mode 100644 docs/locale/guess.pot create mode 100644 docs/locale/index.pot create mode 100644 docs/locale/life.pot create mode 100644 docs/locale/maze.pot create mode 100644 docs/locale/memory.pot create mode 100644 docs/locale/pacman.pot create mode 100644 docs/locale/paint.pot create mode 100644 docs/locale/pong.pot create mode 100644 docs/locale/simonsays.pot create mode 100644 docs/locale/snake.pot create mode 100644 docs/locale/tictactoe.pot create mode 100644 docs/locale/tiles.pot create mode 100644 docs/locale/tron.pot diff --git a/docs/locale/ant.pot b/docs/locale/ant.pot new file mode 100644 index 00000000..46cf29c4 --- /dev/null +++ b/docs/locale/ant.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../ant.rst:2 +msgid "Ant" +msgstr "" + +#: ../../ant.rst:4 +msgid "Ant, simple animation demo." +msgstr "" diff --git a/docs/locale/api.pot b/docs/locale/api.pot new file mode 100644 index 00000000..9481db57 --- /dev/null +++ b/docs/locale/api.pot @@ -0,0 +1,109 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../api.rst:2 +msgid "Free Python Games API Reference" +msgstr "" + +#: ../../api.rst:4 +msgid ":doc:`Free Python Games ` includes a few helpful utilities. The best way to expose beginners to these functions is with Python's built-in help function. Learners should be able to understand and write the drawing functions themselves." +msgstr "" + +#: ../../api.rst:13 +msgid "Drawing Functions" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.line:1 +msgid "Draw line from `(a, b)` to `(x, y)`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.square:1 +msgid "Draw square at `(x, y)` with side length `size` and fill color `name`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.square:3 +msgid "The square is oriented so the bottom left corner is at (x, y)." +msgstr "" + +#: ../../api.rst:20 +msgid "Helper Functions" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:1 +msgid "Floor of `value` given `size` and `offset`." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:3 +msgid "The floor function is best understood with a diagram of the number line::" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.floor:8 +msgid "The number line shown has offset 200 denoted by the left-hand tick mark at -200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. The floor of a value is the left-hand tick mark of the range where it lies. So for the points show above: ``floor(x)`` is -200, ``floor(y)`` is 0, and ``floor(z)`` is 100." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.path:1 +msgid "Return full path to `filename` in freegames module." +msgstr "" + +#: ../../api.rst:27 +msgid "Vectors" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector:1 +msgid "Two-dimensional vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector:3 +msgid "Vectors can be modified in-place." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__init__:1 +msgid "Initialize vector with coordinates: x, y." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__add__:1 +msgid "v.__add__(w) -> v + w" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__mul__:1 +msgid "v.__mul__(w) -> v * w" +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.copy:1 +msgid "Return copy of vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.move:1 +msgid "Move vector by other (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.rotate:1 +msgid "Rotate vector counter-clockwise by angle (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.utils.vector.scale:1 +msgid "Scale vector by other (in-place)." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.vector.x:1 +msgid "X-axis component of vector." +msgstr "" + +#: ../../../freegames/utils.py:docstring of freegames.vector.y:1 +msgid "Y-axis component of vector." +msgstr "" diff --git a/docs/locale/bagels.pot b/docs/locale/bagels.pot new file mode 100644 index 00000000..e408073e --- /dev/null +++ b/docs/locale/bagels.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../bagels.rst:2 +msgid "Bagels" +msgstr "" + +#: ../../bagels.rst:4 +msgid "Bagels, a number puzzle game." +msgstr "" diff --git a/docs/locale/bounce.pot b/docs/locale/bounce.pot new file mode 100644 index 00000000..14d998cf --- /dev/null +++ b/docs/locale/bounce.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../bounce.rst:2 +msgid "Bounce" +msgstr "" + +#: ../../bounce.rst:4 +msgid "Bounce, a simple animation demo." +msgstr "" diff --git a/docs/locale/cannon.pot b/docs/locale/cannon.pot new file mode 100644 index 00000000..75320acf --- /dev/null +++ b/docs/locale/cannon.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../cannon.rst:2 +msgid "Cannon" +msgstr "" + +#: ../../cannon.rst:4 +msgid "Cannon, hitting targets with projectiles." +msgstr "" diff --git a/docs/locale/connect.pot b/docs/locale/connect.pot new file mode 100644 index 00000000..484d26d4 --- /dev/null +++ b/docs/locale/connect.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../connect.rst:2 +msgid "Connect Four" +msgstr "" + +#: ../../connect.rst:4 +msgid "Connect Four, two-player connection game." +msgstr "" diff --git a/docs/locale/crypto.pot b/docs/locale/crypto.pot new file mode 100644 index 00000000..8656d08c --- /dev/null +++ b/docs/locale/crypto.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../crypto.rst:2 +msgid "Crypto" +msgstr "" + +#: ../../crypto.rst:4 +msgid "Crypto: tool for encrypting and decrypting messages." +msgstr "" diff --git a/docs/locale/curriculum.pot b/docs/locale/curriculum.pot new file mode 100644 index 00000000..a524e591 --- /dev/null +++ b/docs/locale/curriculum.pot @@ -0,0 +1,505 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../curriculum.rst:2 +msgid "Free Python Games Curriculum" +msgstr "" + +#: ../../curriculum.rst:4 +msgid "What follows are notes for a week-long curriculum developed for Maker Camp at The River Church Community. Maker Camp was a summer day camp for Middle School students in the California Bay Area." +msgstr "" + +#: ../../curriculum.rst:8 +msgid "Each game has exercises at the top." +msgstr "" + +#: ../../curriculum.rst:9 +msgid "Visualize code with http://pythontutor.com" +msgstr "" + +#: ../../curriculum.rst:10 +msgid "Extras: $ python3 -m turtledemo" +msgstr "" + +#: ../../curriculum.rst:14 +msgid "Day 1" +msgstr "" + +#: ../../curriculum.rst:16 +msgid "What is a computer? Calculator + Clock." +msgstr "" + +#: ../../curriculum.rst:17 +msgid "Discuss Alan Turing and Turing Machines." +msgstr "" + +#: ../../curriculum.rst:18 +msgid "Discuss John Von Neumann and Von Neumann Machines." +msgstr "" + +#: ../../curriculum.rst:19 +msgid "What is a program? Computer Recipe." +msgstr "" + +#: ../../curriculum.rst:20 +msgid "Introduce Terminal, black background, give the computer commands." +msgstr "" + +#: ../../curriculum.rst:21 +msgid "Introduce Python Shell, white background, write Python statements." +msgstr "" + +#: ../../curriculum.rst:22 +msgid "Activity: connect and decorate computers." +msgstr "" + +#: ../../curriculum.rst:23 +msgid "Problem solving: divide and conquer." +msgstr "" + +#: ../../curriculum.rst:24 +msgid "Statements: assignment, if/elif/else, while, import" +msgstr "" + +#: ../../curriculum.rst:25 +msgid "Data types: int, str" +msgstr "" + +#: ../../curriculum.rst:26 +msgid "Functions: print, help, int" +msgstr "" + +#: ../../curriculum.rst:27 +msgid "Modules: random" +msgstr "" + +#: ../../curriculum.rst:30 +#: ../../curriculum.rst:70 +#: ../../curriculum.rst:115 +#: ../../curriculum.rst:157 +#: ../../curriculum.rst:184 +msgid "Games" +msgstr "" + +#: ../../curriculum.rst:32 +msgid ":doc:`guess`.py - Guess number within range." +msgstr "" + +#: ../../curriculum.rst:34 +msgid "Explain: from random import randint" +msgstr "" + +#: ../../curriculum.rst:35 +msgid "randint(...)" +msgstr "" + +#: ../../curriculum.rst:36 +msgid "Variables" +msgstr "" + +#: ../../curriculum.rst:37 +msgid "Equality" +msgstr "" + +#: ../../curriculum.rst:38 +msgid "print(...)" +msgstr "" + +#: ../../curriculum.rst:39 +msgid "Inequality" +msgstr "" + +#: ../../curriculum.rst:40 +msgid "input(...)" +msgstr "" + +#: ../../curriculum.rst:41 +msgid "int(...)" +msgstr "" + +#: ../../curriculum.rst:42 +msgid "Increase range to 1,000 and guess the number." +msgstr "" + +#: ../../curriculum.rst:43 +msgid "Discuss method of guessing. That's an algorithm!" +msgstr "" + +#: ../../curriculum.rst:45 +msgid ":doc:`snake`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:48 +#: ../../curriculum.rst:97 +#: ../../curriculum.rst:139 +#: ../../curriculum.rst:166 +#: ../../curriculum.rst:191 +msgid "Bible Story" +msgstr "" + +#: ../../curriculum.rst:50 +msgid "Genesis 1 - God the Creator (Creation)" +msgstr "" + +#: ../../curriculum.rst:52 +msgid "What did God do at the beginning?" +msgstr "" + +#: ../../curriculum.rst:53 +msgid "What did God see in creation?" +msgstr "" + +#: ../../curriculum.rst:54 +msgid "What is special about people?" +msgstr "" + +#: ../../curriculum.rst:55 +msgid "Why do we create things?" +msgstr "" + +#: ../../curriculum.rst:59 +msgid "Day 2" +msgstr "" + +#: ../../curriculum.rst:61 +msgid "Activity: Blind partner obstacle course." +msgstr "" + +#: ../../curriculum.rst:62 +msgid "Problem solving: brute-force." +msgstr "" + +#: ../../curriculum.rst:63 +msgid "Famous Christian programmer: Donald Knuth" +msgstr "" + +#: ../../curriculum.rst:64 +msgid "Statements: try/except, for, def" +msgstr "" + +#: ../../curriculum.rst:65 +msgid "Data types: float, bool" +msgstr "" + +#: ../../curriculum.rst:66 +msgid "Functions: type, dir, str, ord, chr" +msgstr "" + +#: ../../curriculum.rst:67 +msgid "Modules: turtle" +msgstr "" + +#: ../../curriculum.rst:72 +msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages." +msgstr "" + +#: ../../curriculum.rst:74 +msgid "ord function and chr function" +msgstr "" + +#: ../../curriculum.rst:75 +msgid "modulo operator" +msgstr "" + +#: ../../curriculum.rst:76 +msgid "Write decode function" +msgstr "" + +#: ../../curriculum.rst:77 +msgid "Encrypt numbers" +msgstr "" + +#: ../../curriculum.rst:79 +msgid ":doc:`paint`.py - Draw shapes." +msgstr "" + +#: ../../curriculum.rst:81 +msgid "Draw line" +msgstr "" + +#: ../../curriculum.rst:82 +msgid "Draw square" +msgstr "" + +#: ../../curriculum.rst:83 +msgid "for-statement, range function." +msgstr "" + +#: ../../curriculum.rst:84 +msgid "Draw five-pointed star: forward(50); right(144) (x5)" +msgstr "" + +#: ../../curriculum.rst:85 +msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)" +msgstr "" + +#: ../../curriculum.rst:86 +msgid "help(...)" +msgstr "" + +#: ../../curriculum.rst:87 +msgid "undo(...)" +msgstr "" + +#: ../../curriculum.rst:88 +msgid "def-statement, refactor code to star function" +msgstr "" + +#: ../../curriculum.rst:89 +msgid "color('green'); color('blue', 'yellow')" +msgstr "" + +#: ../../curriculum.rst:90 +msgid "begin_fill(); end_fill()" +msgstr "" + +#: ../../curriculum.rst:91 +msgid "width function" +msgstr "" + +#: ../../curriculum.rst:92 +msgid "Write polygon(sides, length) function" +msgstr "" + +#: ../../curriculum.rst:94 +msgid ":doc:`flappy`.py - Flappy Bird inspired game." +msgstr "" + +#: ../../curriculum.rst:99 +msgid "Genesis 6:5-22 - God the Engineer (Noah)" +msgstr "" + +#: ../../curriculum.rst:101 +msgid "Why did God regret making people?" +msgstr "" + +#: ../../curriculum.rst:102 +msgid "How was Noah different?" +msgstr "" + +#: ../../curriculum.rst:103 +msgid "What was God's plan?" +msgstr "" + +#: ../../curriculum.rst:104 +msgid "How are we washed today?" +msgstr "" + +#: ../../curriculum.rst:108 +msgid "Day 3" +msgstr "" + +#: ../../curriculum.rst:110 +msgid "Activity: Simon Says" +msgstr "" + +#: ../../curriculum.rst:111 +msgid "Famous Christian programmer: Fred Brooks" +msgstr "" + +#: ../../curriculum.rst:112 +msgid "Functions: onscreenclick, onkey, ontimer" +msgstr "" + +#: ../../curriculum.rst:117 +msgid ":doc:`bagels`.py - Digit guessing puzzle." +msgstr "" + +#: ../../curriculum.rst:118 +msgid "Animation" +msgstr "" + +#: ../../curriculum.rst:120 +msgid "Draw arc: circle(100, 90)" +msgstr "" + +#: ../../curriculum.rst:121 +msgid "flower(...)" +msgstr "" + +#: ../../curriculum.rst:122 +msgid "Draw flower and rotate" +msgstr "" + +#: ../../curriculum.rst:123 +msgid "ontimer(...)" +msgstr "" + +#: ../../curriculum.rst:124 +msgid "hideturtle(); tracer(False); polygon(4, 200); update()" +msgstr "" + +#: ../../curriculum.rst:126 +msgid ":doc:`tictactoe`.py - Tic-tac-toe." +msgstr "" + +#: ../../curriculum.rst:128 +msgid "line(...)" +msgstr "" + +#: ../../curriculum.rst:129 +msgid "grid(...)" +msgstr "" + +#: ../../curriculum.rst:130 +msgid "drawx(...)" +msgstr "" + +#: ../../curriculum.rst:131 +msgid "drawo(...)" +msgstr "" + +#: ../../curriculum.rst:132 +msgid "floor(...)" +msgstr "" + +#: ../../curriculum.rst:133 +msgid "onscreenclick(goto)" +msgstr "" + +#: ../../curriculum.rst:135 +msgid ":doc:`simonsays`.py - Simon Says" +msgstr "" + +#: ../../curriculum.rst:136 +msgid ":doc:`cannon`.py - Hitting targets with projectiles." +msgstr "" + +#: ../../curriculum.rst:141 +msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")" +msgstr "" + +#: ../../curriculum.rst:143 +msgid "What did Isaiah say would happen?" +msgstr "" + +#: ../../curriculum.rst:144 +msgid "What did John the Baptist say would happen?" +msgstr "" + +#: ../../curriculum.rst:145 +msgid "What did God say about Jesus? When?" +msgstr "" + +#: ../../curriculum.rst:146 +msgid "How did Jesus give his disciples new jobs?" +msgstr "" + +#: ../../curriculum.rst:150 +msgid "Day 4" +msgstr "" + +#: ../../curriculum.rst:152 +msgid "Activity: Collage of concepts." +msgstr "" + +#: ../../curriculum.rst:153 +msgid "Famous Christian programmer: Larry Wall" +msgstr "" + +#: ../../curriculum.rst:154 +msgid "Data types: list, dict, vector" +msgstr "" + +#: ../../curriculum.rst:159 +msgid ":doc:`bounce`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:160 +msgid ":doc:`pong`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:161 +msgid ":doc:`ant`.py - Simple animation demo." +msgstr "" + +#: ../../curriculum.rst:162 +msgid ":doc:`tron`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:163 +msgid ":doc:`tiles`.py - Puzzle game of number shuffling." +msgstr "" + +#: ../../curriculum.rst:168 +msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)" +msgstr "" + +#: ../../curriculum.rst:170 +msgid "What does Jesus tell the disciples?" +msgstr "" + +#: ../../curriculum.rst:171 +msgid "What does the man tell the Pharisees?" +msgstr "" + +#: ../../curriculum.rst:172 +msgid "What does the man believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:173 +msgid "What do you believe about Jesus?" +msgstr "" + +#: ../../curriculum.rst:177 +msgid "Day 5" +msgstr "" + +#: ../../curriculum.rst:179 +msgid "Activity: Make or modify your own game." +msgstr "" + +#: ../../curriculum.rst:180 +msgid "Famous Christian programmer: Jon Skeet" +msgstr "" + +#: ../../curriculum.rst:181 +msgid "Answer: What next?" +msgstr "" + +#: ../../curriculum.rst:186 +msgid ":doc:`connect`.py - Connect Four" +msgstr "" + +#: ../../curriculum.rst:187 +msgid ":doc:`memory`.py - Puzzle game of number pairs." +msgstr "" + +#: ../../curriculum.rst:188 +msgid ":doc:`pacman`.py - Classic arcade game." +msgstr "" + +#: ../../curriculum.rst:193 +msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)" +msgstr "" + +#: ../../curriculum.rst:195 +msgid "What does God make? When?" +msgstr "" + +#: ../../curriculum.rst:196 +msgid "Who is the Lamb and the Bride?" +msgstr "" + +#: ../../curriculum.rst:197 +msgid "What is special about the city?" +msgstr "" + +#: ../../curriculum.rst:198 +msgid "How can we live in the Holy City?" +msgstr "" diff --git a/docs/locale/development.pot b/docs/locale/development.pot new file mode 100644 index 00000000..f79c7238 --- /dev/null +++ b/docs/locale/development.pot @@ -0,0 +1,141 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../development.rst:2 +msgid "Free Python Games Development" +msgstr "" + +#: ../../development.rst:4 +msgid ":doc:`Free Python Games ` development is lead by Grant Jenks ." +msgstr "" + +#: ../../development.rst:8 +msgid "Collaborators Welcome" +msgstr "" + +#: ../../development.rst:10 +msgid "Search issues or open a new issue to start a discussion around a bug." +msgstr "" + +#: ../../development.rst:11 +msgid "Fork the `GitHub repository`_ and make your changes in a new branch." +msgstr "" + +#: ../../development.rst:12 +msgid "Write a test which shows the bug was fixed." +msgstr "" + +#: ../../development.rst:13 +msgid "Send a pull request and message the development lead until its merged and published." +msgstr "" + +#: ../../development.rst:19 +msgid "Requests for Contributions" +msgstr "" + +#: ../../development.rst:21 +msgid "Simplifications to existing games." +msgstr "" + +#: ../../development.rst:22 +msgid "Refactoring to simplify games." +msgstr "" + +#: ../../development.rst:23 +msgid "Improved documentation." +msgstr "" + +#: ../../development.rst:24 +msgid "Additional games. Requirements for new games:" +msgstr "" + +#: ../../development.rst:26 +msgid "Fun to play." +msgstr "" + +#: ../../development.rst:27 +msgid "Matching code style." +msgstr "" + +#: ../../development.rst:28 +msgid "Limited Python feature set." +msgstr "" + +#: ../../development.rst:29 +msgid "Short (less than 100 lines of code)." +msgstr "" + +#: ../../development.rst:32 +msgid "Get the Code" +msgstr "" + +#: ../../development.rst:34 +msgid ":doc:`Free Python Games ` is actively developed in a `GitHub repository`_." +msgstr "" + +#: ../../development.rst:37 +msgid "You can either clone the public repository::" +msgstr "" + +#: ../../development.rst:41 +msgid "Download the `tarball `_::" +msgstr "" + +#: ../../development.rst:45 +msgid "Or, download the `zipball `_::" +msgstr "" + +#: ../../development.rst:50 +msgid "Installing Dependencies" +msgstr "" + +#: ../../development.rst:52 +msgid "Install development dependencies with `pip `_::" +msgstr "" + +#: ../../development.rst:56 +msgid "All packages for running tests and building documentation will be installed." +msgstr "" + +#: ../../development.rst:59 +msgid "Testing" +msgstr "" + +#: ../../development.rst:61 +msgid ":doc:`Free Python Games ` currently tests against three versions of Python:" +msgstr "" + +#: ../../development.rst:64 +msgid "CPython 3.4" +msgstr "" + +#: ../../development.rst:65 +msgid "CPython 3.5" +msgstr "" + +#: ../../development.rst:66 +msgid "CPython 3.6" +msgstr "" + +#: ../../development.rst:68 +msgid "Testing uses `tox `_. If you don't want to install all the development requirements, then, after downloading, you can simply run::" +msgstr "" + +#: ../../development.rst:74 +msgid "The test argument to setup.py will download a minimal testing infrastructure and run the tests." +msgstr "" diff --git a/docs/locale/fidget.pot b/docs/locale/fidget.pot new file mode 100644 index 00000000..2063e658 --- /dev/null +++ b/docs/locale/fidget.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../fidget.rst:2 +msgid "Fidget" +msgstr "" + +#: ../../fidget.rst:4 +msgid "Fidget, inspired by fidget spinners." +msgstr "" diff --git a/docs/locale/flappy.pot b/docs/locale/flappy.pot new file mode 100644 index 00000000..52bb6b45 --- /dev/null +++ b/docs/locale/flappy.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../flappy.rst:2 +msgid "Flappy" +msgstr "" + +#: ../../flappy.rst:4 +msgid "Flappy, game inspired by Flappy Bird." +msgstr "" diff --git a/docs/locale/give-gift-python.pot b/docs/locale/give-gift-python.pot new file mode 100644 index 00000000..bfa9855c --- /dev/null +++ b/docs/locale/give-gift-python.pot @@ -0,0 +1,209 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../give-gift-python.rst:2 +msgid "Give the Gift of Python" +msgstr "" + +#: ../../give-gift-python.rst:4 +msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*" +msgstr "" + +#: ../../give-gift-python.rst:7 +msgid "Who am I?" +msgstr "" + +#: ../../give-gift-python.rst:9 +msgid "Python programmer." +msgstr "" + +#: ../../give-gift-python.rst:10 +msgid "Hundreds of hours of classroom instruction." +msgstr "" + +#: ../../give-gift-python.rst:13 +msgid "What we need?" +msgstr "" + +#: ../../give-gift-python.rst:15 +msgid "Interest!" +msgstr "" + +#: ../../give-gift-python.rst:16 +msgid "Typing skills." +msgstr "" + +#: ../../give-gift-python.rst:17 +msgid "Math: Arithmetic, Algebra, Geometry" +msgstr "" + +#: ../../give-gift-python.rst:20 +msgid "Setup" +msgstr "" + +#: ../../give-gift-python.rst:22 +msgid "Install Python, https://www.python.org/" +msgstr "" + +#: ../../give-gift-python.rst:23 +msgid "Run IDLE, ``$ python -m idlelib.idle``" +msgstr "" + +#: ../../give-gift-python.rst:24 +msgid "Write code." +msgstr "" + +#: ../../give-gift-python.rst:27 +msgid "Open the Turtle Window" +msgstr "" + +#: ../../give-gift-python.rst:35 +msgid "Commands" +msgstr "" + +#: ../../give-gift-python.rst:49 +msgid "Loops" +msgstr "" + +#: ../../give-gift-python.rst:59 +msgid "Shapes" +msgstr "" + +#: ../../give-gift-python.rst:71 +msgid "Dots" +msgstr "" + +#: ../../give-gift-python.rst:79 +msgid "Functions" +msgstr "" + +#: ../../give-gift-python.rst:93 +msgid "Colors" +msgstr "" + +#: ../../give-gift-python.rst:102 +msgid "Locations" +msgstr "" + +#: ../../give-gift-python.rst:113 +msgid "Inputs" +msgstr "" + +#: ../../give-gift-python.rst:115 +msgid "listen" +msgstr "" + +#: ../../give-gift-python.rst:116 +msgid "onclick" +msgstr "" + +#: ../../give-gift-python.rst:117 +msgid "onkey" +msgstr "" + +#: ../../give-gift-python.rst:120 +msgid "Animation" +msgstr "" + +#: ../../give-gift-python.rst:122 +msgid "ontimer" +msgstr "" + +#: ../../give-gift-python.rst:123 +msgid "hideturtle" +msgstr "" + +#: ../../give-gift-python.rst:124 +msgid "tracer" +msgstr "" + +#: ../../give-gift-python.rst:125 +msgid "clear" +msgstr "" + +#: ../../give-gift-python.rst:126 +msgid "update" +msgstr "" + +#: ../../give-gift-python.rst:139 +msgid "Tips" +msgstr "" + +#: ../../give-gift-python.rst:141 +msgid "help(...)" +msgstr "" + +#: ../../give-gift-python.rst:142 +msgid "undo(...)" +msgstr "" + +#: ../../give-gift-python.rst:143 +msgid "Embrace copy/paste" +msgstr "" + +#: ../../give-gift-python.rst:144 +msgid "Close window/reset()" +msgstr "" + +#: ../../give-gift-python.rst:147 +msgid "Activities" +msgstr "" + +#: ../../give-gift-python.rst:149 +msgid "Spell your name." +msgstr "" + +#: ../../give-gift-python.rst:150 +msgid "``python -m pip install freegames``" +msgstr "" + +#: ../../give-gift-python.rst:153 +msgid "Notes" +msgstr "" + +#: ../../give-gift-python.rst:155 +msgid "Start simple! Start easy! Start plain!" +msgstr "" + +#: ../../give-gift-python.rst:156 +msgid "Focus on fun! No PEP8. No Pylint." +msgstr "" + +#: ../../give-gift-python.rst:157 +msgid "Make it readable! Say it aloud." +msgstr "" + +#: ../../give-gift-python.rst:158 +msgid "No special shells! No IPython." +msgstr "" + +#: ../../give-gift-python.rst:159 +msgid "Show them mistakes! Red is your favorite color!" +msgstr "" + +#: ../../give-gift-python.rst:160 +msgid "No virtual environments!" +msgstr "" + +#: ../../give-gift-python.rst:161 +msgid "If they're not ready, don't push them!" +msgstr "" + +#: ../../give-gift-python.rst:162 +msgid "No dunder methods or attributes! No __name__ or __main__." +msgstr "" diff --git a/docs/locale/guess.pot b/docs/locale/guess.pot new file mode 100644 index 00000000..0011e319 --- /dev/null +++ b/docs/locale/guess.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../guess.rst:2 +msgid "Guess" +msgstr "" + +#: ../../guess.rst:4 +msgid "Guess a number within a range." +msgstr "" diff --git a/docs/locale/index.pot b/docs/locale/index.pot new file mode 100644 index 00000000..f6e40c59 --- /dev/null +++ b/docs/locale/index.pot @@ -0,0 +1,417 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../README.rst:2 +msgid "Free Python Games" +msgstr "" + +#: ../../../README.rst:4 +msgid "`Free Python Games`_ is an Apache2 licensed collection of free Python games intended for education and fun. The games are written in simple Python code and designed for experimentation and changes. Simplified versions of several classic arcade games are included." +msgstr "" + +#: ../../../README.rst:9 +msgid "Python is one of the top-five most popular programming languages in the world and available for free from `Python.org `_. Python includes an extensive Standard Library distributed with your installation. The Standard Library has a module called Turtle which is a popular way to introduce programming to kids. Turtle was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free Python Games`_ are implemented using Python and its Turtle module." +msgstr "" + +#: ../../../README.rst:17 +msgid "Starting in 2012, `Free Python Games`_ began as an after school program to teach programming to inner-city youth. The goal was to have fun as much as it was to learn. Since then the games have been improved and used in a variety of settings ranging from classrooms to summer day-camps." +msgstr "" + +#: ../../../README.rst:22 +msgid "The games run anywhere Python can be installed which includes desktop computers running Windows, Mac OS, or Linux and older or low-power hardware such as the Raspberry Pi. Kids across the United States in grades 6th-12th have enjoyed learning about topics such as encryption and projectile motion through games." +msgstr "" + +#: ../../../README.rst:27 +msgid "Each game is entirely independent from the others and includes comments along with a list of exercises to work through with students. Creativity and flexibility is important. There is no right or wrong way to implement a new feature or behavior! You never know which games students will engage with best." +msgstr "" + +#: ../../../README.rst:36 +msgid "Testimonials" +msgstr "" + +#: ../../../README.rst:38 +msgid "*\"I love Free Python Games because the games are fun and they're easy to understand and change. I like making my own games now.\"*" +msgstr "" + +#: ../../../README.rst:41 +msgid "-- Luke Martin, Student" +msgstr "" + +#: ../../../README.rst:43 +msgid "*\"Free Python Games inspired and introduced a new hobby to our son. Thank you so much for exposing him to coding. He is having so much fun!\"*" +msgstr "" + +#: ../../../README.rst:46 +msgid "-- Mary Lai, Parent" +msgstr "" + +#: ../../../README.rst:48 +msgid "*\"Free Python Games are great because they really engage students and let them learn at their own pace.\"*" +msgstr "" + +#: ../../../README.rst:51 +msgid "-- Rick Schertle, Teacher, Steindorf STEAM School" +msgstr "" + +#: ../../../README.rst:53 +msgid "*\"Free Python Games combines play and learning in a flexible environment that reduces the stress of a difficult topic like programming.\"*" +msgstr "" + +#: ../../../README.rst:56 +msgid "-- Brett Bymaster, Youth Pastor, The River Church Community" +msgstr "" + +#: ../../../README.rst:58 +msgid "*\"Free Python Games is great for students, is highly organized and flexible, and seeks to unleash inquiry and understanding.\"*" +msgstr "" + +#: ../../../README.rst:61 +msgid "-- Terri Furton, Principal, Downtown College Prep" +msgstr "" + +#: ../../../README.rst:65 +msgid "Features" +msgstr "" + +#: ../../../README.rst:67 +msgid "Fun to play!" +msgstr "" + +#: ../../../README.rst:68 +msgid "Simple Python code" +msgstr "" + +#: ../../../README.rst:69 +msgid "Easy to install" +msgstr "" + +#: ../../../README.rst:70 +msgid "Designed for education" +msgstr "" + +#: ../../../README.rst:71 +msgid "Depends only on the Python Standard Library" +msgstr "" + +#: ../../../README.rst:72 +msgid "Used in hundreds of hours of classroom instruction" +msgstr "" + +#: ../../../README.rst:73 +msgid "Fully Documented" +msgstr "" + +#: ../../../README.rst:74 +msgid "100% Test Coverage" +msgstr "" + +#: ../../../README.rst:75 +msgid "Developed on Python 3.7" +msgstr "" + +#: ../../../README.rst:76 +msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" +msgstr "" + +#: ../../../README.rst:77 +msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" +msgstr "" + +#: ../../../README.rst:78 +msgid "Tested using Travis CI and AppVeyor CI" +msgstr "" + +#: ../../../README.rst:88 +msgid "Quickstart" +msgstr "" + +#: ../../../README.rst:90 +msgid "Installing Free Python Games is simple with `pip `_::" +msgstr "" + +#: ../../../README.rst:95 +msgid "Free Python Games supports a command-line interface (CLI). Help for the CLI is available using::" +msgstr "" + +#: ../../../README.rst:100 +msgid "The CLI supports three commands: list, copy, and show. For a list of all games run::" +msgstr "" + +#: ../../../README.rst:105 +msgid "Any of the listed games may be played by executing the Python module from the command-line. To reference the Python module, combine \"freegames\" with the name of the game. For example, to play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:111 +msgid "Games can be modified by copying their source code. The copy command will create a Python file in your local directory which you can edit. For example, to copy and play the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:118 +msgid "Python includes a built-in text editor named IDLE which can also execute Python code. To launch the editor and make changes to the \"snake\" game run::" +msgstr "" + +#: ../../../README.rst:123 +msgid "You can also access documentation in the interpreter with Python's built-in help function::" +msgstr "" + +#: ../../../README.rst:131 +msgid "Free Games" +msgstr "" + +#: ../../../README.rst:134 +msgid "Paint" +msgstr "" + +#: ../../../README.rst:136 +msgid "`Paint`_ -- draw lines and shapes on the screen. Click to mark the start of a shape and click again to mark its end. Different shapes and colors can be selected using the keyboard." +msgstr "" + +#: ../../../README.rst:None +msgid "Paint Free Python Game" +msgstr "" + +#: ../../../README.rst:146 +msgid "Snake" +msgstr "" + +#: ../../../README.rst:148 +msgid "`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat the green food. Each time the food is consumed, the snake grows one segment longer. Avoid eating yourself or going out of bounds!" +msgstr "" + +#: ../../../README.rst:None +msgid "Snake Free Python Game" +msgstr "" + +#: ../../../README.rst:158 +msgid "Pacman" +msgstr "" + +#: ../../../README.rst:160 +msgid "`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat all the white food. Watch out for red ghosts that roam the maze." +msgstr "" + +#: ../../../README.rst:None +msgid "Pacman Free Python Game" +msgstr "" + +#: ../../../README.rst:169 +msgid "Cannon" +msgstr "" + +#: ../../../README.rst:171 +msgid "`Cannon`_ -- projectile motion. Click the screen to fire your cannnonball. The cannonball pops blue balloons in its path. Pop all the balloons before they can cross the screen." +msgstr "" + +#: ../../../README.rst:None +msgid "Cannon Free Python Game" +msgstr "" + +#: ../../../README.rst:181 +msgid "Connect" +msgstr "" + +#: ../../../README.rst:183 +msgid "`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first player to connect four discs vertically, horizontally, or diagonally wins!" +msgstr "" + +#: ../../../README.rst:None +msgid "Connect 4 Free Python Game" +msgstr "" + +#: ../../../README.rst:192 +msgid "Flappy" +msgstr "" + +#: ../../../README.rst:194 +msgid "`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your wings. Watch out for black ravens as you fly across the screen." +msgstr "" + +#: ../../../README.rst:None +msgid "Flappy Bird Free Python Game" +msgstr "" + +#: ../../../README.rst:203 +msgid "Memory" +msgstr "" + +#: ../../../README.rst:205 +msgid "`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a number. Match two numbers and the tiles will disappear to reveal an image." +msgstr "" + +#: ../../../README.rst:None +msgid "Memory Free Python Game" +msgstr "" + +#: ../../../README.rst:214 +msgid "Pong" +msgstr "" + +#: ../../../README.rst:216 +msgid "`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up and down. The first player to miss the ball loses." +msgstr "" + +#: ../../../README.rst:None +msgid "Pong Free Python Game" +msgstr "" + +#: ../../../README.rst:225 +msgid "Simon Says" +msgstr "" + +#: ../../../README.rst:227 +msgid "`Simon Says`_ -- classic memory puzzle game. Click the screen to start. Watch the pattern and then click the tiles in the same order. Each time you get the sequence right the pattern gets one step longer." +msgstr "" + +#: ../../../README.rst:None +msgid "Simon Says Free Python Game" +msgstr "" + +#: ../../../README.rst:237 +msgid "Tic Tac Toe" +msgstr "" + +#: ../../../README.rst:239 +msgid "`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. Connect three in a row and you win!" +msgstr "" + +#: ../../../README.rst:None +msgid "Tic Tac Toe Free Python Game" +msgstr "" + +#: ../../../README.rst:248 +msgid "Tiles" +msgstr "" + +#: ../../../README.rst:250 +msgid "`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile adjacent to the empty square to swap positions. Can you make the tiles count one to fifteen from left to right and bottom to top?" +msgstr "" + +#: ../../../README.rst:None +msgid "Tiles Free Python Game" +msgstr "" + +#: ../../../README.rst:260 +msgid "Tron" +msgstr "" + +#: ../../../README.rst:262 +msgid "`Tron`_ -- classic arcade game. Use the keyboard to change the direction of your Tron player. Avoid touching the line drawn by your opponent." +msgstr "" + +#: ../../../README.rst:None +msgid "Tron Free Python Game" +msgstr "" + +#: ../../../README.rst:271 +msgid "Life" +msgstr "" + +#: ../../../README.rst:273 +msgid "`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular automation created in 1970 by John Conway." +msgstr "" + +#: ../../../README.rst:None +msgid "Game of Life Free Python Game" +msgstr "" + +#: ../../../README.rst:282 +msgid "Maze" +msgstr "" + +#: ../../../README.rst:284 +msgid "`Maze`_ -- move from one side to another. Inspired by `A Universe in One Line of Code with 10 PRINT`_. Tap the screen to trace a path from one side to another." +msgstr "" + +#: ../../../README.rst:None +msgid "Maze Free Python Game" +msgstr "" + +#: ../../../README.rst:295 +msgid "Fidget" +msgstr "" + +#: ../../../README.rst:297 +msgid "`Fidget`_ -- fidget spinner inspired animation. Click the screen to accelerate the fidget spinner." +msgstr "" + +#: ../../../README.rst:None +msgid "Fidget Spinner Free Python Game" +msgstr "" + +#: ../../../README.rst:307 +msgid "User Guide" +msgstr "" + +#: ../../../README.rst:309 +msgid "For those wanting more details, this part of the documentation describes curriculum, API, and development." +msgstr "" + +#: ../../../README.rst:312 +msgid "`Talk: Give the Gift of Python`_" +msgstr "" + +#: ../../../README.rst:313 +msgid "`Free Python Games Curriculum`_" +msgstr "" + +#: ../../../README.rst:314 +msgid "`Free Python Games API Reference`_" +msgstr "" + +#: ../../../README.rst:315 +msgid "`Free Python Games Development`_" +msgstr "" + +#: ../../../README.rst:324 +msgid "References" +msgstr "" + +#: ../../../README.rst:326 +msgid "`Free Python Games Documentation`_" +msgstr "" + +#: ../../../README.rst:327 +msgid "`Free Python Games at PyPI`_" +msgstr "" + +#: ../../../README.rst:328 +msgid "`Free Python Games at GitHub`_" +msgstr "" + +#: ../../../README.rst:329 +msgid "`Free Python Games Issue Tracker`_" +msgstr "" + +#: ../../../README.rst:338 +msgid "Free Python Games License" +msgstr "" + +#: ../../../README.rst:340 +msgid "Copyright 2017-2020 Grant Jenks" +msgstr "" + +#: ../../../README.rst:342 +msgid "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at" +msgstr "" + +#: ../../../README.rst:346 +msgid "http://www.apache.org/licenses/LICENSE-2.0" +msgstr "" + +#: ../../../README.rst:348 +msgid "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." +msgstr "" diff --git a/docs/locale/life.pot b/docs/locale/life.pot new file mode 100644 index 00000000..4c73e1bd --- /dev/null +++ b/docs/locale/life.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../life.rst:2 +msgid "Life" +msgstr "" + +#: ../../life.rst:4 +msgid "Game of Life simulation." +msgstr "" diff --git a/docs/locale/maze.pot b/docs/locale/maze.pot new file mode 100644 index 00000000..080dbaf5 --- /dev/null +++ b/docs/locale/maze.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../maze.rst:2 +msgid "Maze" +msgstr "" + +#: ../../maze.rst:4 +msgid "Maze, move from one side to another." +msgstr "" diff --git a/docs/locale/memory.pot b/docs/locale/memory.pot new file mode 100644 index 00000000..a3979666 --- /dev/null +++ b/docs/locale/memory.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../memory.rst:2 +msgid "Memory" +msgstr "" + +#: ../../memory.rst:4 +msgid "Memory, puzzle game of number pairs." +msgstr "" diff --git a/docs/locale/pacman.pot b/docs/locale/pacman.pot new file mode 100644 index 00000000..b969a388 --- /dev/null +++ b/docs/locale/pacman.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../pacman.rst:2 +msgid "Pacman" +msgstr "" + +#: ../../pacman.rst:4 +msgid "Pacman, classic arcade game." +msgstr "" diff --git a/docs/locale/paint.pot b/docs/locale/paint.pot new file mode 100644 index 00000000..f7d8b7a6 --- /dev/null +++ b/docs/locale/paint.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../paint.rst:2 +msgid "Paint" +msgstr "" + +#: ../../paint.rst:4 +msgid "Paint, for drawing shapes." +msgstr "" diff --git a/docs/locale/pong.pot b/docs/locale/pong.pot new file mode 100644 index 00000000..9211b043 --- /dev/null +++ b/docs/locale/pong.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../pong.rst:2 +msgid "Pong" +msgstr "" + +#: ../../pong.rst:4 +msgid "Pong, classic arcade game." +msgstr "" diff --git a/docs/locale/simonsays.pot b/docs/locale/simonsays.pot new file mode 100644 index 00000000..d0ad0b37 --- /dev/null +++ b/docs/locale/simonsays.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../simonsays.rst:2 +msgid "Simon Says" +msgstr "" + +#: ../../simonsays.rst:4 +msgid "A game of watching and recalling patterns." +msgstr "" diff --git a/docs/locale/snake.pot b/docs/locale/snake.pot new file mode 100644 index 00000000..58efbc76 --- /dev/null +++ b/docs/locale/snake.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../snake.rst:2 +msgid "Snake" +msgstr "" + +#: ../../snake.rst:4 +msgid "Snake, classic arcade game." +msgstr "" diff --git a/docs/locale/sphinx.pot b/docs/locale/sphinx.pot index 820f893b..630c3307 100644 --- a/docs/locale/sphinx.pot +++ b/docs/locale/sphinx.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Free Python Games 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-04-18 17:25-0300\n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/tictactoe.pot b/docs/locale/tictactoe.pot new file mode 100644 index 00000000..ad37dbca --- /dev/null +++ b/docs/locale/tictactoe.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../tictactoe.rst:2 +msgid "Tic Tac Toe" +msgstr "" + +#: ../../tictactoe.rst:4 +msgid "A paper-and-pencil game for two players." +msgstr "" diff --git a/docs/locale/tiles.pot b/docs/locale/tiles.pot new file mode 100644 index 00000000..450254cf --- /dev/null +++ b/docs/locale/tiles.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../tiles.rst:2 +msgid "Tiles" +msgstr "" + +#: ../../tiles.rst:4 +msgid "Tiles, number swapping game." +msgstr "" diff --git a/docs/locale/tron.pot b/docs/locale/tron.pot new file mode 100644 index 00000000..f1bc2f08 --- /dev/null +++ b/docs/locale/tron.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2020, Grant Jenks +# This file is distributed under the same license as the Free Python Games package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../tron.rst:2 +msgid "Tron" +msgstr "" + +#: ../../tron.rst:4 +msgid "Tron, classic arcade game." +msgstr "" From d95b25aec5ab0c88f45532087e5d05bade9e3215 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Tue, 31 Aug 2021 19:08:07 -0300 Subject: [PATCH 09/47] Update Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aqui deve ficar sem parâmetro, assim sempre vai gerar tudo. --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 15c1c76a..69df565b 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -16,7 +16,7 @@ help: .PHONY: help Makefile update-po update-po: pot - $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" -l pt_BR + $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) pot: gettext @cp $(BUILDDIR)/gettext/*.pot locale/ From 1e5a25552133229a72a84d2c0053eaffeabf19a1 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Mon, 6 Sep 2021 16:05:42 -0300 Subject: [PATCH 10/47] Update development.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Acrescentada a seção Translate --- docs/development.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/development.rst b/docs/development.rst index 9bebb26b..e03b556a 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -73,3 +73,13 @@ simply run:: The test argument to setup.py will download a minimal testing infrastructure and run the tests. + +Translate +---------- + +inside the locale/ folder, a folder must be created manually, for the :: + + $ make update-po + +command to generate the PO files for all langauges. + From 0a7c9e7784e5b17e3ca533ff4c3a5105ffa5580a Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 22 Sep 2021 16:03:44 -0300 Subject: [PATCH 11/47] topic addition: translation --- docs/development.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/development.rst b/docs/development.rst index e03b556a..9bf3d4d3 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -77,9 +77,9 @@ and run the tests. Translate ---------- -inside the locale/ folder, a folder must be created manually, for the :: +Translation files are available in the /locale directory, if you want to contribute a translation make changes to its content. - $ make update-po +if you want to translate to another language, you need to create the lang folder. To update the lang folder you need to use the command: -command to generate the PO files for all langauges. + $ make update-po From c8ac0a1eef18d54633f3e5a024285c7f178fabb8 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 6 Oct 2021 21:36:30 -0300 Subject: [PATCH 12/47] adding the .mo and .pot files to git ignore --- .gitignore | 9 +++++++++ docs/Makefile | 26 ++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4f3a167a..fc62191c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,12 @@ /freegames.egg-info/ .DS_Store + + +.vscode/ + +#unnecessary files +*.mo +*.pot + + diff --git a/docs/Makefile b/docs/Makefile index 69df565b..0e20f503 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -9,6 +9,11 @@ SPHINXPROJ = FreeGames SOURCEDIR = . BUILDDIR = _build +LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) + +MV = mv +RM = rm -r + # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -18,19 +23,28 @@ help: update-po: pot $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) -pot: gettext - @cp $(BUILDDIR)/gettext/*.pot locale/ - -%-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) %-translated: @for locale in $(LOCALES); do \ SPHINXOPTS="-D language=$$locale"; \ BUILDDIR="$(BUILDDIR)/$$locale"; \ - TARGET="$(patsubst %-translated,%,$@)"; \ - $(SPHINXBUILD) -M "$$TARGET" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ + $(SPHINXBUILD) -M "$(TARGET)" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ done # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + + TARGET=$@ make translated + + @for locale in $(LOCALES); do \ + LOCALEDIR="$(BUILDDIR)/$$locale"; \ + TARGETDIR="$(BUILDDIR)/$@/$$locale"; \ + $(MV) "$$LOCALEDIR/$@" "$$TARGETDIR"; \ + $(RM) "$$LOCALEDIR"; \ + echo "HTML pages was moved to $$TARGETDIR directory"; \ + done + + +clean: + $(RM) $(BUILDDIR) From c0df8996255b4062f849067e59da0841561aac35 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 6 Oct 2021 21:44:39 -0300 Subject: [PATCH 13/47] Update Makefile --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 0e20f503..675eb67a 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -20,7 +20,7 @@ help: .PHONY: help Makefile update-po -update-po: pot +update-po: gettext $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) %-translated: From eb3108ca992ec62e3ddf191ff3ce814a8aa57f18 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 6 Oct 2021 21:45:09 -0300 Subject: [PATCH 14/47] Revert "adding the .mo and .pot files to git ignore" This reverts commit c8ac0a1eef18d54633f3e5a024285c7f178fabb8. --- .gitignore | 9 --------- docs/Makefile | 26 ++++++-------------------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index fc62191c..4f3a167a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,12 +16,3 @@ /freegames.egg-info/ .DS_Store - - -.vscode/ - -#unnecessary files -*.mo -*.pot - - diff --git a/docs/Makefile b/docs/Makefile index 675eb67a..8938d855 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -9,11 +9,6 @@ SPHINXPROJ = FreeGames SOURCEDIR = . BUILDDIR = _build -LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) - -MV = mv -RM = rm -r - # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -23,28 +18,19 @@ help: update-po: gettext $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) +pot: gettext + @cp $(BUILDDIR)/gettext/*.pot locale/ + +%-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) %-translated: @for locale in $(LOCALES); do \ SPHINXOPTS="-D language=$$locale"; \ BUILDDIR="$(BUILDDIR)/$$locale"; \ - $(SPHINXBUILD) -M "$(TARGET)" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ + TARGET="$(patsubst %-translated,%,$@)"; \ + $(SPHINXBUILD) -M "$$TARGET" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ done # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - - TARGET=$@ make translated - - @for locale in $(LOCALES); do \ - LOCALEDIR="$(BUILDDIR)/$$locale"; \ - TARGETDIR="$(BUILDDIR)/$@/$$locale"; \ - $(MV) "$$LOCALEDIR/$@" "$$TARGETDIR"; \ - $(RM) "$$LOCALEDIR"; \ - echo "HTML pages was moved to $$TARGETDIR directory"; \ - done - - -clean: - $(RM) $(BUILDDIR) From aa152320b67fc37775e0992633bded0fb159ded2 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Wed, 6 Oct 2021 21:45:36 -0300 Subject: [PATCH 15/47] Revert "Revert "adding the .mo and .pot files to git ignore"" This reverts commit eb3108ca992ec62e3ddf191ff3ce814a8aa57f18. --- .gitignore | 9 +++++++++ docs/Makefile | 26 ++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4f3a167a..fc62191c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,12 @@ /freegames.egg-info/ .DS_Store + + +.vscode/ + +#unnecessary files +*.mo +*.pot + + diff --git a/docs/Makefile b/docs/Makefile index 8938d855..675eb67a 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -9,6 +9,11 @@ SPHINXPROJ = FreeGames SOURCEDIR = . BUILDDIR = _build +LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) + +MV = mv +RM = rm -r + # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -18,19 +23,28 @@ help: update-po: gettext $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) -pot: gettext - @cp $(BUILDDIR)/gettext/*.pot locale/ - -%-translated: LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) %-translated: @for locale in $(LOCALES); do \ SPHINXOPTS="-D language=$$locale"; \ BUILDDIR="$(BUILDDIR)/$$locale"; \ - TARGET="$(patsubst %-translated,%,$@)"; \ - $(SPHINXBUILD) -M "$$TARGET" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ + $(SPHINXBUILD) -M "$(TARGET)" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ done # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + + TARGET=$@ make translated + + @for locale in $(LOCALES); do \ + LOCALEDIR="$(BUILDDIR)/$$locale"; \ + TARGETDIR="$(BUILDDIR)/$@/$$locale"; \ + $(MV) "$$LOCALEDIR/$@" "$$TARGETDIR"; \ + $(RM) "$$LOCALEDIR"; \ + echo "HTML pages was moved to $$TARGETDIR directory"; \ + done + + +clean: + $(RM) $(BUILDDIR) From f24e31b50bc7d1fdbdd10830babb4ca70aacadc6 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:35:33 -0300 Subject: [PATCH 16/47] removing all .pot files from the repository --- docs/locale/ant.pot | 25 - docs/locale/api.pot | 109 --- docs/locale/bagels.pot | 25 - docs/locale/bounce.pot | 25 - docs/locale/cannon.pot | 25 - docs/locale/connect.pot | 25 - docs/locale/crypto.pot | 25 - docs/locale/curriculum.pot | 505 ----------- docs/locale/development.pot | 141 ---- docs/locale/docs.pot | 1362 ------------------------------ docs/locale/fidget.pot | 25 - docs/locale/flappy.pot | 25 - docs/locale/give-gift-python.pot | 209 ----- docs/locale/guess.pot | 25 - docs/locale/index.pot | 417 --------- docs/locale/life.pot | 25 - docs/locale/maze.pot | 25 - docs/locale/memory.pot | 25 - docs/locale/pacman.pot | 25 - docs/locale/paint.pot | 25 - docs/locale/pong.pot | 25 - docs/locale/simonsays.pot | 25 - docs/locale/snake.pot | 25 - docs/locale/sphinx.pot | 38 - docs/locale/tictactoe.pot | 25 - docs/locale/tiles.pot | 25 - docs/locale/tron.pot | 25 - 27 files changed, 3281 deletions(-) delete mode 100644 docs/locale/ant.pot delete mode 100644 docs/locale/api.pot delete mode 100644 docs/locale/bagels.pot delete mode 100644 docs/locale/bounce.pot delete mode 100644 docs/locale/cannon.pot delete mode 100644 docs/locale/connect.pot delete mode 100644 docs/locale/crypto.pot delete mode 100644 docs/locale/curriculum.pot delete mode 100644 docs/locale/development.pot delete mode 100644 docs/locale/docs.pot delete mode 100644 docs/locale/fidget.pot delete mode 100644 docs/locale/flappy.pot delete mode 100644 docs/locale/give-gift-python.pot delete mode 100644 docs/locale/guess.pot delete mode 100644 docs/locale/index.pot delete mode 100644 docs/locale/life.pot delete mode 100644 docs/locale/maze.pot delete mode 100644 docs/locale/memory.pot delete mode 100644 docs/locale/pacman.pot delete mode 100644 docs/locale/paint.pot delete mode 100644 docs/locale/pong.pot delete mode 100644 docs/locale/simonsays.pot delete mode 100644 docs/locale/snake.pot delete mode 100644 docs/locale/sphinx.pot delete mode 100644 docs/locale/tictactoe.pot delete mode 100644 docs/locale/tiles.pot delete mode 100644 docs/locale/tron.pot diff --git a/docs/locale/ant.pot b/docs/locale/ant.pot deleted file mode 100644 index 46cf29c4..00000000 --- a/docs/locale/ant.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../ant.rst:2 -msgid "Ant" -msgstr "" - -#: ../../ant.rst:4 -msgid "Ant, simple animation demo." -msgstr "" diff --git a/docs/locale/api.pot b/docs/locale/api.pot deleted file mode 100644 index 9481db57..00000000 --- a/docs/locale/api.pot +++ /dev/null @@ -1,109 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../api.rst:2 -msgid "Free Python Games API Reference" -msgstr "" - -#: ../../api.rst:4 -msgid ":doc:`Free Python Games ` includes a few helpful utilities. The best way to expose beginners to these functions is with Python's built-in help function. Learners should be able to understand and write the drawing functions themselves." -msgstr "" - -#: ../../api.rst:13 -msgid "Drawing Functions" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.line:1 -msgid "Draw line from `(a, b)` to `(x, y)`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.square:1 -msgid "Draw square at `(x, y)` with side length `size` and fill color `name`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.square:3 -msgid "The square is oriented so the bottom left corner is at (x, y)." -msgstr "" - -#: ../../api.rst:20 -msgid "Helper Functions" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:1 -msgid "Floor of `value` given `size` and `offset`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:3 -msgid "The floor function is best understood with a diagram of the number line::" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:8 -msgid "The number line shown has offset 200 denoted by the left-hand tick mark at -200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. The floor of a value is the left-hand tick mark of the range where it lies. So for the points show above: ``floor(x)`` is -200, ``floor(y)`` is 0, and ``floor(z)`` is 100." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.path:1 -msgid "Return full path to `filename` in freegames module." -msgstr "" - -#: ../../api.rst:27 -msgid "Vectors" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector:1 -msgid "Two-dimensional vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector:3 -msgid "Vectors can be modified in-place." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__init__:1 -msgid "Initialize vector with coordinates: x, y." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__add__:1 -msgid "v.__add__(w) -> v + w" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__mul__:1 -msgid "v.__mul__(w) -> v * w" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.copy:1 -msgid "Return copy of vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.move:1 -msgid "Move vector by other (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.rotate:1 -msgid "Rotate vector counter-clockwise by angle (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.scale:1 -msgid "Scale vector by other (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.vector.x:1 -msgid "X-axis component of vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.vector.y:1 -msgid "Y-axis component of vector." -msgstr "" diff --git a/docs/locale/bagels.pot b/docs/locale/bagels.pot deleted file mode 100644 index e408073e..00000000 --- a/docs/locale/bagels.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../bagels.rst:2 -msgid "Bagels" -msgstr "" - -#: ../../bagels.rst:4 -msgid "Bagels, a number puzzle game." -msgstr "" diff --git a/docs/locale/bounce.pot b/docs/locale/bounce.pot deleted file mode 100644 index 14d998cf..00000000 --- a/docs/locale/bounce.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../bounce.rst:2 -msgid "Bounce" -msgstr "" - -#: ../../bounce.rst:4 -msgid "Bounce, a simple animation demo." -msgstr "" diff --git a/docs/locale/cannon.pot b/docs/locale/cannon.pot deleted file mode 100644 index 75320acf..00000000 --- a/docs/locale/cannon.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../cannon.rst:2 -msgid "Cannon" -msgstr "" - -#: ../../cannon.rst:4 -msgid "Cannon, hitting targets with projectiles." -msgstr "" diff --git a/docs/locale/connect.pot b/docs/locale/connect.pot deleted file mode 100644 index 484d26d4..00000000 --- a/docs/locale/connect.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../connect.rst:2 -msgid "Connect Four" -msgstr "" - -#: ../../connect.rst:4 -msgid "Connect Four, two-player connection game." -msgstr "" diff --git a/docs/locale/crypto.pot b/docs/locale/crypto.pot deleted file mode 100644 index 8656d08c..00000000 --- a/docs/locale/crypto.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../crypto.rst:2 -msgid "Crypto" -msgstr "" - -#: ../../crypto.rst:4 -msgid "Crypto: tool for encrypting and decrypting messages." -msgstr "" diff --git a/docs/locale/curriculum.pot b/docs/locale/curriculum.pot deleted file mode 100644 index a524e591..00000000 --- a/docs/locale/curriculum.pot +++ /dev/null @@ -1,505 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../curriculum.rst:2 -msgid "Free Python Games Curriculum" -msgstr "" - -#: ../../curriculum.rst:4 -msgid "What follows are notes for a week-long curriculum developed for Maker Camp at The River Church Community. Maker Camp was a summer day camp for Middle School students in the California Bay Area." -msgstr "" - -#: ../../curriculum.rst:8 -msgid "Each game has exercises at the top." -msgstr "" - -#: ../../curriculum.rst:9 -msgid "Visualize code with http://pythontutor.com" -msgstr "" - -#: ../../curriculum.rst:10 -msgid "Extras: $ python3 -m turtledemo" -msgstr "" - -#: ../../curriculum.rst:14 -msgid "Day 1" -msgstr "" - -#: ../../curriculum.rst:16 -msgid "What is a computer? Calculator + Clock." -msgstr "" - -#: ../../curriculum.rst:17 -msgid "Discuss Alan Turing and Turing Machines." -msgstr "" - -#: ../../curriculum.rst:18 -msgid "Discuss John Von Neumann and Von Neumann Machines." -msgstr "" - -#: ../../curriculum.rst:19 -msgid "What is a program? Computer Recipe." -msgstr "" - -#: ../../curriculum.rst:20 -msgid "Introduce Terminal, black background, give the computer commands." -msgstr "" - -#: ../../curriculum.rst:21 -msgid "Introduce Python Shell, white background, write Python statements." -msgstr "" - -#: ../../curriculum.rst:22 -msgid "Activity: connect and decorate computers." -msgstr "" - -#: ../../curriculum.rst:23 -msgid "Problem solving: divide and conquer." -msgstr "" - -#: ../../curriculum.rst:24 -msgid "Statements: assignment, if/elif/else, while, import" -msgstr "" - -#: ../../curriculum.rst:25 -msgid "Data types: int, str" -msgstr "" - -#: ../../curriculum.rst:26 -msgid "Functions: print, help, int" -msgstr "" - -#: ../../curriculum.rst:27 -msgid "Modules: random" -msgstr "" - -#: ../../curriculum.rst:30 -#: ../../curriculum.rst:70 -#: ../../curriculum.rst:115 -#: ../../curriculum.rst:157 -#: ../../curriculum.rst:184 -msgid "Games" -msgstr "" - -#: ../../curriculum.rst:32 -msgid ":doc:`guess`.py - Guess number within range." -msgstr "" - -#: ../../curriculum.rst:34 -msgid "Explain: from random import randint" -msgstr "" - -#: ../../curriculum.rst:35 -msgid "randint(...)" -msgstr "" - -#: ../../curriculum.rst:36 -msgid "Variables" -msgstr "" - -#: ../../curriculum.rst:37 -msgid "Equality" -msgstr "" - -#: ../../curriculum.rst:38 -msgid "print(...)" -msgstr "" - -#: ../../curriculum.rst:39 -msgid "Inequality" -msgstr "" - -#: ../../curriculum.rst:40 -msgid "input(...)" -msgstr "" - -#: ../../curriculum.rst:41 -msgid "int(...)" -msgstr "" - -#: ../../curriculum.rst:42 -msgid "Increase range to 1,000 and guess the number." -msgstr "" - -#: ../../curriculum.rst:43 -msgid "Discuss method of guessing. That's an algorithm!" -msgstr "" - -#: ../../curriculum.rst:45 -msgid ":doc:`snake`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:48 -#: ../../curriculum.rst:97 -#: ../../curriculum.rst:139 -#: ../../curriculum.rst:166 -#: ../../curriculum.rst:191 -msgid "Bible Story" -msgstr "" - -#: ../../curriculum.rst:50 -msgid "Genesis 1 - God the Creator (Creation)" -msgstr "" - -#: ../../curriculum.rst:52 -msgid "What did God do at the beginning?" -msgstr "" - -#: ../../curriculum.rst:53 -msgid "What did God see in creation?" -msgstr "" - -#: ../../curriculum.rst:54 -msgid "What is special about people?" -msgstr "" - -#: ../../curriculum.rst:55 -msgid "Why do we create things?" -msgstr "" - -#: ../../curriculum.rst:59 -msgid "Day 2" -msgstr "" - -#: ../../curriculum.rst:61 -msgid "Activity: Blind partner obstacle course." -msgstr "" - -#: ../../curriculum.rst:62 -msgid "Problem solving: brute-force." -msgstr "" - -#: ../../curriculum.rst:63 -msgid "Famous Christian programmer: Donald Knuth" -msgstr "" - -#: ../../curriculum.rst:64 -msgid "Statements: try/except, for, def" -msgstr "" - -#: ../../curriculum.rst:65 -msgid "Data types: float, bool" -msgstr "" - -#: ../../curriculum.rst:66 -msgid "Functions: type, dir, str, ord, chr" -msgstr "" - -#: ../../curriculum.rst:67 -msgid "Modules: turtle" -msgstr "" - -#: ../../curriculum.rst:72 -msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages." -msgstr "" - -#: ../../curriculum.rst:74 -msgid "ord function and chr function" -msgstr "" - -#: ../../curriculum.rst:75 -msgid "modulo operator" -msgstr "" - -#: ../../curriculum.rst:76 -msgid "Write decode function" -msgstr "" - -#: ../../curriculum.rst:77 -msgid "Encrypt numbers" -msgstr "" - -#: ../../curriculum.rst:79 -msgid ":doc:`paint`.py - Draw shapes." -msgstr "" - -#: ../../curriculum.rst:81 -msgid "Draw line" -msgstr "" - -#: ../../curriculum.rst:82 -msgid "Draw square" -msgstr "" - -#: ../../curriculum.rst:83 -msgid "for-statement, range function." -msgstr "" - -#: ../../curriculum.rst:84 -msgid "Draw five-pointed star: forward(50); right(144) (x5)" -msgstr "" - -#: ../../curriculum.rst:85 -msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)" -msgstr "" - -#: ../../curriculum.rst:86 -msgid "help(...)" -msgstr "" - -#: ../../curriculum.rst:87 -msgid "undo(...)" -msgstr "" - -#: ../../curriculum.rst:88 -msgid "def-statement, refactor code to star function" -msgstr "" - -#: ../../curriculum.rst:89 -msgid "color('green'); color('blue', 'yellow')" -msgstr "" - -#: ../../curriculum.rst:90 -msgid "begin_fill(); end_fill()" -msgstr "" - -#: ../../curriculum.rst:91 -msgid "width function" -msgstr "" - -#: ../../curriculum.rst:92 -msgid "Write polygon(sides, length) function" -msgstr "" - -#: ../../curriculum.rst:94 -msgid ":doc:`flappy`.py - Flappy Bird inspired game." -msgstr "" - -#: ../../curriculum.rst:99 -msgid "Genesis 6:5-22 - God the Engineer (Noah)" -msgstr "" - -#: ../../curriculum.rst:101 -msgid "Why did God regret making people?" -msgstr "" - -#: ../../curriculum.rst:102 -msgid "How was Noah different?" -msgstr "" - -#: ../../curriculum.rst:103 -msgid "What was God's plan?" -msgstr "" - -#: ../../curriculum.rst:104 -msgid "How are we washed today?" -msgstr "" - -#: ../../curriculum.rst:108 -msgid "Day 3" -msgstr "" - -#: ../../curriculum.rst:110 -msgid "Activity: Simon Says" -msgstr "" - -#: ../../curriculum.rst:111 -msgid "Famous Christian programmer: Fred Brooks" -msgstr "" - -#: ../../curriculum.rst:112 -msgid "Functions: onscreenclick, onkey, ontimer" -msgstr "" - -#: ../../curriculum.rst:117 -msgid ":doc:`bagels`.py - Digit guessing puzzle." -msgstr "" - -#: ../../curriculum.rst:118 -msgid "Animation" -msgstr "" - -#: ../../curriculum.rst:120 -msgid "Draw arc: circle(100, 90)" -msgstr "" - -#: ../../curriculum.rst:121 -msgid "flower(...)" -msgstr "" - -#: ../../curriculum.rst:122 -msgid "Draw flower and rotate" -msgstr "" - -#: ../../curriculum.rst:123 -msgid "ontimer(...)" -msgstr "" - -#: ../../curriculum.rst:124 -msgid "hideturtle(); tracer(False); polygon(4, 200); update()" -msgstr "" - -#: ../../curriculum.rst:126 -msgid ":doc:`tictactoe`.py - Tic-tac-toe." -msgstr "" - -#: ../../curriculum.rst:128 -msgid "line(...)" -msgstr "" - -#: ../../curriculum.rst:129 -msgid "grid(...)" -msgstr "" - -#: ../../curriculum.rst:130 -msgid "drawx(...)" -msgstr "" - -#: ../../curriculum.rst:131 -msgid "drawo(...)" -msgstr "" - -#: ../../curriculum.rst:132 -msgid "floor(...)" -msgstr "" - -#: ../../curriculum.rst:133 -msgid "onscreenclick(goto)" -msgstr "" - -#: ../../curriculum.rst:135 -msgid ":doc:`simonsays`.py - Simon Says" -msgstr "" - -#: ../../curriculum.rst:136 -msgid ":doc:`cannon`.py - Hitting targets with projectiles." -msgstr "" - -#: ../../curriculum.rst:141 -msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")" -msgstr "" - -#: ../../curriculum.rst:143 -msgid "What did Isaiah say would happen?" -msgstr "" - -#: ../../curriculum.rst:144 -msgid "What did John the Baptist say would happen?" -msgstr "" - -#: ../../curriculum.rst:145 -msgid "What did God say about Jesus? When?" -msgstr "" - -#: ../../curriculum.rst:146 -msgid "How did Jesus give his disciples new jobs?" -msgstr "" - -#: ../../curriculum.rst:150 -msgid "Day 4" -msgstr "" - -#: ../../curriculum.rst:152 -msgid "Activity: Collage of concepts." -msgstr "" - -#: ../../curriculum.rst:153 -msgid "Famous Christian programmer: Larry Wall" -msgstr "" - -#: ../../curriculum.rst:154 -msgid "Data types: list, dict, vector" -msgstr "" - -#: ../../curriculum.rst:159 -msgid ":doc:`bounce`.py - Simple animation demo." -msgstr "" - -#: ../../curriculum.rst:160 -msgid ":doc:`pong`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:161 -msgid ":doc:`ant`.py - Simple animation demo." -msgstr "" - -#: ../../curriculum.rst:162 -msgid ":doc:`tron`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:163 -msgid ":doc:`tiles`.py - Puzzle game of number shuffling." -msgstr "" - -#: ../../curriculum.rst:168 -msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)" -msgstr "" - -#: ../../curriculum.rst:170 -msgid "What does Jesus tell the disciples?" -msgstr "" - -#: ../../curriculum.rst:171 -msgid "What does the man tell the Pharisees?" -msgstr "" - -#: ../../curriculum.rst:172 -msgid "What does the man believe about Jesus?" -msgstr "" - -#: ../../curriculum.rst:173 -msgid "What do you believe about Jesus?" -msgstr "" - -#: ../../curriculum.rst:177 -msgid "Day 5" -msgstr "" - -#: ../../curriculum.rst:179 -msgid "Activity: Make or modify your own game." -msgstr "" - -#: ../../curriculum.rst:180 -msgid "Famous Christian programmer: Jon Skeet" -msgstr "" - -#: ../../curriculum.rst:181 -msgid "Answer: What next?" -msgstr "" - -#: ../../curriculum.rst:186 -msgid ":doc:`connect`.py - Connect Four" -msgstr "" - -#: ../../curriculum.rst:187 -msgid ":doc:`memory`.py - Puzzle game of number pairs." -msgstr "" - -#: ../../curriculum.rst:188 -msgid ":doc:`pacman`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:193 -msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)" -msgstr "" - -#: ../../curriculum.rst:195 -msgid "What does God make? When?" -msgstr "" - -#: ../../curriculum.rst:196 -msgid "Who is the Lamb and the Bride?" -msgstr "" - -#: ../../curriculum.rst:197 -msgid "What is special about the city?" -msgstr "" - -#: ../../curriculum.rst:198 -msgid "How can we live in the Holy City?" -msgstr "" diff --git a/docs/locale/development.pot b/docs/locale/development.pot deleted file mode 100644 index f79c7238..00000000 --- a/docs/locale/development.pot +++ /dev/null @@ -1,141 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../development.rst:2 -msgid "Free Python Games Development" -msgstr "" - -#: ../../development.rst:4 -msgid ":doc:`Free Python Games ` development is lead by Grant Jenks ." -msgstr "" - -#: ../../development.rst:8 -msgid "Collaborators Welcome" -msgstr "" - -#: ../../development.rst:10 -msgid "Search issues or open a new issue to start a discussion around a bug." -msgstr "" - -#: ../../development.rst:11 -msgid "Fork the `GitHub repository`_ and make your changes in a new branch." -msgstr "" - -#: ../../development.rst:12 -msgid "Write a test which shows the bug was fixed." -msgstr "" - -#: ../../development.rst:13 -msgid "Send a pull request and message the development lead until its merged and published." -msgstr "" - -#: ../../development.rst:19 -msgid "Requests for Contributions" -msgstr "" - -#: ../../development.rst:21 -msgid "Simplifications to existing games." -msgstr "" - -#: ../../development.rst:22 -msgid "Refactoring to simplify games." -msgstr "" - -#: ../../development.rst:23 -msgid "Improved documentation." -msgstr "" - -#: ../../development.rst:24 -msgid "Additional games. Requirements for new games:" -msgstr "" - -#: ../../development.rst:26 -msgid "Fun to play." -msgstr "" - -#: ../../development.rst:27 -msgid "Matching code style." -msgstr "" - -#: ../../development.rst:28 -msgid "Limited Python feature set." -msgstr "" - -#: ../../development.rst:29 -msgid "Short (less than 100 lines of code)." -msgstr "" - -#: ../../development.rst:32 -msgid "Get the Code" -msgstr "" - -#: ../../development.rst:34 -msgid ":doc:`Free Python Games ` is actively developed in a `GitHub repository`_." -msgstr "" - -#: ../../development.rst:37 -msgid "You can either clone the public repository::" -msgstr "" - -#: ../../development.rst:41 -msgid "Download the `tarball `_::" -msgstr "" - -#: ../../development.rst:45 -msgid "Or, download the `zipball `_::" -msgstr "" - -#: ../../development.rst:50 -msgid "Installing Dependencies" -msgstr "" - -#: ../../development.rst:52 -msgid "Install development dependencies with `pip `_::" -msgstr "" - -#: ../../development.rst:56 -msgid "All packages for running tests and building documentation will be installed." -msgstr "" - -#: ../../development.rst:59 -msgid "Testing" -msgstr "" - -#: ../../development.rst:61 -msgid ":doc:`Free Python Games ` currently tests against three versions of Python:" -msgstr "" - -#: ../../development.rst:64 -msgid "CPython 3.4" -msgstr "" - -#: ../../development.rst:65 -msgid "CPython 3.5" -msgstr "" - -#: ../../development.rst:66 -msgid "CPython 3.6" -msgstr "" - -#: ../../development.rst:68 -msgid "Testing uses `tox `_. If you don't want to install all the development requirements, then, after downloading, you can simply run::" -msgstr "" - -#: ../../development.rst:74 -msgid "The test argument to setup.py will download a minimal testing infrastructure and run the tests." -msgstr "" diff --git a/docs/locale/docs.pot b/docs/locale/docs.pot deleted file mode 100644 index 1d92d8cd..00000000 --- a/docs/locale/docs.pot +++ /dev/null @@ -1,1362 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-04-18 17:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../ant.rst:2 -msgid "Ant" -msgstr "" - -#: ../../ant.rst:4 -msgid "Ant, simple animation demo." -msgstr "" - -#: ../../api.rst:2 -msgid "Free Python Games API Reference" -msgstr "" - -#: ../../api.rst:4 -msgid ":doc:`Free Python Games ` includes a few helpful utilities. The best way to expose beginners to these functions is with Python's built-in help function. Learners should be able to understand and write the drawing functions themselves." -msgstr "" - -#: ../../api.rst:13 -msgid "Drawing Functions" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.line:1 -msgid "Draw line from `(a, b)` to `(x, y)`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.square:1 -msgid "Draw square at `(x, y)` with side length `size` and fill color `name`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.square:3 -msgid "The square is oriented so the bottom left corner is at (x, y)." -msgstr "" - -#: ../../api.rst:20 -msgid "Helper Functions" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:1 -msgid "Floor of `value` given `size` and `offset`." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:3 -msgid "The floor function is best understood with a diagram of the number line::" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.floor:8 -msgid "The number line shown has offset 200 denoted by the left-hand tick mark at -200 and size 100 denoted by the tick marks at -100, 0, 100, and 200. The floor of a value is the left-hand tick mark of the range where it lies. So for the points show above: ``floor(x)`` is -200, ``floor(y)`` is 0, and ``floor(z)`` is 100." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.path:1 -msgid "Return full path to `filename` in freegames module." -msgstr "" - -#: ../../api.rst:27 -msgid "Vectors" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector:1 -msgid "Two-dimensional vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector:3 -msgid "Vectors can be modified in-place." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__init__:1 -msgid "Initialize vector with coordinates: x, y." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__add__:1 -msgid "v.__add__(w) -> v + w" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.__mul__:1 -msgid "v.__mul__(w) -> v * w" -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.copy:1 -msgid "Return copy of vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.move:1 -msgid "Move vector by other (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.rotate:1 -msgid "Rotate vector counter-clockwise by angle (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.utils.vector.scale:1 -msgid "Scale vector by other (in-place)." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.vector.x:1 -msgid "X-axis component of vector." -msgstr "" - -#: ../../../freegames/utils.py:docstring of freegames.vector.y:1 -msgid "Y-axis component of vector." -msgstr "" - -#: ../../bagels.rst:2 -msgid "Bagels" -msgstr "" - -#: ../../bagels.rst:4 -msgid "Bagels, a number puzzle game." -msgstr "" - -#: ../../bounce.rst:2 -msgid "Bounce" -msgstr "" - -#: ../../bounce.rst:4 -msgid "Bounce, a simple animation demo." -msgstr "" - -#: ../../cannon.rst:2 -#: ../../../README.rst:169 -msgid "Cannon" -msgstr "" - -#: ../../cannon.rst:4 -msgid "Cannon, hitting targets with projectiles." -msgstr "" - -#: ../../connect.rst:2 -msgid "Connect Four" -msgstr "" - -#: ../../connect.rst:4 -msgid "Connect Four, two-player connection game." -msgstr "" - -#: ../../crypto.rst:2 -msgid "Crypto" -msgstr "" - -#: ../../crypto.rst:4 -msgid "Crypto: tool for encrypting and decrypting messages." -msgstr "" - -#: ../../curriculum.rst:2 -msgid "Free Python Games Curriculum" -msgstr "" - -#: ../../curriculum.rst:4 -msgid "What follows are notes for a week-long curriculum developed for Maker Camp at The River Church Community. Maker Camp was a summer day camp for Middle School students in the California Bay Area." -msgstr "" - -#: ../../curriculum.rst:8 -msgid "Each game has exercises at the top." -msgstr "" - -#: ../../curriculum.rst:9 -msgid "Visualize code with http://pythontutor.com" -msgstr "" - -#: ../../curriculum.rst:10 -msgid "Extras: $ python3 -m turtledemo" -msgstr "" - -#: ../../curriculum.rst:14 -msgid "Day 1" -msgstr "" - -#: ../../curriculum.rst:16 -msgid "What is a computer? Calculator + Clock." -msgstr "" - -#: ../../curriculum.rst:17 -msgid "Discuss Alan Turing and Turing Machines." -msgstr "" - -#: ../../curriculum.rst:18 -msgid "Discuss John Von Neumann and Von Neumann Machines." -msgstr "" - -#: ../../curriculum.rst:19 -msgid "What is a program? Computer Recipe." -msgstr "" - -#: ../../curriculum.rst:20 -msgid "Introduce Terminal, black background, give the computer commands." -msgstr "" - -#: ../../curriculum.rst:21 -msgid "Introduce Python Shell, white background, write Python statements." -msgstr "" - -#: ../../curriculum.rst:22 -msgid "Activity: connect and decorate computers." -msgstr "" - -#: ../../curriculum.rst:23 -msgid "Problem solving: divide and conquer." -msgstr "" - -#: ../../curriculum.rst:24 -msgid "Statements: assignment, if/elif/else, while, import" -msgstr "" - -#: ../../curriculum.rst:25 -msgid "Data types: int, str" -msgstr "" - -#: ../../curriculum.rst:26 -msgid "Functions: print, help, int" -msgstr "" - -#: ../../curriculum.rst:27 -msgid "Modules: random" -msgstr "" - -#: ../../curriculum.rst:30 -#: ../../curriculum.rst:70 -#: ../../curriculum.rst:115 -#: ../../curriculum.rst:157 -#: ../../curriculum.rst:184 -msgid "Games" -msgstr "" - -#: ../../curriculum.rst:32 -msgid ":doc:`guess`.py - Guess number within range." -msgstr "" - -#: ../../curriculum.rst:34 -msgid "Explain: from random import randint" -msgstr "" - -#: ../../curriculum.rst:35 -msgid "randint(...)" -msgstr "" - -#: ../../curriculum.rst:36 -msgid "Variables" -msgstr "" - -#: ../../curriculum.rst:37 -msgid "Equality" -msgstr "" - -#: ../../curriculum.rst:38 -msgid "print(...)" -msgstr "" - -#: ../../curriculum.rst:39 -msgid "Inequality" -msgstr "" - -#: ../../curriculum.rst:40 -msgid "input(...)" -msgstr "" - -#: ../../curriculum.rst:41 -msgid "int(...)" -msgstr "" - -#: ../../curriculum.rst:42 -msgid "Increase range to 1,000 and guess the number." -msgstr "" - -#: ../../curriculum.rst:43 -msgid "Discuss method of guessing. That's an algorithm!" -msgstr "" - -#: ../../curriculum.rst:45 -msgid ":doc:`snake`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:48 -#: ../../curriculum.rst:97 -#: ../../curriculum.rst:139 -#: ../../curriculum.rst:166 -#: ../../curriculum.rst:191 -msgid "Bible Story" -msgstr "" - -#: ../../curriculum.rst:50 -msgid "Genesis 1 - God the Creator (Creation)" -msgstr "" - -#: ../../curriculum.rst:52 -msgid "What did God do at the beginning?" -msgstr "" - -#: ../../curriculum.rst:53 -msgid "What did God see in creation?" -msgstr "" - -#: ../../curriculum.rst:54 -msgid "What is special about people?" -msgstr "" - -#: ../../curriculum.rst:55 -msgid "Why do we create things?" -msgstr "" - -#: ../../curriculum.rst:59 -msgid "Day 2" -msgstr "" - -#: ../../curriculum.rst:61 -msgid "Activity: Blind partner obstacle course." -msgstr "" - -#: ../../curriculum.rst:62 -msgid "Problem solving: brute-force." -msgstr "" - -#: ../../curriculum.rst:63 -msgid "Famous Christian programmer: Donald Knuth" -msgstr "" - -#: ../../curriculum.rst:64 -msgid "Statements: try/except, for, def" -msgstr "" - -#: ../../curriculum.rst:65 -msgid "Data types: float, bool" -msgstr "" - -#: ../../curriculum.rst:66 -msgid "Functions: type, dir, str, ord, chr" -msgstr "" - -#: ../../curriculum.rst:67 -msgid "Modules: turtle" -msgstr "" - -#: ../../curriculum.rst:72 -msgid ":doc:`crypto`.py - Encrypt, decrypt and decode messages." -msgstr "" - -#: ../../curriculum.rst:74 -msgid "ord function and chr function" -msgstr "" - -#: ../../curriculum.rst:75 -msgid "modulo operator" -msgstr "" - -#: ../../curriculum.rst:76 -msgid "Write decode function" -msgstr "" - -#: ../../curriculum.rst:77 -msgid "Encrypt numbers" -msgstr "" - -#: ../../curriculum.rst:79 -msgid ":doc:`paint`.py - Draw shapes." -msgstr "" - -#: ../../curriculum.rst:81 -msgid "Draw line" -msgstr "" - -#: ../../curriculum.rst:82 -msgid "Draw square" -msgstr "" - -#: ../../curriculum.rst:83 -msgid "for-statement, range function." -msgstr "" - -#: ../../curriculum.rst:84 -msgid "Draw five-pointed star: forward(50); right(144) (x5)" -msgstr "" - -#: ../../curriculum.rst:85 -msgid "Draw six-pointed star: forward(50); left(60); forward(50); right(120) (x6)" -msgstr "" - -#: ../../curriculum.rst:86 -#: ../../give-gift-python.rst:141 -msgid "help(...)" -msgstr "" - -#: ../../curriculum.rst:87 -#: ../../give-gift-python.rst:142 -msgid "undo(...)" -msgstr "" - -#: ../../curriculum.rst:88 -msgid "def-statement, refactor code to star function" -msgstr "" - -#: ../../curriculum.rst:89 -msgid "color('green'); color('blue', 'yellow')" -msgstr "" - -#: ../../curriculum.rst:90 -msgid "begin_fill(); end_fill()" -msgstr "" - -#: ../../curriculum.rst:91 -msgid "width function" -msgstr "" - -#: ../../curriculum.rst:92 -msgid "Write polygon(sides, length) function" -msgstr "" - -#: ../../curriculum.rst:94 -msgid ":doc:`flappy`.py - Flappy Bird inspired game." -msgstr "" - -#: ../../curriculum.rst:99 -msgid "Genesis 6:5-22 - God the Engineer (Noah)" -msgstr "" - -#: ../../curriculum.rst:101 -msgid "Why did God regret making people?" -msgstr "" - -#: ../../curriculum.rst:102 -msgid "How was Noah different?" -msgstr "" - -#: ../../curriculum.rst:103 -msgid "What was God's plan?" -msgstr "" - -#: ../../curriculum.rst:104 -msgid "How are we washed today?" -msgstr "" - -#: ../../curriculum.rst:108 -msgid "Day 3" -msgstr "" - -#: ../../curriculum.rst:110 -msgid "Activity: Simon Says" -msgstr "" - -#: ../../curriculum.rst:111 -msgid "Famous Christian programmer: Fred Brooks" -msgstr "" - -#: ../../curriculum.rst:112 -msgid "Functions: onscreenclick, onkey, ontimer" -msgstr "" - -#: ../../curriculum.rst:117 -msgid ":doc:`bagels`.py - Digit guessing puzzle." -msgstr "" - -#: ../../curriculum.rst:118 -#: ../../give-gift-python.rst:120 -msgid "Animation" -msgstr "" - -#: ../../curriculum.rst:120 -msgid "Draw arc: circle(100, 90)" -msgstr "" - -#: ../../curriculum.rst:121 -msgid "flower(...)" -msgstr "" - -#: ../../curriculum.rst:122 -msgid "Draw flower and rotate" -msgstr "" - -#: ../../curriculum.rst:123 -msgid "ontimer(...)" -msgstr "" - -#: ../../curriculum.rst:124 -msgid "hideturtle(); tracer(False); polygon(4, 200); update()" -msgstr "" - -#: ../../curriculum.rst:126 -msgid ":doc:`tictactoe`.py - Tic-tac-toe." -msgstr "" - -#: ../../curriculum.rst:128 -msgid "line(...)" -msgstr "" - -#: ../../curriculum.rst:129 -msgid "grid(...)" -msgstr "" - -#: ../../curriculum.rst:130 -msgid "drawx(...)" -msgstr "" - -#: ../../curriculum.rst:131 -msgid "drawo(...)" -msgstr "" - -#: ../../curriculum.rst:132 -msgid "floor(...)" -msgstr "" - -#: ../../curriculum.rst:133 -msgid "onscreenclick(goto)" -msgstr "" - -#: ../../curriculum.rst:135 -msgid ":doc:`simonsays`.py - Simon Says" -msgstr "" - -#: ../../curriculum.rst:136 -msgid ":doc:`cannon`.py - Hitting targets with projectiles." -msgstr "" - -#: ../../curriculum.rst:141 -msgid "Mark 1:1-18 - God the Programmer (\"fishers of people\")" -msgstr "" - -#: ../../curriculum.rst:143 -msgid "What did Isaiah say would happen?" -msgstr "" - -#: ../../curriculum.rst:144 -msgid "What did John the Baptist say would happen?" -msgstr "" - -#: ../../curriculum.rst:145 -msgid "What did God say about Jesus? When?" -msgstr "" - -#: ../../curriculum.rst:146 -msgid "How did Jesus give his disciples new jobs?" -msgstr "" - -#: ../../curriculum.rst:150 -msgid "Day 4" -msgstr "" - -#: ../../curriculum.rst:152 -msgid "Activity: Collage of concepts." -msgstr "" - -#: ../../curriculum.rst:153 -msgid "Famous Christian programmer: Larry Wall" -msgstr "" - -#: ../../curriculum.rst:154 -msgid "Data types: list, dict, vector" -msgstr "" - -#: ../../curriculum.rst:159 -msgid ":doc:`bounce`.py - Simple animation demo." -msgstr "" - -#: ../../curriculum.rst:160 -msgid ":doc:`pong`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:161 -msgid ":doc:`ant`.py - Simple animation demo." -msgstr "" - -#: ../../curriculum.rst:162 -msgid ":doc:`tron`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:163 -msgid ":doc:`tiles`.py - Puzzle game of number shuffling." -msgstr "" - -#: ../../curriculum.rst:168 -msgid "John 9:1-33 - God the Debugger (Blind Man and Jesus)" -msgstr "" - -#: ../../curriculum.rst:170 -msgid "What does Jesus tell the disciples?" -msgstr "" - -#: ../../curriculum.rst:171 -msgid "What does the man tell the Pharisees?" -msgstr "" - -#: ../../curriculum.rst:172 -msgid "What does the man believe about Jesus?" -msgstr "" - -#: ../../curriculum.rst:173 -msgid "What do you believe about Jesus?" -msgstr "" - -#: ../../curriculum.rst:177 -msgid "Day 5" -msgstr "" - -#: ../../curriculum.rst:179 -msgid "Activity: Make or modify your own game." -msgstr "" - -#: ../../curriculum.rst:180 -msgid "Famous Christian programmer: Jon Skeet" -msgstr "" - -#: ../../curriculum.rst:181 -msgid "Answer: What next?" -msgstr "" - -#: ../../curriculum.rst:186 -msgid ":doc:`connect`.py - Connect Four" -msgstr "" - -#: ../../curriculum.rst:187 -msgid ":doc:`memory`.py - Puzzle game of number pairs." -msgstr "" - -#: ../../curriculum.rst:188 -msgid ":doc:`pacman`.py - Classic arcade game." -msgstr "" - -#: ../../curriculum.rst:193 -msgid "Revelation 21 - God the Restorer (New Heaven and New Earth)" -msgstr "" - -#: ../../curriculum.rst:195 -msgid "What does God make? When?" -msgstr "" - -#: ../../curriculum.rst:196 -msgid "Who is the Lamb and the Bride?" -msgstr "" - -#: ../../curriculum.rst:197 -msgid "What is special about the city?" -msgstr "" - -#: ../../curriculum.rst:198 -msgid "How can we live in the Holy City?" -msgstr "" - -#: ../../development.rst:2 -msgid "Free Python Games Development" -msgstr "" - -#: ../../development.rst:4 -msgid ":doc:`Free Python Games ` development is lead by Grant Jenks ." -msgstr "" - -#: ../../development.rst:8 -msgid "Collaborators Welcome" -msgstr "" - -#: ../../development.rst:10 -msgid "Search issues or open a new issue to start a discussion around a bug." -msgstr "" - -#: ../../development.rst:11 -msgid "Fork the `GitHub repository`_ and make your changes in a new branch." -msgstr "" - -#: ../../development.rst:12 -msgid "Write a test which shows the bug was fixed." -msgstr "" - -#: ../../development.rst:13 -msgid "Send a pull request and message the development lead until its merged and published." -msgstr "" - -#: ../../development.rst:19 -msgid "Requests for Contributions" -msgstr "" - -#: ../../development.rst:21 -msgid "Simplifications to existing games." -msgstr "" - -#: ../../development.rst:22 -msgid "Refactoring to simplify games." -msgstr "" - -#: ../../development.rst:23 -msgid "Improved documentation." -msgstr "" - -#: ../../development.rst:24 -msgid "Additional games. Requirements for new games:" -msgstr "" - -#: ../../development.rst:26 -msgid "Fun to play." -msgstr "" - -#: ../../development.rst:27 -msgid "Matching code style." -msgstr "" - -#: ../../development.rst:28 -msgid "Limited Python feature set." -msgstr "" - -#: ../../development.rst:29 -msgid "Short (less than 100 lines of code)." -msgstr "" - -#: ../../development.rst:32 -msgid "Get the Code" -msgstr "" - -#: ../../development.rst:34 -msgid ":doc:`Free Python Games ` is actively developed in a `GitHub repository`_." -msgstr "" - -#: ../../development.rst:37 -msgid "You can either clone the public repository::" -msgstr "" - -#: ../../development.rst:41 -msgid "Download the `tarball `_::" -msgstr "" - -#: ../../development.rst:45 -msgid "Or, download the `zipball `_::" -msgstr "" - -#: ../../development.rst:50 -msgid "Installing Dependencies" -msgstr "" - -#: ../../development.rst:52 -msgid "Install development dependencies with `pip `_::" -msgstr "" - -#: ../../development.rst:56 -msgid "All packages for running tests and building documentation will be installed." -msgstr "" - -#: ../../development.rst:59 -msgid "Testing" -msgstr "" - -#: ../../development.rst:61 -msgid ":doc:`Free Python Games ` currently tests against three versions of Python:" -msgstr "" - -#: ../../development.rst:64 -msgid "CPython 3.4" -msgstr "" - -#: ../../development.rst:65 -msgid "CPython 3.5" -msgstr "" - -#: ../../development.rst:66 -msgid "CPython 3.6" -msgstr "" - -#: ../../development.rst:68 -msgid "Testing uses `tox `_. If you don't want to install all the development requirements, then, after downloading, you can simply run::" -msgstr "" - -#: ../../development.rst:74 -msgid "The test argument to setup.py will download a minimal testing infrastructure and run the tests." -msgstr "" - -#: ../../fidget.rst:2 -#: ../../../README.rst:295 -msgid "Fidget" -msgstr "" - -#: ../../fidget.rst:4 -msgid "Fidget, inspired by fidget spinners." -msgstr "" - -#: ../../flappy.rst:2 -#: ../../../README.rst:192 -msgid "Flappy" -msgstr "" - -#: ../../flappy.rst:4 -msgid "Flappy, game inspired by Flappy Bird." -msgstr "" - -#: ../../give-gift-python.rst:2 -msgid "Give the Gift of Python" -msgstr "" - -#: ../../give-gift-python.rst:4 -msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*" -msgstr "" - -#: ../../give-gift-python.rst:7 -msgid "Who am I?" -msgstr "" - -#: ../../give-gift-python.rst:9 -msgid "Python programmer." -msgstr "" - -#: ../../give-gift-python.rst:10 -msgid "Hundreds of hours of classroom instruction." -msgstr "" - -#: ../../give-gift-python.rst:13 -msgid "What we need?" -msgstr "" - -#: ../../give-gift-python.rst:15 -msgid "Interest!" -msgstr "" - -#: ../../give-gift-python.rst:16 -msgid "Typing skills." -msgstr "" - -#: ../../give-gift-python.rst:17 -msgid "Math: Arithmetic, Algebra, Geometry" -msgstr "" - -#: ../../give-gift-python.rst:20 -msgid "Setup" -msgstr "" - -#: ../../give-gift-python.rst:22 -msgid "Install Python, https://www.python.org/" -msgstr "" - -#: ../../give-gift-python.rst:23 -msgid "Run IDLE, ``$ python -m idlelib.idle``" -msgstr "" - -#: ../../give-gift-python.rst:24 -msgid "Write code." -msgstr "" - -#: ../../give-gift-python.rst:27 -msgid "Open the Turtle Window" -msgstr "" - -#: ../../give-gift-python.rst:35 -msgid "Commands" -msgstr "" - -#: ../../give-gift-python.rst:49 -msgid "Loops" -msgstr "" - -#: ../../give-gift-python.rst:59 -msgid "Shapes" -msgstr "" - -#: ../../give-gift-python.rst:71 -msgid "Dots" -msgstr "" - -#: ../../give-gift-python.rst:79 -msgid "Functions" -msgstr "" - -#: ../../give-gift-python.rst:93 -msgid "Colors" -msgstr "" - -#: ../../give-gift-python.rst:102 -msgid "Locations" -msgstr "" - -#: ../../give-gift-python.rst:113 -msgid "Inputs" -msgstr "" - -#: ../../give-gift-python.rst:115 -msgid "listen" -msgstr "" - -#: ../../give-gift-python.rst:116 -msgid "onclick" -msgstr "" - -#: ../../give-gift-python.rst:117 -msgid "onkey" -msgstr "" - -#: ../../give-gift-python.rst:122 -msgid "ontimer" -msgstr "" - -#: ../../give-gift-python.rst:123 -msgid "hideturtle" -msgstr "" - -#: ../../give-gift-python.rst:124 -msgid "tracer" -msgstr "" - -#: ../../give-gift-python.rst:125 -msgid "clear" -msgstr "" - -#: ../../give-gift-python.rst:126 -msgid "update" -msgstr "" - -#: ../../give-gift-python.rst:139 -msgid "Tips" -msgstr "" - -#: ../../give-gift-python.rst:143 -msgid "Embrace copy/paste" -msgstr "" - -#: ../../give-gift-python.rst:144 -msgid "Close window/reset()" -msgstr "" - -#: ../../give-gift-python.rst:147 -msgid "Activities" -msgstr "" - -#: ../../give-gift-python.rst:149 -msgid "Spell your name." -msgstr "" - -#: ../../give-gift-python.rst:150 -msgid "``python -m pip install freegames``" -msgstr "" - -#: ../../give-gift-python.rst:153 -msgid "Notes" -msgstr "" - -#: ../../give-gift-python.rst:155 -msgid "Start simple! Start easy! Start plain!" -msgstr "" - -#: ../../give-gift-python.rst:156 -msgid "Focus on fun! No PEP8. No Pylint." -msgstr "" - -#: ../../give-gift-python.rst:157 -msgid "Make it readable! Say it aloud." -msgstr "" - -#: ../../give-gift-python.rst:158 -msgid "No special shells! No IPython." -msgstr "" - -#: ../../give-gift-python.rst:159 -msgid "Show them mistakes! Red is your favorite color!" -msgstr "" - -#: ../../give-gift-python.rst:160 -msgid "No virtual environments!" -msgstr "" - -#: ../../give-gift-python.rst:161 -msgid "If they're not ready, don't push them!" -msgstr "" - -#: ../../give-gift-python.rst:162 -msgid "No dunder methods or attributes! No __name__ or __main__." -msgstr "" - -#: ../../guess.rst:2 -msgid "Guess" -msgstr "" - -#: ../../guess.rst:4 -msgid "Guess a number within a range." -msgstr "" - -#: ../../../README.rst:2 -msgid "Free Python Games" -msgstr "" - -#: ../../../README.rst:4 -msgid "`Free Python Games`_ is an Apache2 licensed collection of free Python games intended for education and fun. The games are written in simple Python code and designed for experimentation and changes. Simplified versions of several classic arcade games are included." -msgstr "" - -#: ../../../README.rst:9 -msgid "Python is one of the top-five most popular programming languages in the world and available for free from `Python.org `_. Python includes an extensive Standard Library distributed with your installation. The Standard Library has a module called Turtle which is a popular way to introduce programming to kids. Turtle was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free Python Games`_ are implemented using Python and its Turtle module." -msgstr "" - -#: ../../../README.rst:17 -msgid "Starting in 2012, `Free Python Games`_ began as an after school program to teach programming to inner-city youth. The goal was to have fun as much as it was to learn. Since then the games have been improved and used in a variety of settings ranging from classrooms to summer day-camps." -msgstr "" - -#: ../../../README.rst:22 -msgid "The games run anywhere Python can be installed which includes desktop computers running Windows, Mac OS, or Linux and older or low-power hardware such as the Raspberry Pi. Kids across the United States in grades 6th-12th have enjoyed learning about topics such as encryption and projectile motion through games." -msgstr "" - -#: ../../../README.rst:27 -msgid "Each game is entirely independent from the others and includes comments along with a list of exercises to work through with students. Creativity and flexibility is important. There is no right or wrong way to implement a new feature or behavior! You never know which games students will engage with best." -msgstr "" - -#: ../../../README.rst:36 -msgid "Testimonials" -msgstr "" - -#: ../../../README.rst:38 -msgid "*\"I love Free Python Games because the games are fun and they're easy to understand and change. I like making my own games now.\"*" -msgstr "" - -#: ../../../README.rst:41 -msgid "-- Luke Martin, Student" -msgstr "" - -#: ../../../README.rst:43 -msgid "*\"Free Python Games inspired and introduced a new hobby to our son. Thank you so much for exposing him to coding. He is having so much fun!\"*" -msgstr "" - -#: ../../../README.rst:46 -msgid "-- Mary Lai, Parent" -msgstr "" - -#: ../../../README.rst:48 -msgid "*\"Free Python Games are great because they really engage students and let them learn at their own pace.\"*" -msgstr "" - -#: ../../../README.rst:51 -msgid "-- Rick Schertle, Teacher, Steindorf STEAM School" -msgstr "" - -#: ../../../README.rst:53 -msgid "*\"Free Python Games combines play and learning in a flexible environment that reduces the stress of a difficult topic like programming.\"*" -msgstr "" - -#: ../../../README.rst:56 -msgid "-- Brett Bymaster, Youth Pastor, The River Church Community" -msgstr "" - -#: ../../../README.rst:58 -msgid "*\"Free Python Games is great for students, is highly organized and flexible, and seeks to unleash inquiry and understanding.\"*" -msgstr "" - -#: ../../../README.rst:61 -msgid "-- Terri Furton, Principal, Downtown College Prep" -msgstr "" - -#: ../../../README.rst:65 -msgid "Features" -msgstr "" - -#: ../../../README.rst:67 -msgid "Fun to play!" -msgstr "" - -#: ../../../README.rst:68 -msgid "Simple Python code" -msgstr "" - -#: ../../../README.rst:69 -msgid "Easy to install" -msgstr "" - -#: ../../../README.rst:70 -msgid "Designed for education" -msgstr "" - -#: ../../../README.rst:71 -msgid "Depends only on the Python Standard Library" -msgstr "" - -#: ../../../README.rst:72 -msgid "Used in hundreds of hours of classroom instruction" -msgstr "" - -#: ../../../README.rst:73 -msgid "Fully Documented" -msgstr "" - -#: ../../../README.rst:74 -msgid "100% Test Coverage" -msgstr "" - -#: ../../../README.rst:75 -msgid "Developed on Python 3.7" -msgstr "" - -#: ../../../README.rst:76 -msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" -msgstr "" - -#: ../../../README.rst:77 -msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" -msgstr "" - -#: ../../../README.rst:78 -msgid "Tested using Travis CI and AppVeyor CI" -msgstr "" - -#: ../../../README.rst:88 -msgid "Quickstart" -msgstr "" - -#: ../../../README.rst:90 -msgid "Installing Free Python Games is simple with `pip `_::" -msgstr "" - -#: ../../../README.rst:95 -msgid "Free Python Games supports a command-line interface (CLI). Help for the CLI is available using::" -msgstr "" - -#: ../../../README.rst:100 -msgid "The CLI supports three commands: list, copy, and show. For a list of all games run::" -msgstr "" - -#: ../../../README.rst:105 -msgid "Any of the listed games may be played by executing the Python module from the command-line. To reference the Python module, combine \"freegames\" with the name of the game. For example, to play the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:111 -msgid "Games can be modified by copying their source code. The copy command will create a Python file in your local directory which you can edit. For example, to copy and play the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:118 -msgid "Python includes a built-in text editor named IDLE which can also execute Python code. To launch the editor and make changes to the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:123 -msgid "You can also access documentation in the interpreter with Python's built-in help function::" -msgstr "" - -#: ../../../README.rst:131 -msgid "Free Games" -msgstr "" - -#: ../../../README.rst:134 -#: ../../paint.rst:2 -msgid "Paint" -msgstr "" - -#: ../../../README.rst:136 -msgid "`Paint`_ -- draw lines and shapes on the screen. Click to mark the start of a shape and click again to mark its end. Different shapes and colors can be selected using the keyboard." -msgstr "" - -#: ../../../README.rst:146 -#: ../../snake.rst:2 -msgid "Snake" -msgstr "" - -#: ../../../README.rst:148 -msgid "`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat the green food. Each time the food is consumed, the snake grows one segment longer. Avoid eating yourself or going out of bounds!" -msgstr "" - -#: ../../../README.rst:158 -#: ../../pacman.rst:2 -msgid "Pacman" -msgstr "" - -#: ../../../README.rst:160 -msgid "`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat all the white food. Watch out for red ghosts that roam the maze." -msgstr "" - -#: ../../../README.rst:171 -msgid "`Cannon`_ -- projectile motion. Click the screen to fire your cannnonball. The cannonball pops blue balloons in its path. Pop all the balloons before they can cross the screen." -msgstr "" - -#: ../../../README.rst:181 -msgid "Connect" -msgstr "" - -#: ../../../README.rst:183 -msgid "`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first player to connect four discs vertically, horizontally, or diagonally wins!" -msgstr "" - -#: ../../../README.rst:194 -msgid "`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your wings. Watch out for black ravens as you fly across the screen." -msgstr "" - -#: ../../../README.rst:203 -#: ../../memory.rst:2 -msgid "Memory" -msgstr "" - -#: ../../../README.rst:205 -msgid "`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a number. Match two numbers and the tiles will disappear to reveal an image." -msgstr "" - -#: ../../../README.rst:214 -#: ../../pong.rst:2 -msgid "Pong" -msgstr "" - -#: ../../../README.rst:216 -msgid "`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up and down. The first player to miss the ball loses." -msgstr "" - -#: ../../../README.rst:225 -#: ../../simonsays.rst:2 -msgid "Simon Says" -msgstr "" - -#: ../../../README.rst:227 -msgid "`Simon Says`_ -- classic memory puzzle game. Click the screen to start. Watch the pattern and then click the tiles in the same order. Each time you get the sequence right the pattern gets one step longer." -msgstr "" - -#: ../../../README.rst:237 -#: ../../tictactoe.rst:2 -msgid "Tic Tac Toe" -msgstr "" - -#: ../../../README.rst:239 -msgid "`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. Connect three in a row and you win!" -msgstr "" - -#: ../../../README.rst:248 -#: ../../tiles.rst:2 -msgid "Tiles" -msgstr "" - -#: ../../../README.rst:250 -msgid "`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile adjacent to the empty square to swap positions. Can you make the tiles count one to fifteen from left to right and bottom to top?" -msgstr "" - -#: ../../../README.rst:260 -#: ../../tron.rst:2 -msgid "Tron" -msgstr "" - -#: ../../../README.rst:262 -msgid "`Tron`_ -- classic arcade game. Use the keyboard to change the direction of your Tron player. Avoid touching the line drawn by your opponent." -msgstr "" - -#: ../../../README.rst:271 -#: ../../life.rst:2 -msgid "Life" -msgstr "" - -#: ../../../README.rst:273 -msgid "`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular automation created in 1970 by John Conway." -msgstr "" - -#: ../../../README.rst:282 -#: ../../maze.rst:2 -msgid "Maze" -msgstr "" - -#: ../../../README.rst:284 -msgid "`Maze`_ -- move from one side to another. Inspired by `A Universe in One Line of Code with 10 PRINT`_. Tap the screen to trace a path from one side to another." -msgstr "" - -#: ../../../README.rst:297 -msgid "`Fidget`_ -- fidget spinner inspired animation. Click the screen to accelerate the fidget spinner." -msgstr "" - -#: ../../../README.rst:307 -msgid "User Guide" -msgstr "" - -#: ../../../README.rst:309 -msgid "For those wanting more details, this part of the documentation describes curriculum, API, and development." -msgstr "" - -#: ../../../README.rst:312 -msgid "`Talk: Give the Gift of Python`_" -msgstr "" - -#: ../../../README.rst:313 -msgid "`Free Python Games Curriculum`_" -msgstr "" - -#: ../../../README.rst:314 -msgid "`Free Python Games API Reference`_" -msgstr "" - -#: ../../../README.rst:315 -msgid "`Free Python Games Development`_" -msgstr "" - -#: ../../../README.rst:324 -msgid "References" -msgstr "" - -#: ../../../README.rst:326 -msgid "`Free Python Games Documentation`_" -msgstr "" - -#: ../../../README.rst:327 -msgid "`Free Python Games at PyPI`_" -msgstr "" - -#: ../../../README.rst:328 -msgid "`Free Python Games at GitHub`_" -msgstr "" - -#: ../../../README.rst:329 -msgid "`Free Python Games Issue Tracker`_" -msgstr "" - -#: ../../../README.rst:338 -msgid "Free Python Games License" -msgstr "" - -#: ../../../README.rst:340 -msgid "Copyright 2017-2020 Grant Jenks" -msgstr "" - -#: ../../../README.rst:342 -msgid "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at" -msgstr "" - -#: ../../../README.rst:346 -msgid "http://www.apache.org/licenses/LICENSE-2.0" -msgstr "" - -#: ../../../README.rst:348 -msgid "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." -msgstr "" - -#: ../../life.rst:4 -msgid "Game of Life simulation." -msgstr "" - -#: ../../maze.rst:4 -msgid "Maze, move from one side to another." -msgstr "" - -#: ../../memory.rst:4 -msgid "Memory, puzzle game of number pairs." -msgstr "" - -#: ../../pacman.rst:4 -msgid "Pacman, classic arcade game." -msgstr "" - -#: ../../paint.rst:4 -msgid "Paint, for drawing shapes." -msgstr "" - -#: ../../pong.rst:4 -msgid "Pong, classic arcade game." -msgstr "" - -#: ../../simonsays.rst:4 -msgid "A game of watching and recalling patterns." -msgstr "" - -#: ../../snake.rst:4 -msgid "Snake, classic arcade game." -msgstr "" - -#: ../../tictactoe.rst:4 -msgid "A paper-and-pencil game for two players." -msgstr "" - -#: ../../tiles.rst:4 -msgid "Tiles, number swapping game." -msgstr "" - -#: ../../tron.rst:4 -msgid "Tron, classic arcade game." -msgstr "" diff --git a/docs/locale/fidget.pot b/docs/locale/fidget.pot deleted file mode 100644 index 2063e658..00000000 --- a/docs/locale/fidget.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../fidget.rst:2 -msgid "Fidget" -msgstr "" - -#: ../../fidget.rst:4 -msgid "Fidget, inspired by fidget spinners." -msgstr "" diff --git a/docs/locale/flappy.pot b/docs/locale/flappy.pot deleted file mode 100644 index 52bb6b45..00000000 --- a/docs/locale/flappy.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../flappy.rst:2 -msgid "Flappy" -msgstr "" - -#: ../../flappy.rst:4 -msgid "Flappy, game inspired by Flappy Bird." -msgstr "" diff --git a/docs/locale/give-gift-python.pot b/docs/locale/give-gift-python.pot deleted file mode 100644 index bfa9855c..00000000 --- a/docs/locale/give-gift-python.pot +++ /dev/null @@ -1,209 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../give-gift-python.rst:2 -msgid "Give the Gift of Python" -msgstr "" - -#: ../../give-gift-python.rst:4 -msgid "*Talk given at SF Python Holiday Party on December 5, 2018.*" -msgstr "" - -#: ../../give-gift-python.rst:7 -msgid "Who am I?" -msgstr "" - -#: ../../give-gift-python.rst:9 -msgid "Python programmer." -msgstr "" - -#: ../../give-gift-python.rst:10 -msgid "Hundreds of hours of classroom instruction." -msgstr "" - -#: ../../give-gift-python.rst:13 -msgid "What we need?" -msgstr "" - -#: ../../give-gift-python.rst:15 -msgid "Interest!" -msgstr "" - -#: ../../give-gift-python.rst:16 -msgid "Typing skills." -msgstr "" - -#: ../../give-gift-python.rst:17 -msgid "Math: Arithmetic, Algebra, Geometry" -msgstr "" - -#: ../../give-gift-python.rst:20 -msgid "Setup" -msgstr "" - -#: ../../give-gift-python.rst:22 -msgid "Install Python, https://www.python.org/" -msgstr "" - -#: ../../give-gift-python.rst:23 -msgid "Run IDLE, ``$ python -m idlelib.idle``" -msgstr "" - -#: ../../give-gift-python.rst:24 -msgid "Write code." -msgstr "" - -#: ../../give-gift-python.rst:27 -msgid "Open the Turtle Window" -msgstr "" - -#: ../../give-gift-python.rst:35 -msgid "Commands" -msgstr "" - -#: ../../give-gift-python.rst:49 -msgid "Loops" -msgstr "" - -#: ../../give-gift-python.rst:59 -msgid "Shapes" -msgstr "" - -#: ../../give-gift-python.rst:71 -msgid "Dots" -msgstr "" - -#: ../../give-gift-python.rst:79 -msgid "Functions" -msgstr "" - -#: ../../give-gift-python.rst:93 -msgid "Colors" -msgstr "" - -#: ../../give-gift-python.rst:102 -msgid "Locations" -msgstr "" - -#: ../../give-gift-python.rst:113 -msgid "Inputs" -msgstr "" - -#: ../../give-gift-python.rst:115 -msgid "listen" -msgstr "" - -#: ../../give-gift-python.rst:116 -msgid "onclick" -msgstr "" - -#: ../../give-gift-python.rst:117 -msgid "onkey" -msgstr "" - -#: ../../give-gift-python.rst:120 -msgid "Animation" -msgstr "" - -#: ../../give-gift-python.rst:122 -msgid "ontimer" -msgstr "" - -#: ../../give-gift-python.rst:123 -msgid "hideturtle" -msgstr "" - -#: ../../give-gift-python.rst:124 -msgid "tracer" -msgstr "" - -#: ../../give-gift-python.rst:125 -msgid "clear" -msgstr "" - -#: ../../give-gift-python.rst:126 -msgid "update" -msgstr "" - -#: ../../give-gift-python.rst:139 -msgid "Tips" -msgstr "" - -#: ../../give-gift-python.rst:141 -msgid "help(...)" -msgstr "" - -#: ../../give-gift-python.rst:142 -msgid "undo(...)" -msgstr "" - -#: ../../give-gift-python.rst:143 -msgid "Embrace copy/paste" -msgstr "" - -#: ../../give-gift-python.rst:144 -msgid "Close window/reset()" -msgstr "" - -#: ../../give-gift-python.rst:147 -msgid "Activities" -msgstr "" - -#: ../../give-gift-python.rst:149 -msgid "Spell your name." -msgstr "" - -#: ../../give-gift-python.rst:150 -msgid "``python -m pip install freegames``" -msgstr "" - -#: ../../give-gift-python.rst:153 -msgid "Notes" -msgstr "" - -#: ../../give-gift-python.rst:155 -msgid "Start simple! Start easy! Start plain!" -msgstr "" - -#: ../../give-gift-python.rst:156 -msgid "Focus on fun! No PEP8. No Pylint." -msgstr "" - -#: ../../give-gift-python.rst:157 -msgid "Make it readable! Say it aloud." -msgstr "" - -#: ../../give-gift-python.rst:158 -msgid "No special shells! No IPython." -msgstr "" - -#: ../../give-gift-python.rst:159 -msgid "Show them mistakes! Red is your favorite color!" -msgstr "" - -#: ../../give-gift-python.rst:160 -msgid "No virtual environments!" -msgstr "" - -#: ../../give-gift-python.rst:161 -msgid "If they're not ready, don't push them!" -msgstr "" - -#: ../../give-gift-python.rst:162 -msgid "No dunder methods or attributes! No __name__ or __main__." -msgstr "" diff --git a/docs/locale/guess.pot b/docs/locale/guess.pot deleted file mode 100644 index 0011e319..00000000 --- a/docs/locale/guess.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../guess.rst:2 -msgid "Guess" -msgstr "" - -#: ../../guess.rst:4 -msgid "Guess a number within a range." -msgstr "" diff --git a/docs/locale/index.pot b/docs/locale/index.pot deleted file mode 100644 index f6e40c59..00000000 --- a/docs/locale/index.pot +++ /dev/null @@ -1,417 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../../README.rst:2 -msgid "Free Python Games" -msgstr "" - -#: ../../../README.rst:4 -msgid "`Free Python Games`_ is an Apache2 licensed collection of free Python games intended for education and fun. The games are written in simple Python code and designed for experimentation and changes. Simplified versions of several classic arcade games are included." -msgstr "" - -#: ../../../README.rst:9 -msgid "Python is one of the top-five most popular programming languages in the world and available for free from `Python.org `_. Python includes an extensive Standard Library distributed with your installation. The Standard Library has a module called Turtle which is a popular way to introduce programming to kids. Turtle was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. All of the games in `Free Python Games`_ are implemented using Python and its Turtle module." -msgstr "" - -#: ../../../README.rst:17 -msgid "Starting in 2012, `Free Python Games`_ began as an after school program to teach programming to inner-city youth. The goal was to have fun as much as it was to learn. Since then the games have been improved and used in a variety of settings ranging from classrooms to summer day-camps." -msgstr "" - -#: ../../../README.rst:22 -msgid "The games run anywhere Python can be installed which includes desktop computers running Windows, Mac OS, or Linux and older or low-power hardware such as the Raspberry Pi. Kids across the United States in grades 6th-12th have enjoyed learning about topics such as encryption and projectile motion through games." -msgstr "" - -#: ../../../README.rst:27 -msgid "Each game is entirely independent from the others and includes comments along with a list of exercises to work through with students. Creativity and flexibility is important. There is no right or wrong way to implement a new feature or behavior! You never know which games students will engage with best." -msgstr "" - -#: ../../../README.rst:36 -msgid "Testimonials" -msgstr "" - -#: ../../../README.rst:38 -msgid "*\"I love Free Python Games because the games are fun and they're easy to understand and change. I like making my own games now.\"*" -msgstr "" - -#: ../../../README.rst:41 -msgid "-- Luke Martin, Student" -msgstr "" - -#: ../../../README.rst:43 -msgid "*\"Free Python Games inspired and introduced a new hobby to our son. Thank you so much for exposing him to coding. He is having so much fun!\"*" -msgstr "" - -#: ../../../README.rst:46 -msgid "-- Mary Lai, Parent" -msgstr "" - -#: ../../../README.rst:48 -msgid "*\"Free Python Games are great because they really engage students and let them learn at their own pace.\"*" -msgstr "" - -#: ../../../README.rst:51 -msgid "-- Rick Schertle, Teacher, Steindorf STEAM School" -msgstr "" - -#: ../../../README.rst:53 -msgid "*\"Free Python Games combines play and learning in a flexible environment that reduces the stress of a difficult topic like programming.\"*" -msgstr "" - -#: ../../../README.rst:56 -msgid "-- Brett Bymaster, Youth Pastor, The River Church Community" -msgstr "" - -#: ../../../README.rst:58 -msgid "*\"Free Python Games is great for students, is highly organized and flexible, and seeks to unleash inquiry and understanding.\"*" -msgstr "" - -#: ../../../README.rst:61 -msgid "-- Terri Furton, Principal, Downtown College Prep" -msgstr "" - -#: ../../../README.rst:65 -msgid "Features" -msgstr "" - -#: ../../../README.rst:67 -msgid "Fun to play!" -msgstr "" - -#: ../../../README.rst:68 -msgid "Simple Python code" -msgstr "" - -#: ../../../README.rst:69 -msgid "Easy to install" -msgstr "" - -#: ../../../README.rst:70 -msgid "Designed for education" -msgstr "" - -#: ../../../README.rst:71 -msgid "Depends only on the Python Standard Library" -msgstr "" - -#: ../../../README.rst:72 -msgid "Used in hundreds of hours of classroom instruction" -msgstr "" - -#: ../../../README.rst:73 -msgid "Fully Documented" -msgstr "" - -#: ../../../README.rst:74 -msgid "100% Test Coverage" -msgstr "" - -#: ../../../README.rst:75 -msgid "Developed on Python 3.7" -msgstr "" - -#: ../../../README.rst:76 -msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" -msgstr "" - -#: ../../../README.rst:77 -msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" -msgstr "" - -#: ../../../README.rst:78 -msgid "Tested using Travis CI and AppVeyor CI" -msgstr "" - -#: ../../../README.rst:88 -msgid "Quickstart" -msgstr "" - -#: ../../../README.rst:90 -msgid "Installing Free Python Games is simple with `pip `_::" -msgstr "" - -#: ../../../README.rst:95 -msgid "Free Python Games supports a command-line interface (CLI). Help for the CLI is available using::" -msgstr "" - -#: ../../../README.rst:100 -msgid "The CLI supports three commands: list, copy, and show. For a list of all games run::" -msgstr "" - -#: ../../../README.rst:105 -msgid "Any of the listed games may be played by executing the Python module from the command-line. To reference the Python module, combine \"freegames\" with the name of the game. For example, to play the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:111 -msgid "Games can be modified by copying their source code. The copy command will create a Python file in your local directory which you can edit. For example, to copy and play the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:118 -msgid "Python includes a built-in text editor named IDLE which can also execute Python code. To launch the editor and make changes to the \"snake\" game run::" -msgstr "" - -#: ../../../README.rst:123 -msgid "You can also access documentation in the interpreter with Python's built-in help function::" -msgstr "" - -#: ../../../README.rst:131 -msgid "Free Games" -msgstr "" - -#: ../../../README.rst:134 -msgid "Paint" -msgstr "" - -#: ../../../README.rst:136 -msgid "`Paint`_ -- draw lines and shapes on the screen. Click to mark the start of a shape and click again to mark its end. Different shapes and colors can be selected using the keyboard." -msgstr "" - -#: ../../../README.rst:None -msgid "Paint Free Python Game" -msgstr "" - -#: ../../../README.rst:146 -msgid "Snake" -msgstr "" - -#: ../../../README.rst:148 -msgid "`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat the green food. Each time the food is consumed, the snake grows one segment longer. Avoid eating yourself or going out of bounds!" -msgstr "" - -#: ../../../README.rst:None -msgid "Snake Free Python Game" -msgstr "" - -#: ../../../README.rst:158 -msgid "Pacman" -msgstr "" - -#: ../../../README.rst:160 -msgid "`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat all the white food. Watch out for red ghosts that roam the maze." -msgstr "" - -#: ../../../README.rst:None -msgid "Pacman Free Python Game" -msgstr "" - -#: ../../../README.rst:169 -msgid "Cannon" -msgstr "" - -#: ../../../README.rst:171 -msgid "`Cannon`_ -- projectile motion. Click the screen to fire your cannnonball. The cannonball pops blue balloons in its path. Pop all the balloons before they can cross the screen." -msgstr "" - -#: ../../../README.rst:None -msgid "Cannon Free Python Game" -msgstr "" - -#: ../../../README.rst:181 -msgid "Connect" -msgstr "" - -#: ../../../README.rst:183 -msgid "`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first player to connect four discs vertically, horizontally, or diagonally wins!" -msgstr "" - -#: ../../../README.rst:None -msgid "Connect 4 Free Python Game" -msgstr "" - -#: ../../../README.rst:192 -msgid "Flappy" -msgstr "" - -#: ../../../README.rst:194 -msgid "`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your wings. Watch out for black ravens as you fly across the screen." -msgstr "" - -#: ../../../README.rst:None -msgid "Flappy Bird Free Python Game" -msgstr "" - -#: ../../../README.rst:203 -msgid "Memory" -msgstr "" - -#: ../../../README.rst:205 -msgid "`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a number. Match two numbers and the tiles will disappear to reveal an image." -msgstr "" - -#: ../../../README.rst:None -msgid "Memory Free Python Game" -msgstr "" - -#: ../../../README.rst:214 -msgid "Pong" -msgstr "" - -#: ../../../README.rst:216 -msgid "`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up and down. The first player to miss the ball loses." -msgstr "" - -#: ../../../README.rst:None -msgid "Pong Free Python Game" -msgstr "" - -#: ../../../README.rst:225 -msgid "Simon Says" -msgstr "" - -#: ../../../README.rst:227 -msgid "`Simon Says`_ -- classic memory puzzle game. Click the screen to start. Watch the pattern and then click the tiles in the same order. Each time you get the sequence right the pattern gets one step longer." -msgstr "" - -#: ../../../README.rst:None -msgid "Simon Says Free Python Game" -msgstr "" - -#: ../../../README.rst:237 -msgid "Tic Tac Toe" -msgstr "" - -#: ../../../README.rst:239 -msgid "`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. Connect three in a row and you win!" -msgstr "" - -#: ../../../README.rst:None -msgid "Tic Tac Toe Free Python Game" -msgstr "" - -#: ../../../README.rst:248 -msgid "Tiles" -msgstr "" - -#: ../../../README.rst:250 -msgid "`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile adjacent to the empty square to swap positions. Can you make the tiles count one to fifteen from left to right and bottom to top?" -msgstr "" - -#: ../../../README.rst:None -msgid "Tiles Free Python Game" -msgstr "" - -#: ../../../README.rst:260 -msgid "Tron" -msgstr "" - -#: ../../../README.rst:262 -msgid "`Tron`_ -- classic arcade game. Use the keyboard to change the direction of your Tron player. Avoid touching the line drawn by your opponent." -msgstr "" - -#: ../../../README.rst:None -msgid "Tron Free Python Game" -msgstr "" - -#: ../../../README.rst:271 -msgid "Life" -msgstr "" - -#: ../../../README.rst:273 -msgid "`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular automation created in 1970 by John Conway." -msgstr "" - -#: ../../../README.rst:None -msgid "Game of Life Free Python Game" -msgstr "" - -#: ../../../README.rst:282 -msgid "Maze" -msgstr "" - -#: ../../../README.rst:284 -msgid "`Maze`_ -- move from one side to another. Inspired by `A Universe in One Line of Code with 10 PRINT`_. Tap the screen to trace a path from one side to another." -msgstr "" - -#: ../../../README.rst:None -msgid "Maze Free Python Game" -msgstr "" - -#: ../../../README.rst:295 -msgid "Fidget" -msgstr "" - -#: ../../../README.rst:297 -msgid "`Fidget`_ -- fidget spinner inspired animation. Click the screen to accelerate the fidget spinner." -msgstr "" - -#: ../../../README.rst:None -msgid "Fidget Spinner Free Python Game" -msgstr "" - -#: ../../../README.rst:307 -msgid "User Guide" -msgstr "" - -#: ../../../README.rst:309 -msgid "For those wanting more details, this part of the documentation describes curriculum, API, and development." -msgstr "" - -#: ../../../README.rst:312 -msgid "`Talk: Give the Gift of Python`_" -msgstr "" - -#: ../../../README.rst:313 -msgid "`Free Python Games Curriculum`_" -msgstr "" - -#: ../../../README.rst:314 -msgid "`Free Python Games API Reference`_" -msgstr "" - -#: ../../../README.rst:315 -msgid "`Free Python Games Development`_" -msgstr "" - -#: ../../../README.rst:324 -msgid "References" -msgstr "" - -#: ../../../README.rst:326 -msgid "`Free Python Games Documentation`_" -msgstr "" - -#: ../../../README.rst:327 -msgid "`Free Python Games at PyPI`_" -msgstr "" - -#: ../../../README.rst:328 -msgid "`Free Python Games at GitHub`_" -msgstr "" - -#: ../../../README.rst:329 -msgid "`Free Python Games Issue Tracker`_" -msgstr "" - -#: ../../../README.rst:338 -msgid "Free Python Games License" -msgstr "" - -#: ../../../README.rst:340 -msgid "Copyright 2017-2020 Grant Jenks" -msgstr "" - -#: ../../../README.rst:342 -msgid "Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at" -msgstr "" - -#: ../../../README.rst:346 -msgid "http://www.apache.org/licenses/LICENSE-2.0" -msgstr "" - -#: ../../../README.rst:348 -msgid "Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." -msgstr "" diff --git a/docs/locale/life.pot b/docs/locale/life.pot deleted file mode 100644 index 4c73e1bd..00000000 --- a/docs/locale/life.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../life.rst:2 -msgid "Life" -msgstr "" - -#: ../../life.rst:4 -msgid "Game of Life simulation." -msgstr "" diff --git a/docs/locale/maze.pot b/docs/locale/maze.pot deleted file mode 100644 index 080dbaf5..00000000 --- a/docs/locale/maze.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../maze.rst:2 -msgid "Maze" -msgstr "" - -#: ../../maze.rst:4 -msgid "Maze, move from one side to another." -msgstr "" diff --git a/docs/locale/memory.pot b/docs/locale/memory.pot deleted file mode 100644 index a3979666..00000000 --- a/docs/locale/memory.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../memory.rst:2 -msgid "Memory" -msgstr "" - -#: ../../memory.rst:4 -msgid "Memory, puzzle game of number pairs." -msgstr "" diff --git a/docs/locale/pacman.pot b/docs/locale/pacman.pot deleted file mode 100644 index b969a388..00000000 --- a/docs/locale/pacman.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../pacman.rst:2 -msgid "Pacman" -msgstr "" - -#: ../../pacman.rst:4 -msgid "Pacman, classic arcade game." -msgstr "" diff --git a/docs/locale/paint.pot b/docs/locale/paint.pot deleted file mode 100644 index f7d8b7a6..00000000 --- a/docs/locale/paint.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../paint.rst:2 -msgid "Paint" -msgstr "" - -#: ../../paint.rst:4 -msgid "Paint, for drawing shapes." -msgstr "" diff --git a/docs/locale/pong.pot b/docs/locale/pong.pot deleted file mode 100644 index 9211b043..00000000 --- a/docs/locale/pong.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../pong.rst:2 -msgid "Pong" -msgstr "" - -#: ../../pong.rst:4 -msgid "Pong, classic arcade game." -msgstr "" diff --git a/docs/locale/simonsays.pot b/docs/locale/simonsays.pot deleted file mode 100644 index d0ad0b37..00000000 --- a/docs/locale/simonsays.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../simonsays.rst:2 -msgid "Simon Says" -msgstr "" - -#: ../../simonsays.rst:4 -msgid "A game of watching and recalling patterns." -msgstr "" diff --git a/docs/locale/snake.pot b/docs/locale/snake.pot deleted file mode 100644 index 58efbc76..00000000 --- a/docs/locale/snake.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../snake.rst:2 -msgid "Snake" -msgstr "" - -#: ../../snake.rst:4 -msgid "Snake, classic arcade game." -msgstr "" diff --git a/docs/locale/sphinx.pot b/docs/locale/sphinx.pot deleted file mode 100644 index 630c3307..00000000 --- a/docs/locale/sphinx.pot +++ /dev/null @@ -1,38 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../_templates/gumroad.html:1 -msgid "Donate" -msgstr "" - -#: ../../_templates/gumroad.html:2 -msgid "If you or your organization uses Free Games, consider donating:" -msgstr "" - -#: ../../_templates/gumroad.html:4 -msgid "Donate to Free Python Games" -msgstr "" - -#: ../../_templates/pagetoc.html:11 -msgid "Contents" -msgstr "" - -#: ../../_templates/search.html:14 -#: ../../_templates/search.html:17 -msgid "Search" -msgstr "" diff --git a/docs/locale/tictactoe.pot b/docs/locale/tictactoe.pot deleted file mode 100644 index ad37dbca..00000000 --- a/docs/locale/tictactoe.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../tictactoe.rst:2 -msgid "Tic Tac Toe" -msgstr "" - -#: ../../tictactoe.rst:4 -msgid "A paper-and-pencil game for two players." -msgstr "" diff --git a/docs/locale/tiles.pot b/docs/locale/tiles.pot deleted file mode 100644 index 450254cf..00000000 --- a/docs/locale/tiles.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../tiles.rst:2 -msgid "Tiles" -msgstr "" - -#: ../../tiles.rst:4 -msgid "Tiles, number swapping game." -msgstr "" diff --git a/docs/locale/tron.pot b/docs/locale/tron.pot deleted file mode 100644 index f1bc2f08..00000000 --- a/docs/locale/tron.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2017-2020, Grant Jenks -# This file is distributed under the same license as the Free Python Games package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Free Python Games 2.3.2\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../tron.rst:2 -msgid "Tron" -msgstr "" - -#: ../../tron.rst:4 -msgid "Tron, classic arcade game." -msgstr "" From f309add0c8fd7ac7042b00df1ecfc466729f08ae Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:36:20 -0300 Subject: [PATCH 17/47] Update development.rst --- docs/development.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development.rst b/docs/development.rst index 9bf3d4d3..0e2bde2d 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -77,7 +77,7 @@ and run the tests. Translate ---------- -Translation files are available in the /locale directory, if you want to contribute a translation make changes to its content. +Translation files are available in the locale/ directory, if you want to contribute a translation make changes to its content. if you want to translate to another language, you need to create the lang folder. To update the lang folder you need to use the command: From 4d5a83f7d1ed273293d79ffb284b481f0c3d0a82 Mon Sep 17 00:00:00 2001 From: Ana Laura da Silva Pereira <79363522+analaura09@users.noreply.github.com> Date: Fri, 8 Oct 2021 20:27:22 -0300 Subject: [PATCH 18/47] Update Makefile --- docs/Makefile | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 675eb67a..b7540d92 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -11,8 +11,8 @@ BUILDDIR = _build LOCALES = $(patsubst locale/%,%,$(wildcard locale/*)) -MV = mv -RM = rm -r +MV = mv +RM = rm -r # Put it first so that "make" without argument is like "make help". help: @@ -23,11 +23,15 @@ help: update-po: gettext $(SPHINXINTL) update -p "$(BUILDDIR)/gettext" $(0) -%-translated: +translated: @for locale in $(LOCALES); do \ SPHINXOPTS="-D language=$$locale"; \ BUILDDIR="$(BUILDDIR)/$$locale"; \ + TARGETDIR="$(BUILDDIR)/$(TARGET)/$$locale"; \ $(SPHINXBUILD) -M "$(TARGET)" "$(SOURCEDIR)" "$$BUILDDIR" $$SPHINXOPTS; \ + $(MV) "$$BUILDDIR/$(TARGET)" "$$TARGETDIR"; \ + $(RM) "$$BUILDDIR"; \ + echo "$$locale docs was moved to $$TARGETDIR directory"; \ done # Catch-all target: route all unknown targets to Sphinx using the new @@ -35,16 +39,6 @@ update-po: gettext %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - TARGET=$@ make translated - - @for locale in $(LOCALES); do \ - LOCALEDIR="$(BUILDDIR)/$$locale"; \ - TARGETDIR="$(BUILDDIR)/$@/$$locale"; \ - $(MV) "$$LOCALEDIR/$@" "$$TARGETDIR"; \ - $(RM) "$$LOCALEDIR"; \ - echo "HTML pages was moved to $$TARGETDIR directory"; \ - done - - -clean: - $(RM) $(BUILDDIR) + @if [ $@ != clean -a $@ != gettext ]; then \ + TARGET=$@ make translated; \ + fi From e180635ecbafe1a0f8c87140c4af0b47d18e4a79 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 17 May 2021 21:45:53 -0700 Subject: [PATCH 19/47] Update last exercise --- freegames/snake.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freegames/snake.py b/freegames/snake.py index 3b8c7b43..7c657894 100644 --- a/freegames/snake.py +++ b/freegames/snake.py @@ -5,7 +5,7 @@ 1. How do you make the snake faster or slower? 2. How can you make the snake go around the edges? 3. How would you move the food? -4. Change the snake to respond to arrow keys. +4. Change the snake to respond to mouse clicks. """ From 0d543837b7a80acc4f2c05257349ab08e6e5a0d3 Mon Sep 17 00:00:00 2001 From: David Eynon Date: Tue, 1 Jun 2021 06:38:57 +0200 Subject: [PATCH 20/47] #55 - added initial mad libs game and initial test. (#65) Initial mad libs game and with testing. --- docs/index.rst | 1 + docs/madlibs.rst | 6 ++++++ freegames/madlibs.py | 41 +++++++++++++++++++++++++++++++++++++++++ tests/test_madlibs.py | 13 +++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 docs/madlibs.rst create mode 100644 freegames/madlibs.py create mode 100644 tests/test_madlibs.py diff --git a/docs/index.rst b/docs/index.rst index 41a30183..0af26523 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -27,3 +27,4 @@ memory pacman fidget + madlibs diff --git a/docs/madlibs.rst b/docs/madlibs.rst new file mode 100644 index 00000000..1f0c31f8 --- /dev/null +++ b/docs/madlibs.rst @@ -0,0 +1,6 @@ +Mad Libs +===== + +Create a funny story from a not-so funny story + +.. literalinclude:: ../freegames/madlibs.py \ No newline at end of file diff --git a/freegames/madlibs.py b/freegames/madlibs.py new file mode 100644 index 00000000..2066abe3 --- /dev/null +++ b/freegames/madlibs.py @@ -0,0 +1,41 @@ +""" Mad Libs: Funny Story Creation Game. + +Exercises: + +1. Can you create functionality to replace the given story? +2. Can you load the story and template from a file? +3. Can you add additional parts of speech? +4. Can you add flexibility in a loaded story template? +5. Can you adjust for grammar? (past tense, etc.) +6. Can you fix the bug that occurs if there is a period after the story? +7. At what point would you need to encapsulate into a function? +8. Can you use a function for this? +9. What problems can occur to the expected output if the program were to + crash mid-run (ex: due to power failure, unexpected computer freeze etc.) +10. How could you re-engineer this to allow for more robust retention of + the original story and/or the input collected? +""" + +story_template = "The [adj] [adj] [n] [v] over the [adj] [n]" +# The quick brown fox jumps over the lazy dog + +new_story = "" + +word_type_key = { + "[adj]": "adjective", + "[n]": "noun", + "[v]": "verb", + "[adv]": "adverb" +} + +"Replace word types with user provided words" +for char_block in story_template.split(' '): + if char_block in word_type_key: + new_word = input("Please enter a {}: ".format( + word_type_key[char_block])) + new_story += " {} ".format(new_word) + else: + new_story += " {} ".format(char_block) + +print("Your new story:") +print(new_story) diff --git a/tests/test_madlibs.py b/tests/test_madlibs.py new file mode 100644 index 00000000..56a52508 --- /dev/null +++ b/tests/test_madlibs.py @@ -0,0 +1,13 @@ +import random +import runpy +import unittest.mock as mock + + +def test_madlibs(): + random.seed(0) + mock_input = mock.Mock() + mock_input.side_effect = ["quick", "brown","lazy","brown","dog","car","jumps"] + mocks = {'print': lambda *args: None, 'input': mock_input} + + with mock.patch.multiple('builtins', **mocks): + runpy.run_module('freegames.madlibs') \ No newline at end of file From c7dff813f925499a794ff76008a1b4447c3c20e5 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 31 May 2021 21:59:30 -0700 Subject: [PATCH 21/47] Update madlibs game --- freegames/madlibs.py | 58 ++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/freegames/madlibs.py b/freegames/madlibs.py index 2066abe3..68ff46f1 100644 --- a/freegames/madlibs.py +++ b/freegames/madlibs.py @@ -1,41 +1,35 @@ -""" Mad Libs: Funny Story Creation Game. +"""Mad Libs: Funny Story Creation Game Exercises: -1. Can you create functionality to replace the given story? -2. Can you load the story and template from a file? -3. Can you add additional parts of speech? -4. Can you add flexibility in a loaded story template? -5. Can you adjust for grammar? (past tense, etc.) -6. Can you fix the bug that occurs if there is a period after the story? -7. At what point would you need to encapsulate into a function? -8. Can you use a function for this? -9. What problems can occur to the expected output if the program were to - crash mid-run (ex: due to power failure, unexpected computer freeze etc.) -10. How could you re-engineer this to allow for more robust retention of - the original story and/or the input collected? -""" - -story_template = "The [adj] [adj] [n] [v] over the [adj] [n]" -# The quick brown fox jumps over the lazy dog +1. How to replace the story? +2. How load the story and from a file? +3. How to add additional parts of speech? -new_story = "" +""" -word_type_key = { - "[adj]": "adjective", - "[n]": "noun", - "[v]": "verb", - "[adv]": "adverb" +# The quick brown fox jumps over the lazy dog. +template = 'The |1| |2| |3| |4| over the |5| |6|.' +parts = { + '1': 'adjective', + '2': 'adjective', + '3': 'noun', + '4': 'verb', + '5': 'adjective', + '6': 'noun', } -"Replace word types with user provided words" -for char_block in story_template.split(' '): - if char_block in word_type_key: - new_word = input("Please enter a {}: ".format( - word_type_key[char_block])) - new_story += " {} ".format(new_word) +chunks = [] + +for chunk in template.split('|'): + if chunk in parts: + description = parts[chunk] + prompt = 'Enter [{}]: '.format(description) + word = input(prompt) + chunks.append(word) else: - new_story += " {} ".format(char_block) + chunks.append(chunk) -print("Your new story:") -print(new_story) +print('=' * 80) +story = ''.join(chunks) +print(story) From 02cc8746d071b1c1b801087312aedc57809a9ee1 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 17:13:32 -0700 Subject: [PATCH 22/47] Add GitHub workflow action for integration --- .github/workflows/integration.yml | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/integration.yml diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 00000000..1e9295c9 --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,50 @@ +name: integration + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + + checks: + runs-on: ubuntu-latest + strategy: + max-parallel: 6 + matrix: + check: [bluecheck, doc8, docs, isortcheck, flake8, rstcheck] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Setup tox + run: | + pip install --upgrade pip + pip install tox + - name: Run checks with tox + run: | + tox -e ${{ matrix.check }} + + tests: + needs: checks + runs-on: ${{ matrix.os }} + strategy: + max-parallel: 4 + matrix: + os: [ubuntu-latest] + python-version: [3.6, 3.7, 3.8, 3.9] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Setup tox + run: | + pip install --upgrade pip + pip install tox + - name: Test with tox + run: tox -e py From b796a49bd4d351b79bc54094272957af3408439e Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 17:19:32 -0700 Subject: [PATCH 23/47] Update readme --- README.rst | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 133bde98..3efddd88 100644 --- a/README.rst +++ b/README.rst @@ -72,16 +72,13 @@ Features - Used in hundreds of hours of classroom instruction - Fully Documented - 100% Test Coverage -- Developed on Python 3.7 -- Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7 -- Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux -- Tested using Travis CI and AppVeyor CI +- Developed on Python 3.9 +- Tested on CPython 3.6, 3.7, 3.8, 3.9 +- Tested on Linux, Mac OS X, and Windows +- Tested using GitHub Actions -.. image:: https://api.travis-ci.org/grantjenks/free-python-games.svg?branch=master - :target: http://www.grantjenks.com/docs/freegames/ - -.. image:: https://ci.appveyor.com/api/projects/status/github/grantjenks/free-python-games?branch=master&svg=true - :target: http://www.grantjenks.com/docs/freegames/ +.. image:: https://github.com/grantjenks/free-python-games/workflows/integration/badge.svg + :target: http://www.grantjenks.com/docs/freegames/ Quickstart From ef6213c878c42d33ea95bd2dd341b171a872e2d4 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 17:43:57 -0700 Subject: [PATCH 24/47] Delete travis/appveyor, update requirements and tox --- .travis.yml | 15 ---------- appveyor.yml | 23 ---------------- requirements.txt | 5 +++- tox.ini | 71 +++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 74 insertions(+), 40 deletions(-) delete mode 100644 .travis.yml delete mode 100644 appveyor.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ca04f963..00000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -sudo: false -language: python -install: pip install tox -script: tox -matrix: - include: - - python: 3.4 - env: TOXENV=py34 - - python: 3.5 - env: TOXENV=py35 - - python: 3.6 - env: TOXENV=py36 - - python: 3.7 - dist: xenial - env: TOXENV=py37 diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index b8f2abfd..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,23 +0,0 @@ -environment: - - matrix: - - - PYTHON: "C:\\Python34" - - PYTHON: "C:\\Python35" - - PYTHON: "C:\\Python36" - - PYTHON: "C:\\Python37" - - PYTHON: "C:\\Python34-x64" - - PYTHON: "C:\\Python35-x64" - - PYTHON: "C:\\Python36-x64" - - PYTHON: "C:\\Python37-x64" - -install: - - - "%PYTHON%\\python.exe -m pip install pytest" - -build: off - -test_script: - - - set PYTHONPATH=C:\projects\free-python-games;C:\projects\free-python-games\tests - - "%PYTHON%\\python.exe -m pytest -v tests" diff --git a/requirements.txt b/requirements.txt index eccc7a5b..d845935a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,9 @@ +-e . +blue coverage doc8 -gj +flake8 +isort pylint pytest pytest-cov diff --git a/tox.ini b/tox.ini index 57a6a7c6..2ac9f335 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,6 @@ [tox] -envlist=py34,py35,py36,py37 +envlist=bluecheck,doc8,docs,isortcheck,flake8,rstcheck,py36,py37,py38,py39 +skip_missing_interpreters=True [testenv] deps= @@ -9,3 +10,71 @@ deps= commands=python -m pytest -v --cov freegames --cov-report term-missing tests setenv= PYTHONPATH={toxinidir}:{toxinidir}/tests + +[testenv:blue] +commands=blue {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=blue + +[testenv:bluecheck] +commands=blue --check {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=blue + +[testenv:doc8] +deps=doc8 +commands=doc8 docs --ignore-path docs/_build + +[testenv:docs] +allowlist_externals=make +changedir=docs +commands=make html +deps= + sphinx + +[testenv:flake8] +commands=flake8 {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=flake8 + +[testenv:isort] +commands=isort {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=isort + +[testenv:isortcheck] +commands=isort --check {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=isort + +[testenv:rstcheck] +commands=rstcheck {toxinidir}/README.rst +deps=rstcheck + +[testenv:uploaddocs] +allowlist_externals=rsync +changedir=docs +commands= + rsync -azP --stats --delete _build/html/ \ + grantjenks.com:/srv/www/www.grantjenks.com/public/docs/freegames/ + +[isort] +multi_line_output = 3 +include_trailing_comma = True +force_grid_wrap = 0 +use_parentheses = True +ensure_newline_before_comments = True +line_length = 79 + +[pytest] +addopts= + -n auto + --cov-branch + --cov-fail-under=100 + --cov-report=term-missing + --cov=freegames + --doctest-glob="*.rst" + --doctest-modules + --import-mode append +testpaths=docs freegames tests README.rst + +[doc8] +# ignore=D000 + +[flake8] +max-line-length=120 From 9c537a12bb9d2fa9242bdf027f9fbff253883977 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 17:52:05 -0700 Subject: [PATCH 25/47] First pass with blue --- freegames/__main__.py | 2 ++ freegames/ant.py | 3 +++ freegames/bounce.py | 4 ++++ freegames/cannon.py | 5 +++++ freegames/connect.py | 3 +++ freegames/crypto.py | 5 +++++ freegames/fidget.py | 4 ++++ freegames/flappy.py | 5 +++++ freegames/guess.py | 10 +++++----- freegames/life.py | 5 ++++- freegames/maze.py | 3 +++ freegames/memory.py | 6 ++++++ freegames/pacman.py | 6 ++++++ freegames/paint.py | 8 ++++++++ freegames/pong.py | 6 ++++++ freegames/simonsays.py | 6 ++++++ freegames/snake.py | 4 ++++ freegames/tictactoe.py | 7 +++++++ freegames/tiles.py | 5 +++++ freegames/tron.py | 3 +++ freegames/utils.py | 3 +++ setup.py | 2 ++ tests/mockturtle.py | 8 ++++++++ tests/test_bagels.py | 1 + tests/test_cannon.py | 4 +--- tests/test_crypto.py | 4 ++++ tests/test_flappy.py | 8 ++------ tests/test_madlibs.py | 12 ++++++++++-- tests/test_main.py | 3 +++ tests/test_tron.py | 11 +++-------- tests/test_utils.py | 2 ++ 31 files changed, 133 insertions(+), 25 deletions(-) diff --git a/freegames/__main__.py b/freegames/__main__.py index e92a46ce..b083f70a 100644 --- a/freegames/__main__.py +++ b/freegames/__main__.py @@ -8,6 +8,7 @@ directory = os.path.dirname(os.path.realpath(__file__)) contents = os.listdir(directory) + def game_file(name): "Return True if filename represents a game." return ( @@ -16,6 +17,7 @@ def game_file(name): and name != 'utils.py' ) + games = sorted(name[:-3] for name in contents if game_file(name)) parser = argparse.ArgumentParser( diff --git a/freegames/ant.py b/freegames/ant.py index ae388d0d..2d03bf7c 100644 --- a/freegames/ant.py +++ b/freegames/ant.py @@ -16,10 +16,12 @@ ant = vector(0, 0) aim = vector(2, 0) + def wrap(value): "Wrap value around -200 and 200." return value # TODO + def draw(): "Move ant and draw screen." ant.move(aim) @@ -36,6 +38,7 @@ def draw(): if running: ontimer(draw, 100) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/bounce.py b/freegames/bounce.py index be92e587..7c9fcabb 100644 --- a/freegames/bounce.py +++ b/freegames/bounce.py @@ -14,13 +14,16 @@ from turtle import * from freegames import vector + def value(): "Randomly generate value between (-5, -3) or (3, 5)." return (3 + random() * 2) * choice([1, -1]) + ball = vector(0, 0) aim = vector(value(), value()) + def draw(): "Move ball and draw game." ball.move(aim) @@ -40,6 +43,7 @@ def draw(): ontimer(draw, 50) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/cannon.py b/freegames/cannon.py index ed21b771..e90ab986 100644 --- a/freegames/cannon.py +++ b/freegames/cannon.py @@ -17,6 +17,7 @@ speed = vector(0, 0) targets = [] + def tap(x, y): "Respond to screen tap." if not inside(ball): @@ -25,10 +26,12 @@ def tap(x, y): speed.x = (x + 200) / 25 speed.y = (y + 200) / 25 + def inside(xy): "Return True if xy within screen." return -200 < xy.x < 200 and -200 < xy.y < 200 + def draw(): "Draw ball and targets." clear() @@ -43,6 +46,7 @@ def draw(): update() + def move(): "Move ball and targets." if randrange(40) == 0: @@ -72,6 +76,7 @@ def move(): ontimer(move, 50) + setup(420, 420, 370, 0) hideturtle() up() diff --git a/freegames/connect.py b/freegames/connect.py index 9da2bcd3..5fcf8e8d 100644 --- a/freegames/connect.py +++ b/freegames/connect.py @@ -16,6 +16,7 @@ turns = {'red': 'yellow', 'yellow': 'red'} state = {'player': 'yellow', 'rows': [0] * 8} + def grid(): "Draw Connect Four grid." bgcolor('light blue') @@ -31,6 +32,7 @@ def grid(): update() + def tap(x, y): "Draw red or yellow circle in tapped row." player = state['player'] @@ -50,6 +52,7 @@ def tap(x, y): rows[row] = count + 1 state['player'] = turns[player] + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/crypto.py b/freegames/crypto.py index 0d7311e8..f89e52ac 100644 --- a/freegames/crypto.py +++ b/freegames/crypto.py @@ -12,6 +12,7 @@ """ + def encrypt(message, key): "Encrypt message with key." result = '' @@ -48,14 +49,17 @@ def encrypt(message, key): return result + def decrypt(message, key): "Decrypt message with key." return encrypt(message, -key) + def decode(message): "Decode message without key." pass # TODO + def get_key(): "Get key from user." try: @@ -66,6 +70,7 @@ def get_key(): print('Invalid key. Using key: 0.') return 0 + print('Do you wish to encrypt, decrypt, or decode a message?') choice = input() diff --git a/freegames/fidget.py b/freegames/fidget.py index 6f649d53..e425acd5 100644 --- a/freegames/fidget.py +++ b/freegames/fidget.py @@ -13,6 +13,7 @@ state = {'turn': 0} + def spinner(): "Draw fidget spinner." clear() @@ -32,6 +33,7 @@ def spinner(): right(120) update() + def animate(): "Animate fidget spinner." if state['turn'] > 0: @@ -40,10 +42,12 @@ def animate(): spinner() ontimer(animate, 20) + def flick(): "Flick fidget spinner." state['turn'] += 10 + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/flappy.py b/freegames/flappy.py index cd62c643..1bfd341d 100644 --- a/freegames/flappy.py +++ b/freegames/flappy.py @@ -16,15 +16,18 @@ bird = vector(0, 0) balls = [] + def tap(x, y): "Move bird up in response to screen tap." up = vector(0, 30) bird.move(up) + def inside(point): "Return True if point on screen." return -200 < point.x < 200 and -200 < point.y < 200 + def draw(alive): "Draw screen objects." clear() @@ -42,6 +45,7 @@ def draw(alive): update() + def move(): "Update object positions." bird.y -= 5 @@ -69,6 +73,7 @@ def move(): draw(True) ontimer(move, 50) + setup(420, 420, 370, 0) hideturtle() up() diff --git a/freegames/guess.py b/freegames/guess.py index 2edc8149..d7e5738c 100644 --- a/freegames/guess.py +++ b/freegames/guess.py @@ -16,17 +16,17 @@ value = randint(start, end) print(value) -print("I'm thinking of a number between", start, "and", end) +print("I'm thinking of a number between", start, 'and', end) guess = None while guess != value: - text = input("Guess the number: ") + text = input('Guess the number: ') guess = int(text) if guess < value: - print("Higher.") + print('Higher.') elif guess > value: - print("Lower.") + print('Lower.') -print("Congratulations! You guessed the right answer:", value) +print('Congratulations! You guessed the right answer:', value) diff --git a/freegames/life.py b/freegames/life.py index cd4d2968..912595cc 100644 --- a/freegames/life.py +++ b/freegames/life.py @@ -18,6 +18,7 @@ cells = {} + def initialize(): "Randomly initialize the cells." for x in range(-200, 200, 10): @@ -28,6 +29,7 @@ def initialize(): for y in range(-50, 50, 10): cells[x, y] = choice([True, False]) + def step(): "Compute one step in the Game of Life." neighbors = {} @@ -37,7 +39,7 @@ def step(): count = -cells[x, y] for h in [-10, 0, 10]: for v in [-10, 0, 10]: - count += cells[x+h, y+v] + count += cells[x + h, y + v] neighbors[x, y] = count for cell, count in neighbors.items(): @@ -47,6 +49,7 @@ def step(): elif count == 3: cells[cell] = True + def draw(): "Draw all the squares." step() diff --git a/freegames/maze.py b/freegames/maze.py index 9fe41bf6..24a23bf0 100644 --- a/freegames/maze.py +++ b/freegames/maze.py @@ -12,6 +12,7 @@ from random import random from freegames import line + def draw(): "Draw maze." color('black') @@ -26,6 +27,7 @@ def draw(): update() + def tap(x, y): "Draw line and dot for screen tap." if abs(x) > 198 or abs(y) > 198: @@ -38,6 +40,7 @@ def tap(x, y): goto(x, y) dot(4) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/memory.py b/freegames/memory.py index 7ff61aa3..f5a0ee5c 100644 --- a/freegames/memory.py +++ b/freegames/memory.py @@ -19,6 +19,7 @@ state = {'mark': None} hide = [True] * 64 + def square(x, y): "Draw white square with black outline at (x, y)." up() @@ -31,14 +32,17 @@ def square(x, y): left(90) end_fill() + def index(x, y): "Convert (x, y) coordinates to tiles index." return int((x + 200) // 50 + ((y + 200) // 50) * 8) + def xy(count): "Convert tiles count to (x, y) coordinates." return (count % 8) * 50 - 200, (count // 8) * 50 - 200 + def tap(x, y): "Update mark and hidden tiles based on tap." spot = index(x, y) @@ -51,6 +55,7 @@ def tap(x, y): hide[mark] = False state['mark'] = None + def draw(): "Draw image and tiles." clear() @@ -75,6 +80,7 @@ def draw(): update() ontimer(draw, 100) + shuffle(tiles) setup(420, 420, 370, 0) addshape(car) diff --git a/freegames/pacman.py b/freegames/pacman.py index f249a27d..c2fb3ab1 100644 --- a/freegames/pacman.py +++ b/freegames/pacman.py @@ -61,6 +61,7 @@ def square(x, y): path.end_fill() + def offset(point): "Return offset of point in tiles." x = (floor(point.x, 20) + 200) / 20 @@ -68,6 +69,7 @@ def offset(point): index = int(x + y * 20) return index + def valid(point): "Return True if point is valid in tiles." index = offset(point) @@ -82,6 +84,7 @@ def valid(point): return point.x % 20 == 0 or point.y % 20 == 0 + def world(): "Draw world using path." bgcolor('black') @@ -100,6 +103,7 @@ def world(): path.goto(x + 10, y + 10) path.dot(2, 'white') + def move(): "Move pacman and all ghosts." writer.undo() @@ -149,12 +153,14 @@ def move(): ontimer(move, 100) + def change(x, y): "Change pacman aim if valid." if valid(pacman + vector(x, y)): aim.x = x aim.y = y + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/paint.py b/freegames/paint.py index b5fb2f2c..4235abcc 100644 --- a/freegames/paint.py +++ b/freegames/paint.py @@ -13,6 +13,7 @@ from turtle import * from freegames import vector + def line(start, end): "Draw line from start to end." up() @@ -20,6 +21,7 @@ def line(start, end): down() goto(end.x, end.y) + def square(start, end): "Draw square from start to end." up() @@ -33,18 +35,22 @@ def square(start, end): end_fill() + def circle(start, end): "Draw circle from start to end." pass # TODO + def rectangle(start, end): "Draw rectangle from start to end." pass # TODO + def triangle(start, end): "Draw triangle from start to end." pass # TODO + def tap(x, y): "Store starting point or draw shape." start = state['start'] @@ -57,10 +63,12 @@ def tap(x, y): shape(start, end) state['start'] = None + def store(key, value): "Store value in state at key." state[key] = value + state = {'start': None, 'shape': line} setup(420, 420, 370, 0) onscreenclick(tap) diff --git a/freegames/pong.py b/freegames/pong.py index 0bdd9685..4e6ec456 100644 --- a/freegames/pong.py +++ b/freegames/pong.py @@ -16,18 +16,22 @@ from turtle import * from freegames import vector + def value(): "Randomly generate value between (-5, -3) or (3, 5)." return (3 + random() * 2) * choice([1, -1]) + ball = vector(0, 0) aim = vector(value(), value()) state = {1: 0, 2: 0} + def move(player, change): "Move player position by change." state[player] += change + def rectangle(x, y, width, height): "Draw rectangle at (x, y) with given width and height." up() @@ -41,6 +45,7 @@ def rectangle(x, y, width, height): left(90) end_fill() + def draw(): "Draw game and move pong ball." clear() @@ -79,6 +84,7 @@ def draw(): ontimer(draw, 50) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/simonsays.py b/freegames/simonsays.py index e922a4ce..312e74a1 100644 --- a/freegames/simonsays.py +++ b/freegames/simonsays.py @@ -21,6 +21,7 @@ vector(-200, -200): ('yellow', 'khaki'), } + def grid(): "Draw grid of tiles." square(0, 0, 200, 'dark red') @@ -29,6 +30,7 @@ def grid(): square(-200, -200, 200, 'khaki') update() + def flash(tile): "Flash tile in grid." glow, dark = tiles[tile] @@ -39,6 +41,7 @@ def flash(tile): update() sleep(0.5) + def grow(): "Grow pattern and flash tiles." tile = choice(list(tiles)) @@ -50,6 +53,7 @@ def grow(): print('Pattern length:', len(pattern)) guesses.clear() + def tap(x, y): "Respond to screen tap." onscreenclick(None) @@ -69,11 +73,13 @@ def tap(x, y): onscreenclick(tap) + def start(x, y): "Start game." grow() onscreenclick(tap) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/snake.py b/freegames/snake.py index 7c657894..9372c38e 100644 --- a/freegames/snake.py +++ b/freegames/snake.py @@ -17,15 +17,18 @@ snake = [vector(10, 0)] aim = vector(0, -10) + def change(x, y): "Change snake direction." aim.x = x aim.y = y + def inside(head): "Return True if head inside boundaries." return -200 < head.x < 190 and -200 < head.y < 190 + def move(): "Move snake forward one segment." head = snake[-1].copy() @@ -54,6 +57,7 @@ def move(): update() ontimer(move, 100) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/tictactoe.py b/freegames/tictactoe.py index 8bb9dc2a..8857d59b 100644 --- a/freegames/tictactoe.py +++ b/freegames/tictactoe.py @@ -12,6 +12,7 @@ from turtle import * from freegames import line + def grid(): "Draw tic-tac-toe grid." line(-67, 200, -67, -200) @@ -19,11 +20,13 @@ def grid(): line(-200, -67, 200, -67) line(-200, 67, 200, 67) + def drawx(x, y): "Draw X player." line(x, y, x + 133, y + 133) line(x, y + 133, x + 133, y) + def drawo(x, y): "Draw O player." up() @@ -31,13 +34,16 @@ def drawo(x, y): down() circle(62) + def floor(value): "Round value down to grid with square size 133." return ((value + 200) // 133) * 133 - 200 + state = {'player': 0} players = [drawx, drawo] + def tap(x, y): "Draw X or O in tapped square." x = floor(x) @@ -48,6 +54,7 @@ def tap(x, y): update() state['player'] = not player + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/tiles.py b/freegames/tiles.py index f7671a82..05083d3d 100644 --- a/freegames/tiles.py +++ b/freegames/tiles.py @@ -21,6 +21,7 @@ vector(0, -100), ] + def load(): "Load tiles and scramble." count = 1 @@ -43,6 +44,7 @@ def load(): tiles[mark] = number mark = spot + def square(mark, number): "Draw white square with black outline and number." up() @@ -63,6 +65,7 @@ def square(mark, number): write(number, font=('Arial', 60, 'normal')) + def tap(x, y): "Swap tile and empty square." x = floor(x, 100) @@ -79,12 +82,14 @@ def tap(x, y): tiles[mark] = None square(mark, None) + def draw(): "Draw all tiles." for mark in tiles: square(mark, tiles[mark]) update() + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/tron.py b/freegames/tron.py index cefcc57c..3f1b69e6 100644 --- a/freegames/tron.py +++ b/freegames/tron.py @@ -20,10 +20,12 @@ p2aim = vector(-4, 0) p2body = set() + def inside(head): "Return True if head inside screen." return -200 < head.x < 200 and -200 < head.y < 200 + def draw(): "Advance players and draw game." p1xy.move(p1aim) @@ -48,6 +50,7 @@ def draw(): update() ontimer(draw, 50) + setup(420, 420, 370, 0) hideturtle() tracer(False) diff --git a/freegames/utils.py b/freegames/utils.py index 4665a7d4..103d9899 100644 --- a/freegames/utils.py +++ b/freegames/utils.py @@ -48,6 +48,7 @@ def path(filename): def line(a, b, x, y): "Draw line from `(a, b)` to `(x, y)`." import turtle + turtle.up() turtle.goto(a, b) turtle.down() @@ -61,6 +62,7 @@ def square(x, y, size, name): """ import turtle + turtle.up() turtle.goto(x, y) turtle.down() @@ -88,6 +90,7 @@ class vector(collections.Sequence): vector(-2.0, 1.0) """ + # pylint: disable=invalid-name PRECISION = 6 diff --git a/setup.py b/setup.py index addb36b4..645b4d06 100644 --- a/setup.py +++ b/setup.py @@ -12,8 +12,10 @@ def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [] self.test_suite = True + def run_tests(self): import tox + errno = tox.cmdline(self.test_args) sys.exit(errno) diff --git a/tests/mockturtle.py b/tests/mockturtle.py index 5e7d0572..9bb2b019 100644 --- a/tests/mockturtle.py +++ b/tests/mockturtle.py @@ -5,6 +5,7 @@ state = {} events = [] + class Turtle: def __init__(self, visible=True): pass @@ -78,6 +79,7 @@ def update(self): def undo(self): pass + _turtle = Turtle() goto = _turtle.goto up = _turtle.up @@ -103,22 +105,28 @@ def undo(self): update = _turtle.update undo = _turtle.undo + def setup(width, height, x, y): pass + def listen(): pass + def onkey(function, key): state['key ' + key] = function + def ontimer(function, delay): state['timer'] = function state['delay'] = delay + def onscreenclick(function): state['click'] = function + def done(): for event in events: name = event[0] diff --git a/tests/test_bagels.py b/tests/test_bagels.py index 5b24b8b6..9c631592 100644 --- a/tests/test_bagels.py +++ b/tests/test_bagels.py @@ -12,6 +12,7 @@ def test_bagels_pass(): with mock.patch.multiple('builtins', **mocks): runpy.run_module('freegames.bagels') + def test_bagels_fail(): random.seed(0) mock_input = mock.Mock() diff --git a/tests/test_cannon.py b/tests/test_cannon.py index cdcdc615..082c4235 100644 --- a/tests/test_cannon.py +++ b/tests/test_cannon.py @@ -10,8 +10,6 @@ def test_cannon(): random.seed(0) mockturtle.events[:] = ( - [('timer',)] * 300 - + [('click', 0, 0)] - + [('timer', True)] * 3000 + [('timer',)] * 300 + [('click', 0, 0)] + [('timer', True)] * 3000 ) runpy.run_module('freegames.cannon') diff --git a/tests/test_crypto.py b/tests/test_crypto.py index 16b35ac2..2f3a88f7 100644 --- a/tests/test_crypto.py +++ b/tests/test_crypto.py @@ -12,6 +12,7 @@ def test_crypto_encrypt(): with mock.patch.multiple('builtins', **mocks): runpy.run_module('freegames.crypto') + def test_crypto_encrypt_bad_key(): random.seed(0) mock_input = mock.Mock() @@ -21,6 +22,7 @@ def test_crypto_encrypt_bad_key(): with mock.patch.multiple('builtins', **mocks): runpy.run_module('freegames.crypto') + def test_crypto_bad_command(): random.seed(0) mock_input = mock.Mock() @@ -30,6 +32,7 @@ def test_crypto_bad_command(): with mock.patch.multiple('builtins', **mocks): runpy.run_module('freegames.crypto') + def test_crypto_decrypt(): random.seed(0) mock_input = mock.Mock() @@ -39,6 +42,7 @@ def test_crypto_decrypt(): with mock.patch.multiple('builtins', **mocks): runpy.run_module('freegames.crypto') + def test_crypto_decode(): random.seed(0) mock_input = mock.Mock() diff --git a/tests/test_flappy.py b/tests/test_flappy.py index 608da5cf..5e6b0173 100644 --- a/tests/test_flappy.py +++ b/tests/test_flappy.py @@ -9,15 +9,11 @@ def test_flappy_outside(): random.seed(0) - mockturtle.events[:] = ( - [('timer', True)] * 300 - ) + mockturtle.events[:] = [('timer', True)] * 300 runpy.run_module('freegames.flappy') def test_flappy_collision(): random.seed(0) - mockturtle.events[:] = ( - ([('timer', True)] * 6 + [('click', 0, 0)]) * 100 - ) + mockturtle.events[:] = ([('timer', True)] * 6 + [('click', 0, 0)]) * 100 runpy.run_module('freegames.flappy') diff --git a/tests/test_madlibs.py b/tests/test_madlibs.py index 56a52508..7e7c4708 100644 --- a/tests/test_madlibs.py +++ b/tests/test_madlibs.py @@ -6,8 +6,16 @@ def test_madlibs(): random.seed(0) mock_input = mock.Mock() - mock_input.side_effect = ["quick", "brown","lazy","brown","dog","car","jumps"] + mock_input.side_effect = [ + 'quick', + 'brown', + 'lazy', + 'brown', + 'dog', + 'car', + 'jumps', + ] mocks = {'print': lambda *args: None, 'input': mock_input} with mock.patch.multiple('builtins', **mocks): - runpy.run_module('freegames.madlibs') \ No newline at end of file + runpy.run_module('freegames.madlibs') diff --git a/tests/test_main.py b/tests/test_main.py index d82eb6d3..f85436cd 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -11,6 +11,7 @@ def test_main_list(): with mock.patch('sys.argv', ['__main__.py', 'list']): runpy.run_module('freegames.__main__') + def test_main_copy(): random.seed(0) mock_open = mock.Mock() @@ -20,6 +21,7 @@ def test_main_copy(): with mock.patch('builtins.open', mock_open): runpy.run_module('freegames.__main__') + def test_main_copy_error(): cwd = os.getcwd() path = os.path.join(cwd, 'guess.py') @@ -33,6 +35,7 @@ def test_main_copy_error(): finally: os.remove('guess.py') + def test_main_show(): random.seed(0) diff --git a/tests/test_tron.py b/tests/test_tron.py index 1e9d7362..12753ace 100644 --- a/tests/test_tron.py +++ b/tests/test_tron.py @@ -9,16 +9,11 @@ def test_tron_1(): random.seed(0) - mockturtle.events[:] = ( - [('key a',), ('key a',)] - + [('timer', True)] * 600 - ) + mockturtle.events[:] = [('key a',), ('key a',)] + [('timer', True)] * 600 runpy.run_module('freegames.tron') + def test_tron_2(): random.seed(0) - mockturtle.events[:] = ( - [('key j',), ('key j',)] - + [('timer', True)] * 600 - ) + mockturtle.events[:] = [('key j',), ('key j',)] + [('timer', True)] * 600 runpy.run_module('freegames.tron') diff --git a/tests/test_utils.py b/tests/test_utils.py index 1b0ef11a..435f4638 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -2,6 +2,7 @@ import freegames.utils as utils + def test_change_after_hash(): v = utils.vector(0, 0) hash(v) @@ -20,6 +21,7 @@ def test_change_after_hash(): with raises(ValueError): v.rotate(90) + def test_not_implemented_paths(): v = utils.vector(0, 0) assert not (v == 0) From 7d355939c99ac6c72835f3a29a50a8a136268d94 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 18:16:36 -0700 Subject: [PATCH 26/47] More blue fixes --- freegames/pacman.py | 3 +++ tests/test_fidget.py | 7 +++---- tests/test_pacman.py | 7 +++---- tests/test_pong.py | 15 +++++++-------- tests/test_snake.py | 12 ++++++++---- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/freegames/pacman.py b/freegames/pacman.py index c2fb3ab1..58e849ea 100644 --- a/freegames/pacman.py +++ b/freegames/pacman.py @@ -25,6 +25,7 @@ [vector(100, 160), vector(0, -5)], [vector(100, -160), vector(-5, 0)], ] +# fmt: off tiles = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, @@ -47,6 +48,8 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ] +# fmt: on + def square(x, y): "Draw square using path at (x, y)." diff --git a/tests/test_fidget.py b/tests/test_fidget.py index 5c48655f..62101c0d 100644 --- a/tests/test_fidget.py +++ b/tests/test_fidget.py @@ -9,8 +9,7 @@ def test_fidget(): random.seed(0) - mockturtle.events[:] = ( - [('timer',), ('key space',)] * 30 - + [('timer',)] * 600 - ) + mockturtle.events.clear() + mockturtle.events += [('timer',), ('key space',)] * 30 + mockturtle.events += [('timer',)] * 600 runpy.run_module('freegames.fidget') diff --git a/tests/test_pacman.py b/tests/test_pacman.py index 2990fe1a..b9f8a45a 100644 --- a/tests/test_pacman.py +++ b/tests/test_pacman.py @@ -9,8 +9,7 @@ def test_pacman(): random.seed(0) - mockturtle.events[:] = ( - [('timer', True), ('key Up',)] * 600 - + [('timer', True)] * 3000 - ) + mockturtle.events.clear() + mockturtle.events += [('timer', True), ('key Up',)] * 600 + mockturtle.events += [('timer', True)] * 3000 runpy.run_module('freegames.pacman') diff --git a/tests/test_pong.py b/tests/test_pong.py index e3a0746c..b2809eb3 100644 --- a/tests/test_pong.py +++ b/tests/test_pong.py @@ -9,16 +9,15 @@ def test_pong_1(): random.seed(0) - mockturtle.events[:] = ( - [('timer',), ('key s',)] * 8 - + [('timer', True)] * 600 - ) + mockturtle.events.clear() + mockturtle.events += [('timer',), ('key s',)] * 8 + mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.pong') + def test_pong_2(): random.seed(1) - mockturtle.events[:] = ( - [('timer',), ('key k',)] * 12 - + [('timer', True)] * 600 - ) + mockturtle.events.clear() + mockturtle.events += [('timer',), ('key k',)] * 12 + mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.pong') diff --git a/tests/test_snake.py b/tests/test_snake.py index c6f25a14..d08a954a 100644 --- a/tests/test_snake.py +++ b/tests/test_snake.py @@ -9,8 +9,12 @@ def test_snake(): random.seed(0) - mockturtle.events[:] = ( - [('timer',), ('key Left',), ('timer',), ('key Up',)] - + [('timer', True)] * 300 - ) + mockturtle.events.clear() + mockturtle.events += [ + ('timer',), + ('key Left',), + ('timer',), + ('key Up',), + ] + mockturtle.events += [('timer', True)] * 300 runpy.run_module('freegames.snake') From c80186ad2f665691a4c8cd69cae25431d9040f32 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 18:19:16 -0700 Subject: [PATCH 27/47] Fixes for docs --- docs/madlibs.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/madlibs.rst b/docs/madlibs.rst index 1f0c31f8..359ffbc5 100644 --- a/docs/madlibs.rst +++ b/docs/madlibs.rst @@ -1,6 +1,6 @@ Mad Libs -===== +======== Create a funny story from a not-so funny story -.. literalinclude:: ../freegames/madlibs.py \ No newline at end of file +.. literalinclude:: ../freegames/madlibs.py From 69f19df5c622138eb2648b85d156e9da9e7b050d Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 14 Jun 2021 18:20:22 -0700 Subject: [PATCH 28/47] isort fixes --- freegames/ant.py | 1 + freegames/bounce.py | 1 + freegames/cannon.py | 1 + freegames/connect.py | 1 + freegames/flappy.py | 1 + freegames/life.py | 1 + freegames/maze.py | 3 ++- freegames/memory.py | 1 + freegames/minesweeper.py | 1 + freegames/pacman.py | 1 + freegames/paint.py | 1 + freegames/pong.py | 1 + freegames/simonsays.py | 1 + freegames/snake.py | 3 ++- freegames/tictactoe.py | 1 + freegames/tiles.py | 1 + freegames/tron.py | 1 + setup.py | 2 +- tests/test_bounce.py | 2 +- 19 files changed, 21 insertions(+), 4 deletions(-) diff --git a/freegames/ant.py b/freegames/ant.py index 2d03bf7c..030a8a16 100644 --- a/freegames/ant.py +++ b/freegames/ant.py @@ -11,6 +11,7 @@ from random import * from turtle import * + from freegames import vector ant = vector(0, 0) diff --git a/freegames/bounce.py b/freegames/bounce.py index 7c9fcabb..64910ca8 100644 --- a/freegames/bounce.py +++ b/freegames/bounce.py @@ -12,6 +12,7 @@ from random import * from turtle import * + from freegames import vector diff --git a/freegames/cannon.py b/freegames/cannon.py index e90ab986..b42e8410 100644 --- a/freegames/cannon.py +++ b/freegames/cannon.py @@ -11,6 +11,7 @@ from random import randrange from turtle import * + from freegames import vector ball = vector(-200, -200) diff --git a/freegames/connect.py b/freegames/connect.py index 5fcf8e8d..a5d103df 100644 --- a/freegames/connect.py +++ b/freegames/connect.py @@ -11,6 +11,7 @@ """ from turtle import * + from freegames import line turns = {'red': 'yellow', 'yellow': 'red'} diff --git a/freegames/flappy.py b/freegames/flappy.py index 1bfd341d..4aec8aaf 100644 --- a/freegames/flappy.py +++ b/freegames/flappy.py @@ -11,6 +11,7 @@ from random import * from turtle import * + from freegames import vector bird = vector(0, 0) diff --git a/freegames/life.py b/freegames/life.py index 912595cc..8c0bb3aa 100644 --- a/freegames/life.py +++ b/freegames/life.py @@ -14,6 +14,7 @@ from random import choice from turtle import * + from freegames import square cells = {} diff --git a/freegames/maze.py b/freegames/maze.py index 24a23bf0..f90b6b9f 100644 --- a/freegames/maze.py +++ b/freegames/maze.py @@ -8,8 +8,9 @@ """ -from turtle import * from random import random +from turtle import * + from freegames import line diff --git a/freegames/memory.py b/freegames/memory.py index f5a0ee5c..80bc62e8 100644 --- a/freegames/memory.py +++ b/freegames/memory.py @@ -12,6 +12,7 @@ from random import * from turtle import * + from freegames import path car = path('car.gif') diff --git a/freegames/minesweeper.py b/freegames/minesweeper.py index 87b772ca..44efa68e 100644 --- a/freegames/minesweeper.py +++ b/freegames/minesweeper.py @@ -10,6 +10,7 @@ from random import randrange, seed from turtle import * + from freegames import floor, square seed(0) diff --git a/freegames/pacman.py b/freegames/pacman.py index 58e849ea..2bc70d2f 100644 --- a/freegames/pacman.py +++ b/freegames/pacman.py @@ -12,6 +12,7 @@ from random import choice from turtle import * + from freegames import floor, vector state = {'score': 0} diff --git a/freegames/paint.py b/freegames/paint.py index 4235abcc..0a7b167e 100644 --- a/freegames/paint.py +++ b/freegames/paint.py @@ -11,6 +11,7 @@ """ from turtle import * + from freegames import vector diff --git a/freegames/pong.py b/freegames/pong.py index 4e6ec456..faf0efd0 100644 --- a/freegames/pong.py +++ b/freegames/pong.py @@ -14,6 +14,7 @@ from random import choice, random from turtle import * + from freegames import vector diff --git a/freegames/simonsays.py b/freegames/simonsays.py index 312e74a1..c1aa4733 100644 --- a/freegames/simonsays.py +++ b/freegames/simonsays.py @@ -10,6 +10,7 @@ from random import choice from time import sleep from turtle import * + from freegames import floor, square, vector pattern = [] diff --git a/freegames/snake.py b/freegames/snake.py index 9372c38e..8bf5a52f 100644 --- a/freegames/snake.py +++ b/freegames/snake.py @@ -9,8 +9,9 @@ """ -from turtle import * from random import randrange +from turtle import * + from freegames import square, vector food = vector(0, 0) diff --git a/freegames/tictactoe.py b/freegames/tictactoe.py index 8857d59b..b7a4a2d2 100644 --- a/freegames/tictactoe.py +++ b/freegames/tictactoe.py @@ -10,6 +10,7 @@ """ from turtle import * + from freegames import line diff --git a/freegames/tiles.py b/freegames/tiles.py index 05083d3d..11aef296 100644 --- a/freegames/tiles.py +++ b/freegames/tiles.py @@ -11,6 +11,7 @@ from random import * from turtle import * + from freegames import floor, vector tiles = {} diff --git a/freegames/tron.py b/freegames/tron.py index 3f1b69e6..5b4cbb58 100644 --- a/freegames/tron.py +++ b/freegames/tron.py @@ -10,6 +10,7 @@ """ from turtle import * + from freegames import square, vector p1xy = vector(-100, 0) diff --git a/setup.py b/setup.py index 645b4d06..c4f12aaa 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ import io -import setuptools as st import sys +import setuptools as st from setuptools.command.test import test as TestCommand import freegames diff --git a/tests/test_bounce.py b/tests/test_bounce.py index d397163c..5cad045a 100644 --- a/tests/test_bounce.py +++ b/tests/test_bounce.py @@ -1,7 +1,7 @@ import random import runpy -import turtle import sys +import turtle import mockturtle From 31b054a949de759b40d7f341993a7bc5ab4053b7 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:25:50 -0400 Subject: [PATCH 29/47] Add tests for minesweeper --- tests/test_minesweeper.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/test_minesweeper.py diff --git a/tests/test_minesweeper.py b/tests/test_minesweeper.py new file mode 100644 index 00000000..2c4e5e53 --- /dev/null +++ b/tests/test_minesweeper.py @@ -0,0 +1,23 @@ +import random +import runpy +import sys +import unittest.mock as mock + +import mockturtle + +sys.modules['turtle'] = sys.modules['mockturtle'] + + +def test_minesweeper(): + random.seed(0) + mockturtle.events[:] = ( + ('click', 175, -175), + ('click', -75, -75), + ('click', 125, 125), + ) + + try: + with mock.patch('time.sleep', lambda delay: None): + runpy.run_module('freegames.minesweeper') + except SystemExit: + pass From a3fdfd3656d86c1cd50f1bd05ec4a74b4b98d079 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:26:01 -0400 Subject: [PATCH 30/47] Simplify ant game --- freegames/ant.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/freegames/ant.py b/freegames/ant.py index 030a8a16..d83c7168 100644 --- a/freegames/ant.py +++ b/freegames/ant.py @@ -36,14 +36,12 @@ def draw(): goto(ant.x, ant.y) dot(4) - if running: - ontimer(draw, 100) + ontimer(draw, 100) setup(420, 420, 370, 0) hideturtle() tracer(False) up() -running = True draw() done() From 8709ef1d835280bb4885e8ed93553baf261b3fc7 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:26:24 -0400 Subject: [PATCH 31/47] Simplify crypto branching --- freegames/crypto.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/freegames/crypto.py b/freegames/crypto.py index f89e52ac..92e0805b 100644 --- a/freegames/crypto.py +++ b/freegames/crypto.py @@ -30,7 +30,8 @@ def encrypt(message, key): if letter.isupper(): base = ord('A') - elif letter.islower(): + else: + assert letter.islower() base = ord('a') # The encryption equation: From fdae0ec8bfb1632fa32eddefe2bacf308b9af0a8 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:26:36 -0400 Subject: [PATCH 32/47] Collections abc deprecation warning --- freegames/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/freegames/utils.py b/freegames/utils.py index 103d9899..edf96cbe 100644 --- a/freegames/utils.py +++ b/freegames/utils.py @@ -3,7 +3,7 @@ """ # pylint: disable=no-member -import collections +import collections.abc import math import os @@ -76,7 +76,7 @@ def square(x, y, size, name): turtle.end_fill() -class vector(collections.Sequence): +class vector(collections.abc.Sequence): """Two-dimensional vector. Vectors can be modified in-place. From ea8f41bb28339fda400d2abb1315631310bf1a0f Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:26:50 -0400 Subject: [PATCH 33/47] Test colors --- tests/test_paint.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_paint.py b/tests/test_paint.py index 4da7ff7d..492d648f 100644 --- a/tests/test_paint.py +++ b/tests/test_paint.py @@ -10,18 +10,23 @@ def test_paint(): random.seed(0) mockturtle.events[:] = [ + ('key K',), ('key l',), ('click', 0, 0), ('click', 10, 10), + ('key W',), ('key s',), ('click', 20, 20), ('click', 30, 30), + ('key G',), ('key c',), ('click', 30, 30), ('click', 40, 40), + ('key B',), ('key r',), ('click', 30, 30), ('click', 40, 40), + ('key R',), ('key t',), ('click', 30, 30), ('click', 40, 40), From 2babbe04a8a4083663026b387534b42a86a6119b Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:26:57 -0400 Subject: [PATCH 34/47] Test back-and-forth --- tests/test_pong.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_pong.py b/tests/test_pong.py index b2809eb3..c3500585 100644 --- a/tests/test_pong.py +++ b/tests/test_pong.py @@ -10,7 +10,8 @@ def test_pong_1(): random.seed(0) mockturtle.events.clear() - mockturtle.events += [('timer',), ('key s',)] * 8 + mockturtle.events += [('timer',), ('key s',)] * 12 + mockturtle.events += [('timer',), ('key w',)] * 4 mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.pong') @@ -18,6 +19,7 @@ def test_pong_1(): def test_pong_2(): random.seed(1) mockturtle.events.clear() - mockturtle.events += [('timer',), ('key k',)] * 12 + mockturtle.events += [('timer',), ('key k',)] * 18 + mockturtle.events += [('timer',), ('key i',)] * 6 mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.pong') From f634341614114a6fd9242d679006bf3a08624350 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:27:08 -0400 Subject: [PATCH 35/47] Add test for going in a circle --- tests/test_snake.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/test_snake.py b/tests/test_snake.py index d08a954a..2b12276e 100644 --- a/tests/test_snake.py +++ b/tests/test_snake.py @@ -15,6 +15,14 @@ def test_snake(): ('key Left',), ('timer',), ('key Up',), + ('timer',), + ('key Right',), + ('timer',), + ('key Down',), + ('timer',), + ('key Left',), + ('timer',), + ('key Up',), ] mockturtle.events += [('timer', True)] * 300 runpy.run_module('freegames.snake') From b0966cbba43676b8379bf2640f127f2d3ebda4da Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:27:26 -0400 Subject: [PATCH 36/47] Go back-and-forth --- tests/test_tron.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/test_tron.py b/tests/test_tron.py index 12753ace..0d871d16 100644 --- a/tests/test_tron.py +++ b/tests/test_tron.py @@ -9,11 +9,15 @@ def test_tron_1(): random.seed(0) - mockturtle.events[:] = [('key a',), ('key a',)] + [('timer', True)] * 600 + mockturtle.events.clear() + mockturtle.events += [('key a',), ('key d',), ('key a',)] + mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.tron') def test_tron_2(): random.seed(0) - mockturtle.events[:] = [('key j',), ('key j',)] + [('timer', True)] * 600 + mockturtle.events.clear() + mockturtle.events += [('key j',), ('key l',), ('key j',)] + mockturtle.events += [('timer', True)] * 600 runpy.run_module('freegames.tron') From 2970be9e7a4c1f93449a18196c8766791bd1bc0a Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:27:58 -0400 Subject: [PATCH 37/47] Remove flake8 and simplify switches --- tox.ini | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/tox.ini b/tox.ini index 2ac9f335..76758969 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist=bluecheck,doc8,docs,isortcheck,flake8,rstcheck,py36,py37,py38,py39 +envlist=bluecheck,doc8,docs,isortcheck,rstcheck,py36,py37,py38,py39 skip_missing_interpreters=True [testenv] @@ -7,7 +7,7 @@ deps= coverage pytest pytest-cov -commands=python -m pytest -v --cov freegames --cov-report term-missing tests +commands=pytest tests setenv= PYTHONPATH={toxinidir}:{toxinidir}/tests @@ -30,10 +30,6 @@ commands=make html deps= sphinx -[testenv:flake8] -commands=flake8 {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests -deps=flake8 - [testenv:isort] commands=isort {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests deps=isort @@ -43,7 +39,7 @@ commands=isort --check {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/te deps=isort [testenv:rstcheck] -commands=rstcheck {toxinidir}/README.rst +commands=rstcheck --report warning {toxinidir}/README.rst deps=rstcheck [testenv:uploaddocs] @@ -63,8 +59,6 @@ line_length = 79 [pytest] addopts= - -n auto - --cov-branch --cov-fail-under=100 --cov-report=term-missing --cov=freegames From 92f7c53bd1fd0f152b4229f4d2896fc6fe2b5740 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:34:50 -0400 Subject: [PATCH 38/47] Remove flake8 and test on Windows and MacOS --- .github/workflows/integration.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 1e9295c9..ab2c0aa2 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -13,9 +13,9 @@ jobs: checks: runs-on: ubuntu-latest strategy: - max-parallel: 6 + max-parallel: 5 matrix: - check: [bluecheck, doc8, docs, isortcheck, flake8, rstcheck] + check: [bluecheck, doc8, docs, isortcheck, rstcheck] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 @@ -35,7 +35,7 @@ jobs: strategy: max-parallel: 4 matrix: - os: [ubuntu-latest] + os: [ubuntu-latest, windows-latest, macos-latest] python-version: [3.6, 3.7, 3.8, 3.9] steps: - uses: actions/checkout@v2 From 0f140c371047caa5b99696a63ec0d1c4eb6d9c45 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:40:33 -0400 Subject: [PATCH 39/47] Update project urls and classifiers --- setup.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index c4f12aaa..ed4ee8c6 100644 --- a/setup.py +++ b/setup.py @@ -29,15 +29,22 @@ def run_tests(self): version=freegames.__version__, description='Free Games', long_description=readme, + long_description_content_type='text/x-rst', author='Grant Jenks', author_email='contact@grantjenks.com', url='http://www.grantjenks.com/docs/freegames/', + license='Apache 2.0', packages=['freegames'], include_package_data=True, tests_require=['tox'], cmdclass={'test': Tox}, - license='Apache 2.0', install_requires=[], + project_urls={ + 'Documentation': 'http://www.grantjenks.com/docs/freegames/', + 'Funding': 'http://gum.co/freegames', + 'Source': 'https://github.com/grantjenks/free-python-games', + 'Tracker': 'https://github.com/grantjenks/free-python-games/issues', + }, classifiers=( 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Education', @@ -46,10 +53,10 @@ def run_tests(self): 'Natural Language :: English', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Games/Entertainment', 'Topic :: Games/Entertainment :: Arcade', From ad40d5c0efcbae1412f6d09669133c0d0798e252 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:50:05 -0400 Subject: [PATCH 40/47] Windows %$#@! --- .github/workflows/integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index ab2c0aa2..88d91c48 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -35,7 +35,7 @@ jobs: strategy: max-parallel: 4 matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest] python-version: [3.6, 3.7, 3.8, 3.9] steps: - uses: actions/checkout@v2 From bdad81071c5684420228569d40559b95b3703554 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:54:51 -0400 Subject: [PATCH 41/47] Update copyright to 2021 --- README.rst | 2 +- freegames/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 3efddd88..cef360bf 100644 --- a/README.rst +++ b/README.rst @@ -334,7 +334,7 @@ References Free Python Games License ------------------------- -Copyright 2017-2020 Grant Jenks +Copyright 2017-2021 Grant Jenks Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the diff --git a/freegames/__init__.py b/freegames/__init__.py index 8cc4db82..76449978 100644 --- a/freegames/__init__.py +++ b/freegames/__init__.py @@ -67,4 +67,4 @@ __build__ = 0x020302 __author__ = 'Grant Jenks' __license__ = 'Apache 2.0' -__copyright__ = '2017-2020, Grant Jenks' +__copyright__ = '2017-2021, Grant Jenks' From 7f9547776d91f02f55ea93efb073d57432930b70 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:57:16 -0400 Subject: [PATCH 42/47] Add replit file for support --- .replit | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .replit diff --git a/.replit b/.replit new file mode 100644 index 00000000..fc2fa361 --- /dev/null +++ b/.replit @@ -0,0 +1,2 @@ +language = "python3" +run = "" From 7b3223037b1d817ab86c685dbfcbf9a62d56a268 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 14:59:44 -0400 Subject: [PATCH 43/47] Remove replit, don't want to grant GitHub access --- .replit | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 .replit diff --git a/.replit b/.replit deleted file mode 100644 index fc2fa361..00000000 --- a/.replit +++ /dev/null @@ -1,2 +0,0 @@ -language = "python3" -run = "" From a8b0dd14197d1e488841d03777e20c8ddc34a252 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Tue, 15 Jun 2021 15:09:21 -0400 Subject: [PATCH 44/47] Align isort and blue line lengths --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 76758969..91a15c5b 100644 --- a/tox.ini +++ b/tox.ini @@ -55,7 +55,7 @@ include_trailing_comma = True force_grid_wrap = 0 use_parentheses = True ensure_newline_before_comments = True -line_length = 79 +line_length = 80 [pytest] addopts= From d0bf840d493ad2a139ffda37539e492a1c44755d Mon Sep 17 00:00:00 2001 From: Rafael Fontenelle Date: Tue, 12 Oct 2021 17:11:45 -0300 Subject: [PATCH 45/47] Add new po files after git-rebase --- docs/locale/pt_BR/LC_MESSAGES/development.po | 22 +- docs/locale/pt_BR/LC_MESSAGES/index.po | 227 ++++++++++--------- docs/locale/pt_BR/LC_MESSAGES/madlibs.po | 28 +++ 3 files changed, 170 insertions(+), 107 deletions(-) create mode 100644 docs/locale/pt_BR/LC_MESSAGES/madlibs.po diff --git a/docs/locale/pt_BR/LC_MESSAGES/development.po b/docs/locale/pt_BR/LC_MESSAGES/development.po index 2dd074d9..6d077318 100644 --- a/docs/locale/pt_BR/LC_MESSAGES/development.po +++ b/docs/locale/pt_BR/LC_MESSAGES/development.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Free Python Games 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"POT-Creation-Date: 2021-10-12 16:44-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -163,3 +163,23 @@ msgid "" "infrastructure and run the tests." msgstr "" +#: ../../development.rst:78 +msgid "Translate" +msgstr "" + +#: ../../development.rst:80 +msgid "" +"Translation files are available in the locale/ directory, if you want to " +"contribute a translation make changes to its content." +msgstr "" + +#: ../../development.rst:82 +msgid "" +"if you want to translate to another language, you need to create the lang" +" folder. To update the lang folder you need to use the command:" +msgstr "" + +#: ../../development.rst:84 +msgid "$ make update-po" +msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/index.po b/docs/locale/pt_BR/LC_MESSAGES/index.po index b431ba6a..a7b9e0c0 100644 --- a/docs/locale/pt_BR/LC_MESSAGES/index.po +++ b/docs/locale/pt_BR/LC_MESSAGES/index.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Free Python Games 2.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-24 21:25-0300\n" +"POT-Creation-Date: 2021-10-12 16:44-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -160,343 +160,298 @@ msgid "100% Test Coverage" msgstr "" #: ../../../README.rst:75 -msgid "Developed on Python 3.7" +msgid "Developed on Python 3.9" msgstr "" #: ../../../README.rst:76 -msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" +msgid "Tested on CPython 3.6, 3.7, 3.8, 3.9" msgstr "" #: ../../../README.rst:77 -msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" +msgid "Tested on Linux, Mac OS X, and Windows" msgstr "" #: ../../../README.rst:78 -msgid "Tested using Travis CI and AppVeyor CI" +msgid "Tested using GitHub Actions" msgstr "" -#: ../../../README.rst:88 +#: ../../../README.rst:85 msgid "Quickstart" msgstr "" -#: ../../../README.rst:90 +#: ../../../README.rst:87 msgid "" "Installing Free Python Games is simple with `pip " "`_::" msgstr "" -#: ../../../README.rst:95 +#: ../../../README.rst:92 msgid "" "Free Python Games supports a command-line interface (CLI). Help for the " "CLI is available using::" msgstr "" -#: ../../../README.rst:100 +#: ../../../README.rst:97 msgid "" "The CLI supports three commands: list, copy, and show. For a list of all " "games run::" msgstr "" -#: ../../../README.rst:105 +#: ../../../README.rst:102 msgid "" "Any of the listed games may be played by executing the Python module from" " the command-line. To reference the Python module, combine \"freegames\" " "with the name of the game. For example, to play the \"snake\" game run::" msgstr "" -#: ../../../README.rst:111 +#: ../../../README.rst:108 msgid "" "Games can be modified by copying their source code. The copy command will" " create a Python file in your local directory which you can edit. For " "example, to copy and play the \"snake\" game run::" msgstr "" -#: ../../../README.rst:118 +#: ../../../README.rst:115 msgid "" "Python includes a built-in text editor named IDLE which can also execute " "Python code. To launch the editor and make changes to the \"snake\" game " "run::" msgstr "" -#: ../../../README.rst:123 +#: ../../../README.rst:120 msgid "" "You can also access documentation in the interpreter with Python's built-" "in help function::" msgstr "" -#: ../../../README.rst:131 +#: ../../../README.rst:128 msgid "Free Games" msgstr "" -#: ../../../README.rst:134 +#: ../../../README.rst:131 msgid "Paint" msgstr "" -#: ../../../README.rst:136 +#: ../../../README.rst:133 msgid "" "`Paint`_ -- draw lines and shapes on the screen. Click to mark the start " "of a shape and click again to mark its end. Different shapes and colors " "can be selected using the keyboard." msgstr "" -msgid "Paint Free Python Game" -msgstr "" - -#: ../../../README.rst:146 +#: ../../../README.rst:143 msgid "Snake" msgstr "" -#: ../../../README.rst:148 +#: ../../../README.rst:145 msgid "" "`Snake`_ -- classic arcade game. Use the arrow keys to navigate and eat " "the green food. Each time the food is consumed, the snake grows one " "segment longer. Avoid eating yourself or going out of bounds!" msgstr "" -msgid "Snake Free Python Game" -msgstr "" - -#: ../../../README.rst:158 +#: ../../../README.rst:155 msgid "Pacman" msgstr "" -#: ../../../README.rst:160 +#: ../../../README.rst:157 msgid "" "`Pacman`_ -- classic arcade game. Use the arrow keys to navigate and eat " "all the white food. Watch out for red ghosts that roam the maze." msgstr "" -msgid "Pacman Free Python Game" -msgstr "" - -#: ../../../README.rst:169 +#: ../../../README.rst:166 msgid "Cannon" msgstr "" -#: ../../../README.rst:171 +#: ../../../README.rst:168 msgid "" "`Cannon`_ -- projectile motion. Click the screen to fire your " "cannnonball. The cannonball pops blue balloons in its path. Pop all the " "balloons before they can cross the screen." msgstr "" -msgid "Cannon Free Python Game" -msgstr "" - -#: ../../../README.rst:181 +#: ../../../README.rst:178 msgid "Connect" msgstr "" -#: ../../../README.rst:183 +#: ../../../README.rst:180 msgid "" "`Connect`_ -- Connect 4 game. Click a row to drop a disc. The first " "player to connect four discs vertically, horizontally, or diagonally " "wins!" msgstr "" -msgid "Connect 4 Free Python Game" -msgstr "" - -#: ../../../README.rst:192 +#: ../../../README.rst:189 msgid "Flappy" msgstr "" -#: ../../../README.rst:194 +#: ../../../README.rst:191 msgid "" "`Flappy`_ -- Flappy-bird inspired game. Click the screen to flap your " "wings. Watch out for black ravens as you fly across the screen." msgstr "" -msgid "Flappy Bird Free Python Game" -msgstr "" - -#: ../../../README.rst:203 +#: ../../../README.rst:200 msgid "Memory" msgstr "" -#: ../../../README.rst:205 +#: ../../../README.rst:202 msgid "" "`Memory`_ -- puzzle game of number pairs. Click a tile to reveal a " "number. Match two numbers and the tiles will disappear to reveal an " "image." msgstr "" -msgid "Memory Free Python Game" -msgstr "" - -#: ../../../README.rst:214 +#: ../../../README.rst:211 msgid "Pong" msgstr "" -#: ../../../README.rst:216 +#: ../../../README.rst:213 msgid "" "`Pong`_ -- classic arcade game. Use the keyboard to move your paddle up " "and down. The first player to miss the ball loses." msgstr "" -msgid "Pong Free Python Game" -msgstr "" - -#: ../../../README.rst:225 +#: ../../../README.rst:222 msgid "Simon Says" msgstr "" -#: ../../../README.rst:227 +#: ../../../README.rst:224 msgid "" "`Simon Says`_ -- classic memory puzzle game. Click the screen to start. " "Watch the pattern and then click the tiles in the same order. Each time " "you get the sequence right the pattern gets one step longer." msgstr "" -msgid "Simon Says Free Python Game" -msgstr "" - -#: ../../../README.rst:237 +#: ../../../README.rst:234 msgid "Tic Tac Toe" msgstr "" -#: ../../../README.rst:239 +#: ../../../README.rst:236 msgid "" "`Tic Tac Toe`_ -- classic game. Click the screen to place an X or O. " "Connect three in a row and you win!" msgstr "" -msgid "Tic Tac Toe Free Python Game" -msgstr "" - -#: ../../../README.rst:248 +#: ../../../README.rst:245 msgid "Tiles" msgstr "" -#: ../../../README.rst:250 +#: ../../../README.rst:247 msgid "" "`Tiles`_ -- puzzle game of sliding numbers into place. Click a tile " "adjacent to the empty square to swap positions. Can you make the tiles " "count one to fifteen from left to right and bottom to top?" msgstr "" -msgid "Tiles Free Python Game" -msgstr "" - -#: ../../../README.rst:260 +#: ../../../README.rst:257 msgid "Tron" msgstr "" -#: ../../../README.rst:262 +#: ../../../README.rst:259 msgid "" "`Tron`_ -- classic arcade game. Use the keyboard to change the direction " "of your Tron player. Avoid touching the line drawn by your opponent." msgstr "" -msgid "Tron Free Python Game" -msgstr "" - -#: ../../../README.rst:271 +#: ../../../README.rst:268 msgid "Life" msgstr "" -#: ../../../README.rst:273 +#: ../../../README.rst:270 msgid "" "`Life`_ -- Conway's Game of Life. The classic, zero-player, cellular " "automation created in 1970 by John Conway." msgstr "" -msgid "Game of Life Free Python Game" -msgstr "" - -#: ../../../README.rst:282 +#: ../../../README.rst:279 msgid "Maze" msgstr "" -#: ../../../README.rst:284 +#: ../../../README.rst:281 msgid "" "`Maze`_ -- move from one side to another. Inspired by `A Universe in One " "Line of Code with 10 PRINT`_. Tap the screen to trace a path from one " "side to another." msgstr "" -msgid "Maze Free Python Game" -msgstr "" - -#: ../../../README.rst:295 +#: ../../../README.rst:292 msgid "Fidget" msgstr "" -#: ../../../README.rst:297 +#: ../../../README.rst:294 msgid "" "`Fidget`_ -- fidget spinner inspired animation. Click the screen to " "accelerate the fidget spinner." msgstr "" -msgid "Fidget Spinner Free Python Game" -msgstr "" - -#: ../../../README.rst:307 +#: ../../../README.rst:304 msgid "User Guide" msgstr "" -#: ../../../README.rst:309 +#: ../../../README.rst:306 msgid "" "For those wanting more details, this part of the documentation describes " "curriculum, API, and development." msgstr "" -#: ../../../README.rst:312 +#: ../../../README.rst:309 msgid "`Talk: Give the Gift of Python`_" msgstr "" -#: ../../../README.rst:313 +#: ../../../README.rst:310 msgid "`Free Python Games Curriculum`_" msgstr "" -#: ../../../README.rst:314 +#: ../../../README.rst:311 msgid "`Free Python Games API Reference`_" msgstr "" -#: ../../../README.rst:315 +#: ../../../README.rst:312 msgid "`Free Python Games Development`_" msgstr "" -#: ../../../README.rst:324 +#: ../../../README.rst:321 msgid "References" msgstr "" -#: ../../../README.rst:326 +#: ../../../README.rst:323 msgid "`Free Python Games Documentation`_" msgstr "" -#: ../../../README.rst:327 +#: ../../../README.rst:324 msgid "`Free Python Games at PyPI`_" msgstr "" -#: ../../../README.rst:328 +#: ../../../README.rst:325 msgid "`Free Python Games at GitHub`_" msgstr "" -#: ../../../README.rst:329 +#: ../../../README.rst:326 msgid "`Free Python Games Issue Tracker`_" msgstr "" -#: ../../../README.rst:338 +#: ../../../README.rst:335 msgid "Free Python Games License" msgstr "" -#: ../../../README.rst:340 -msgid "Copyright 2017-2020 Grant Jenks" +#: ../../../README.rst:337 +msgid "Copyright 2017-2021 Grant Jenks" msgstr "" -#: ../../../README.rst:342 +#: ../../../README.rst:339 msgid "" "Licensed under the Apache License, Version 2.0 (the \"License\"); you may" " not use this file except in compliance with the License. You may obtain" " a copy of the License at" msgstr "" -#: ../../../README.rst:346 +#: ../../../README.rst:343 msgid "http://www.apache.org/licenses/LICENSE-2.0" msgstr "" -#: ../../../README.rst:348 +#: ../../../README.rst:345 msgid "" "Unless required by applicable law or agreed to in writing, software " "distributed under the License is distributed on an \"AS IS\" BASIS, " @@ -505,3 +460,63 @@ msgid "" "limitations under the License." msgstr "" +#~ msgid "Developed on Python 3.7" +#~ msgstr "" + +#~ msgid "Tested on CPython 2.7, 3.4, 3.5, 3.6, and 3.7" +#~ msgstr "" + +#~ msgid "Tested on Windows, Mac OS X, Raspbian (Raspberry Pi), and Linux" +#~ msgstr "" + +#~ msgid "Tested using Travis CI and AppVeyor CI" +#~ msgstr "" + +#~ msgid "Paint Free Python Game" +#~ msgstr "" + +#~ msgid "Snake Free Python Game" +#~ msgstr "" + +#~ msgid "Pacman Free Python Game" +#~ msgstr "" + +#~ msgid "Cannon Free Python Game" +#~ msgstr "" + +#~ msgid "Connect 4 Free Python Game" +#~ msgstr "" + +#~ msgid "Flappy Bird Free Python Game" +#~ msgstr "" + +#~ msgid "Memory Free Python Game" +#~ msgstr "" + +#~ msgid "Pong Free Python Game" +#~ msgstr "" + +#~ msgid "Simon Says Free Python Game" +#~ msgstr "" + +#~ msgid "Tic Tac Toe Free Python Game" +#~ msgstr "" + +#~ msgid "Tiles Free Python Game" +#~ msgstr "" + +#~ msgid "Tron Free Python Game" +#~ msgstr "" + +#~ msgid "Game of Life Free Python Game" +#~ msgstr "" + +#~ msgid "Maze Free Python Game" +#~ msgstr "" + +#~ msgid "Fidget Spinner Free Python Game" +#~ msgstr "" + +#~ msgid "Copyright 2017-2020 Grant Jenks" +#~ msgstr "" + diff --git a/docs/locale/pt_BR/LC_MESSAGES/madlibs.po b/docs/locale/pt_BR/LC_MESSAGES/madlibs.po new file mode 100644 index 00000000..d3eb94ff --- /dev/null +++ b/docs/locale/pt_BR/LC_MESSAGES/madlibs.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2017-2021, Grant Jenks +# This file is distributed under the same license as the Free Python Games +# package. +# FIRST AUTHOR , 2021. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Free Python Games 2.3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-10-12 16:44-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.1\n" + +#: ../../madlibs.rst:2 +msgid "Mad Libs" +msgstr "" + +#: ../../madlibs.rst:4 +msgid "Create a funny story from a not-so funny story" +msgstr "" + From 15ebbcfb024909b6b2cf3cbfe9042db7c5161fa2 Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 29 Nov 2021 22:17:06 -0800 Subject: [PATCH 46/47] Update to support Python 3.10 (#75) * Update to support Python 3.10 * Update copyright * Add flake8 testing * Remove unused import * Update copyright for 2022 * I blue it! --- .github/workflows/integration.yml | 10 +++++----- LICENSE | 2 +- README.rst | 6 +++--- freegames/__init__.py | 1 - freegames/__main__.py | 5 ++--- freegames/ant.py | 5 ++--- freegames/bagels.py | 1 - freegames/bounce.py | 5 ++--- freegames/cannon.py | 9 ++++----- freegames/connect.py | 5 ++--- freegames/crypto.py | 9 ++++----- freegames/fidget.py | 7 +++---- freegames/flappy.py | 9 ++++----- freegames/guess.py | 1 - freegames/life.py | 7 +++---- freegames/madlibs.py | 1 - freegames/maze.py | 5 ++--- freegames/memory.py | 11 +++++------ freegames/minesweeper.py | 11 +++++------ freegames/pacman.py | 13 ++++++------- freegames/paint.py | 15 +++++++-------- freegames/pong.py | 9 ++++----- freegames/simonsays.py | 11 +++++------ freegames/snake.py | 7 +++---- freegames/tictactoe.py | 11 +++++------ freegames/tiles.py | 9 ++++----- freegames/tron.py | 5 ++--- freegames/utils.py | 5 ++--- setup.py | 1 + tests/mockturtle.py | 1 - tests/test_bounce.py | 1 - tox.ini | 7 ++++++- 32 files changed, 92 insertions(+), 113 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 88d91c48..331eba3d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -13,14 +13,14 @@ jobs: checks: runs-on: ubuntu-latest strategy: - max-parallel: 5 + max-parallel: 6 matrix: - check: [bluecheck, doc8, docs, isortcheck, rstcheck] + check: [bluecheck, doc8, docs, flake8, isortcheck, rstcheck] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: '3.10' - name: Setup tox run: | pip install --upgrade pip @@ -33,10 +33,10 @@ jobs: needs: checks runs-on: ${{ matrix.os }} strategy: - max-parallel: 4 + max-parallel: 5 matrix: os: [ubuntu-latest] - python-version: [3.6, 3.7, 3.8, 3.9] + python-version: [3.6, 3.7, 3.8, 3.9, '3.10'] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 diff --git a/LICENSE b/LICENSE index 7874bf39..1db7e981 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2017-2019 Grant Jenks +Copyright 2017-2022 Grant Jenks Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the diff --git a/README.rst b/README.rst index cef360bf..32d87e5c 100644 --- a/README.rst +++ b/README.rst @@ -72,8 +72,8 @@ Features - Used in hundreds of hours of classroom instruction - Fully Documented - 100% Test Coverage -- Developed on Python 3.9 -- Tested on CPython 3.6, 3.7, 3.8, 3.9 +- Developed on Python 3.10 +- Tested on CPython 3.6, 3.7, 3.8, 3.9, 3.10 - Tested on Linux, Mac OS X, and Windows - Tested using GitHub Actions @@ -334,7 +334,7 @@ References Free Python Games License ------------------------- -Copyright 2017-2021 Grant Jenks +Copyright 2017-2022 Grant Jenks Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the diff --git a/freegames/__init__.py b/freegames/__init__.py index 76449978..1d73f372 100644 --- a/freegames/__init__.py +++ b/freegames/__init__.py @@ -55,7 +55,6 @@ code. To launch the editor and make changes to the "snake" game run:: $ python3 -m idlelib.idle snake.py - """ from .utils import floor, line, path, square, vector diff --git a/freegames/__main__.py b/freegames/__main__.py index b083f70a..3212a184 100644 --- a/freegames/__main__.py +++ b/freegames/__main__.py @@ -1,5 +1,4 @@ """Free Games CLI - """ import argparse @@ -10,7 +9,7 @@ def game_file(name): - "Return True if filename represents a game." + """Return True if filename represents a game.""" return ( name.endswith('.py') and not name.startswith('__') @@ -23,7 +22,7 @@ def game_file(name): parser = argparse.ArgumentParser( prog='freegames', description='Free Python Games', - epilog='Copyright 2017 Grant Jenks', + epilog='Copyright 2022 Grant Jenks', ) subparsers = parser.add_subparsers(dest='command', help='sub-command help') diff --git a/freegames/ant.py b/freegames/ant.py index d83c7168..45b32fcd 100644 --- a/freegames/ant.py +++ b/freegames/ant.py @@ -6,7 +6,6 @@ 2. Make the ant leave a trail. 3. Change the ant color based on position. Hint: colormode(255); color(0, 100, 200) - """ from random import * @@ -19,12 +18,12 @@ def wrap(value): - "Wrap value around -200 and 200." + """Wrap value around -200 and 200.""" return value # TODO def draw(): - "Move ant and draw screen." + """Move ant and draw screen.""" ant.move(aim) ant.x = wrap(ant.x) ant.y = wrap(ant.y) diff --git a/freegames/bagels.py b/freegames/bagels.py index 87484eec..4616b2f5 100644 --- a/freegames/bagels.py +++ b/freegames/bagels.py @@ -7,7 +7,6 @@ 3. What's the maximum number of digits we could support? Adapted from code in https://inventwithpython.com/chapter11.html - """ from random import sample, shuffle diff --git a/freegames/bounce.py b/freegames/bounce.py index 64910ca8..ddc14ee8 100644 --- a/freegames/bounce.py +++ b/freegames/bounce.py @@ -7,7 +7,6 @@ 3. Make the ball leave a trail. 4. Change the ball color based on position. Hint: colormode(255); color(0, 100, 200) - """ from random import * @@ -17,7 +16,7 @@ def value(): - "Randomly generate value between (-5, -3) or (3, 5)." + """Randomly generate value between (-5, -3) or (3, 5).""" return (3 + random() * 2) * choice([1, -1]) @@ -26,7 +25,7 @@ def value(): def draw(): - "Move ball and draw game." + """Move ball and draw game.""" ball.move(aim) x = ball.x diff --git a/freegames/cannon.py b/freegames/cannon.py index b42e8410..c68da9b1 100644 --- a/freegames/cannon.py +++ b/freegames/cannon.py @@ -6,7 +6,6 @@ 2. Vary the effect of gravity. 3. Apply gravity to the targets. 4. Change the speed of the ball. - """ from random import randrange @@ -20,7 +19,7 @@ def tap(x, y): - "Respond to screen tap." + """Respond to screen tap.""" if not inside(ball): ball.x = -199 ball.y = -199 @@ -29,12 +28,12 @@ def tap(x, y): def inside(xy): - "Return True if xy within screen." + """Return True if xy within screen.""" return -200 < xy.x < 200 and -200 < xy.y < 200 def draw(): - "Draw ball and targets." + """Draw ball and targets.""" clear() for target in targets: @@ -49,7 +48,7 @@ def draw(): def move(): - "Move ball and targets." + """Move ball and targets.""" if randrange(40) == 0: y = randrange(-150, 150) target = vector(200, y) diff --git a/freegames/connect.py b/freegames/connect.py index a5d103df..5c39e166 100644 --- a/freegames/connect.py +++ b/freegames/connect.py @@ -7,7 +7,6 @@ 3. Add logic to detect a full row. 4. Create a random computer player. 5. How would you detect a winner? - """ from turtle import * @@ -19,7 +18,7 @@ def grid(): - "Draw Connect Four grid." + """Draw Connect Four grid.""" bgcolor('light blue') for x in range(-150, 200, 50): @@ -35,7 +34,7 @@ def grid(): def tap(x, y): - "Draw red or yellow circle in tapped row." + """Draw red or yellow circle in tapped row.""" player = state['player'] rows = state['rows'] diff --git a/freegames/crypto.py b/freegames/crypto.py index 92e0805b..a59affda 100644 --- a/freegames/crypto.py +++ b/freegames/crypto.py @@ -9,12 +9,11 @@ 5. Make the encryption harder to decode. Adapted from code in https://inventwithpython.com/chapter14.html - """ def encrypt(message, key): - "Encrypt message with key." + """Encrypt message with key.""" result = '' # Iterate letters in message and encrypt each individually. @@ -52,17 +51,17 @@ def encrypt(message, key): def decrypt(message, key): - "Decrypt message with key." + """Decrypt message with key.""" return encrypt(message, -key) def decode(message): - "Decode message without key." + """Decode message without key.""" pass # TODO def get_key(): - "Get key from user." + """Get key from user.""" try: text = input('Enter a key (1 - 25): ') key = int(text) diff --git a/freegames/fidget.py b/freegames/fidget.py index e425acd5..84d50d50 100644 --- a/freegames/fidget.py +++ b/freegames/fidget.py @@ -6,7 +6,6 @@ 2. Respond to mouse clicks. 3. Change its acceleration. 4. Make it go forwards and backwards. - """ from turtle import * @@ -15,7 +14,7 @@ def spinner(): - "Draw fidget spinner." + """Draw fidget spinner.""" clear() angle = state['turn'] / 10 right(angle) @@ -35,7 +34,7 @@ def spinner(): def animate(): - "Animate fidget spinner." + """Animate fidget spinner.""" if state['turn'] > 0: state['turn'] -= 1 @@ -44,7 +43,7 @@ def animate(): def flick(): - "Flick fidget spinner." + """Flick fidget spinner.""" state['turn'] += 10 diff --git a/freegames/flappy.py b/freegames/flappy.py index 4aec8aaf..1894c2d5 100644 --- a/freegames/flappy.py +++ b/freegames/flappy.py @@ -6,7 +6,6 @@ 2. Vary the speed. 3. Vary the size of the balls. 4. Allow the bird to move forward and back. - """ from random import * @@ -19,18 +18,18 @@ def tap(x, y): - "Move bird up in response to screen tap." + """Move bird up in response to screen tap.""" up = vector(0, 30) bird.move(up) def inside(point): - "Return True if point on screen." + """Return True if point on screen.""" return -200 < point.x < 200 and -200 < point.y < 200 def draw(alive): - "Draw screen objects." + """Draw screen objects.""" clear() goto(bird.x, bird.y) @@ -48,7 +47,7 @@ def draw(alive): def move(): - "Update object positions." + """Update object positions.""" bird.y -= 5 for ball in balls: diff --git a/freegames/guess.py b/freegames/guess.py index d7e5738c..3cdd60b8 100644 --- a/freegames/guess.py +++ b/freegames/guess.py @@ -6,7 +6,6 @@ 2. Can you still guess the number? 3. Print the number of guesses made. 4. Limit the number of guesses to the minimum required. - """ from random import randint diff --git a/freegames/life.py b/freegames/life.py index 8c0bb3aa..fcee86af 100644 --- a/freegames/life.py +++ b/freegames/life.py @@ -9,7 +9,6 @@ 2. How can you make the simulation faster? Or bigger? 3. How would you modify the initial state? 4. Try changing the rules of life :) - """ from random import choice @@ -21,7 +20,7 @@ def initialize(): - "Randomly initialize the cells." + """Randomly initialize the cells.""" for x in range(-200, 200, 10): for y in range(-200, 200, 10): cells[x, y] = False @@ -32,7 +31,7 @@ def initialize(): def step(): - "Compute one step in the Game of Life." + """Compute one step in the Game of Life.""" neighbors = {} for x in range(-190, 190, 10): @@ -52,7 +51,7 @@ def step(): def draw(): - "Draw all the squares." + """Draw all the squares.""" step() clear() for (x, y), alive in cells.items(): diff --git a/freegames/madlibs.py b/freegames/madlibs.py index 68ff46f1..0328d7fc 100644 --- a/freegames/madlibs.py +++ b/freegames/madlibs.py @@ -5,7 +5,6 @@ 1. How to replace the story? 2. How load the story and from a file? 3. How to add additional parts of speech? - """ # The quick brown fox jumps over the lazy dog. diff --git a/freegames/maze.py b/freegames/maze.py index f90b6b9f..ca40786a 100644 --- a/freegames/maze.py +++ b/freegames/maze.py @@ -5,7 +5,6 @@ 1. Keep score by counting taps. 2. Make the maze harder. 3. Generate the same maze twice. - """ from random import random @@ -15,7 +14,7 @@ def draw(): - "Draw maze." + """Draw maze.""" color('black') width(5) @@ -30,7 +29,7 @@ def draw(): def tap(x, y): - "Draw line and dot for screen tap." + """Draw line and dot for screen tap.""" if abs(x) > 198 or abs(y) > 198: up() else: diff --git a/freegames/memory.py b/freegames/memory.py index 80bc62e8..c0d2ad3d 100644 --- a/freegames/memory.py +++ b/freegames/memory.py @@ -7,7 +7,6 @@ 3. Detect when all tiles are revealed. 4. Center single-digit tile. 5. Use letters instead of tiles. - """ from random import * @@ -22,7 +21,7 @@ def square(x, y): - "Draw white square with black outline at (x, y)." + """Draw white square with black outline at (x, y).""" up() goto(x, y) down() @@ -35,17 +34,17 @@ def square(x, y): def index(x, y): - "Convert (x, y) coordinates to tiles index." + """Convert (x, y) coordinates to tiles index.""" return int((x + 200) // 50 + ((y + 200) // 50) * 8) def xy(count): - "Convert tiles count to (x, y) coordinates." + """Convert tiles count to (x, y) coordinates.""" return (count % 8) * 50 - 200, (count // 8) * 50 - 200 def tap(x, y): - "Update mark and hidden tiles based on tap." + """Update mark and hidden tiles based on tap.""" spot = index(x, y) mark = state['mark'] @@ -58,7 +57,7 @@ def tap(x, y): def draw(): - "Draw image and tiles." + """Draw image and tiles.""" clear() goto(0, 0) shape(car) diff --git a/freegames/minesweeper.py b/freegames/minesweeper.py index 44efa68e..4278af03 100644 --- a/freegames/minesweeper.py +++ b/freegames/minesweeper.py @@ -5,7 +5,6 @@ 1. What does the `seed(0)` function call do? 2. Change the number of bombs on the grid. 3. Change the size of the grid. - """ from random import randrange, seed @@ -20,7 +19,7 @@ def initialize(): - "Initialize `bombs`, `counts`, and `shown` grids." + """Initialize `bombs`, `counts`, and `shown` grids.""" for x in range(-250, 250, 50): for y in range(-250, 250, 50): bombs[x, y] = False @@ -42,21 +41,21 @@ def initialize(): def stamp(x, y, text): - "Display `text` at coordinates `x` and `y`." + """Display `text` at coordinates `x` and `y`.""" square(x, y, 50, 'white') color('black') write(text, font=('Arial', 50, 'normal')) def draw(): - "Draw the initial board grid." + """Draw the initial board grid.""" for x in range(-200, 200, 50): for y in range(-200, 200, 50): stamp(x, y, '?') def end(): - "Draw the bombs as X's on the grid." + """Draw the bombs as X's on the grid.""" for x in range(-200, 200, 50): for y in range(-200, 200, 50): if bombs[x, y]: @@ -64,7 +63,7 @@ def end(): def tap(x, y): - "Respond to screen click at `x` and `y` coordinates." + """Respond to screen click at `x` and `y` coordinates.""" x = floor(x, 50) y = floor(y, 50) diff --git a/freegames/pacman.py b/freegames/pacman.py index 2bc70d2f..644b35a4 100644 --- a/freegames/pacman.py +++ b/freegames/pacman.py @@ -7,7 +7,6 @@ 3. Change where pacman starts. 4. Make the ghosts faster/slower. 5. Make the ghosts smarter. - """ from random import choice @@ -53,7 +52,7 @@ def square(x, y): - "Draw square using path at (x, y)." + """Draw square using path at (x, y).""" path.up() path.goto(x, y) path.down() @@ -67,7 +66,7 @@ def square(x, y): def offset(point): - "Return offset of point in tiles." + """Return offset of point in tiles.""" x = (floor(point.x, 20) + 200) / 20 y = (180 - floor(point.y, 20)) / 20 index = int(x + y * 20) @@ -75,7 +74,7 @@ def offset(point): def valid(point): - "Return True if point is valid in tiles." + """Return True if point is valid in tiles.""" index = offset(point) if tiles[index] == 0: @@ -90,7 +89,7 @@ def valid(point): def world(): - "Draw world using path." + """Draw world using path.""" bgcolor('black') path.color('blue') @@ -109,7 +108,7 @@ def world(): def move(): - "Move pacman and all ghosts." + """Move pacman and all ghosts.""" writer.undo() writer.write(state['score']) @@ -159,7 +158,7 @@ def move(): def change(x, y): - "Change pacman aim if valid." + """Change pacman aim if valid.""" if valid(pacman + vector(x, y)): aim.x = x aim.y = y diff --git a/freegames/paint.py b/freegames/paint.py index 0a7b167e..adc5dec5 100644 --- a/freegames/paint.py +++ b/freegames/paint.py @@ -7,7 +7,6 @@ 3. Complete rectangle. 4. Complete triangle. 5. Add width parameter. - """ from turtle import * @@ -16,7 +15,7 @@ def line(start, end): - "Draw line from start to end." + """Draw line from start to end.""" up() goto(start.x, start.y) down() @@ -24,7 +23,7 @@ def line(start, end): def square(start, end): - "Draw square from start to end." + """Draw square from start to end.""" up() goto(start.x, start.y) down() @@ -38,22 +37,22 @@ def square(start, end): def circle(start, end): - "Draw circle from start to end." + """Draw circle from start to end.""" pass # TODO def rectangle(start, end): - "Draw rectangle from start to end." + """Draw rectangle from start to end.""" pass # TODO def triangle(start, end): - "Draw triangle from start to end." + """Draw triangle from start to end.""" pass # TODO def tap(x, y): - "Store starting point or draw shape." + """Store starting point or draw shape.""" start = state['start'] if start is None: @@ -66,7 +65,7 @@ def tap(x, y): def store(key, value): - "Store value in state at key." + """Store value in state at key.""" state[key] = value diff --git a/freegames/pong.py b/freegames/pong.py index faf0efd0..cbabedc9 100644 --- a/freegames/pong.py +++ b/freegames/pong.py @@ -9,7 +9,6 @@ 5. Change how the ball bounces off walls. 6. How would you add a computer player? 6. Add a second ball. - """ from random import choice, random @@ -19,7 +18,7 @@ def value(): - "Randomly generate value between (-5, -3) or (3, 5)." + """Randomly generate value between (-5, -3) or (3, 5).""" return (3 + random() * 2) * choice([1, -1]) @@ -29,12 +28,12 @@ def value(): def move(player, change): - "Move player position by change." + """Move player position by change.""" state[player] += change def rectangle(x, y, width, height): - "Draw rectangle at (x, y) with given width and height." + """Draw rectangle at (x, y) with given width and height.""" up() goto(x, y) down() @@ -48,7 +47,7 @@ def rectangle(x, y, width, height): def draw(): - "Draw game and move pong ball." + """Draw game and move pong ball.""" clear() rectangle(-200, state[1], 10, 50) rectangle(190, state[2], 10, 50) diff --git a/freegames/simonsays.py b/freegames/simonsays.py index c1aa4733..d583afc8 100644 --- a/freegames/simonsays.py +++ b/freegames/simonsays.py @@ -4,7 +4,6 @@ 1. Speed up tile flash rate. 2. Add more tiles. - """ from random import choice @@ -24,7 +23,7 @@ def grid(): - "Draw grid of tiles." + """Draw grid of tiles.""" square(0, 0, 200, 'dark red') square(0, -200, 200, 'dark blue') square(-200, 0, 200, 'dark green') @@ -33,7 +32,7 @@ def grid(): def flash(tile): - "Flash tile in grid." + """Flash tile in grid.""" glow, dark = tiles[tile] square(tile.x, tile.y, 200, glow) update() @@ -44,7 +43,7 @@ def flash(tile): def grow(): - "Grow pattern and flash tiles." + """Grow pattern and flash tiles.""" tile = choice(list(tiles)) pattern.append(tile) @@ -56,7 +55,7 @@ def grow(): def tap(x, y): - "Respond to screen tap." + """Respond to screen tap.""" onscreenclick(None) x = floor(x, 200) y = floor(y, 200) @@ -76,7 +75,7 @@ def tap(x, y): def start(x, y): - "Start game." + """Start game.""" grow() onscreenclick(tap) diff --git a/freegames/snake.py b/freegames/snake.py index 8bf5a52f..f1f2599f 100644 --- a/freegames/snake.py +++ b/freegames/snake.py @@ -6,7 +6,6 @@ 2. How can you make the snake go around the edges? 3. How would you move the food? 4. Change the snake to respond to mouse clicks. - """ from random import randrange @@ -20,18 +19,18 @@ def change(x, y): - "Change snake direction." + """Change snake direction.""" aim.x = x aim.y = y def inside(head): - "Return True if head inside boundaries." + """Return True if head inside boundaries.""" return -200 < head.x < 190 and -200 < head.y < 190 def move(): - "Move snake forward one segment." + """Move snake forward one segment.""" head = snake[-1].copy() head.move(aim) diff --git a/freegames/tictactoe.py b/freegames/tictactoe.py index b7a4a2d2..23a3142e 100644 --- a/freegames/tictactoe.py +++ b/freegames/tictactoe.py @@ -6,7 +6,6 @@ 2. What happens when someone taps a taken spot? 3. How would you detect when someone has won? 4. How could you create a computer player? - """ from turtle import * @@ -15,7 +14,7 @@ def grid(): - "Draw tic-tac-toe grid." + """Draw tic-tac-toe grid.""" line(-67, 200, -67, -200) line(67, 200, 67, -200) line(-200, -67, 200, -67) @@ -23,13 +22,13 @@ def grid(): def drawx(x, y): - "Draw X player." + """Draw X player.""" line(x, y, x + 133, y + 133) line(x, y + 133, x + 133, y) def drawo(x, y): - "Draw O player." + """Draw O player.""" up() goto(x + 67, y + 5) down() @@ -37,7 +36,7 @@ def drawo(x, y): def floor(value): - "Round value down to grid with square size 133." + """Round value down to grid with square size 133.""" return ((value + 200) // 133) * 133 - 200 @@ -46,7 +45,7 @@ def floor(value): def tap(x, y): - "Draw X or O in tapped square." + """Draw X or O in tapped square.""" x = floor(x) y = floor(y) player = state['player'] diff --git a/freegames/tiles.py b/freegames/tiles.py index 11aef296..94efda28 100644 --- a/freegames/tiles.py +++ b/freegames/tiles.py @@ -6,7 +6,6 @@ 2. Permit diagonal squares as neighbors. 3. Respond to arrow keys instead of mouse clicks. 4. Make the grid bigger. - """ from random import * @@ -24,7 +23,7 @@ def load(): - "Load tiles and scramble." + """Load tiles and scramble.""" count = 1 for y in range(-200, 200, 100): @@ -47,7 +46,7 @@ def load(): def square(mark, number): - "Draw white square with black outline and number." + """Draw white square with black outline and number.""" up() goto(mark.x, mark.y) down() @@ -68,7 +67,7 @@ def square(mark, number): def tap(x, y): - "Swap tile and empty square." + """Swap tile and empty square.""" x = floor(x, 100) y = floor(y, 100) mark = vector(x, y) @@ -85,7 +84,7 @@ def tap(x, y): def draw(): - "Draw all tiles." + """Draw all tiles.""" for mark in tiles: square(mark, tiles[mark]) update() diff --git a/freegames/tron.py b/freegames/tron.py index 5b4cbb58..6cdf0b1a 100644 --- a/freegames/tron.py +++ b/freegames/tron.py @@ -6,7 +6,6 @@ 2. Stop a tron player from running into itself. 3. Allow the tron player to go around the edge of the screen. 4. How would you create a computer player? - """ from turtle import * @@ -23,12 +22,12 @@ def inside(head): - "Return True if head inside screen." + """Return True if head inside screen.""" return -200 < head.x < 200 and -200 < head.y < 200 def draw(): - "Advance players and draw game." + """Advance players and draw game.""" p1xy.move(p1aim) p1head = p1xy.copy() diff --git a/freegames/utils.py b/freegames/utils.py index edf96cbe..30f63292 100644 --- a/freegames/utils.py +++ b/freegames/utils.py @@ -1,5 +1,4 @@ """Utilities - """ # pylint: disable=no-member @@ -38,7 +37,7 @@ def floor(value, size, offset=200): def path(filename): - "Return full path to `filename` in freegames module." + """Return full path to `filename` in freegames module.""" filepath = os.path.realpath(__file__) dirpath = os.path.dirname(filepath) fullpath = os.path.join(dirpath, filename) @@ -46,7 +45,7 @@ def path(filename): def line(a, b, x, y): - "Draw line from `(a, b)` to `(x, y)`." + """Draw line from `(a, b)` to `(x, y)`.""" import turtle turtle.up() diff --git a/setup.py b/setup.py index ed4ee8c6..8d4e9e3f 100644 --- a/setup.py +++ b/setup.py @@ -57,6 +57,7 @@ def run_tests(self): 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Games/Entertainment', 'Topic :: Games/Entertainment :: Arcade', diff --git a/tests/mockturtle.py b/tests/mockturtle.py index 9bb2b019..26e5d52b 100644 --- a/tests/mockturtle.py +++ b/tests/mockturtle.py @@ -1,5 +1,4 @@ """Mock turtle module. - """ state = {} diff --git a/tests/test_bounce.py b/tests/test_bounce.py index 5cad045a..eef2bc20 100644 --- a/tests/test_bounce.py +++ b/tests/test_bounce.py @@ -1,7 +1,6 @@ import random import runpy import sys -import turtle import mockturtle diff --git a/tox.ini b/tox.ini index 91a15c5b..5d835318 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist=bluecheck,doc8,docs,isortcheck,rstcheck,py36,py37,py38,py39 +envlist=bluecheck,doc8,docs,flake8,isortcheck,rstcheck,py36,py37,py38,py39,py310 skip_missing_interpreters=True [testenv] @@ -30,6 +30,10 @@ commands=make html deps= sphinx +[testenv:flake8] +commands=flake8 {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests +deps=flake8 + [testenv:isort] commands=isort {toxinidir}/setup.py {toxinidir}/freegames {toxinidir}/tests deps=isort @@ -71,4 +75,5 @@ testpaths=docs freegames tests README.rst # ignore=D000 [flake8] +ignore=E722,F403,F405,W503 max-line-length=120 From 1ec801047e4ad23576443bf3acfd20310916258c Mon Sep 17 00:00:00 2001 From: Grant Jenks Date: Mon, 29 Nov 2021 22:22:37 -0800 Subject: [PATCH 47/47] Bump version to 2.4.0 --- freegames/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/freegames/__init__.py b/freegames/__init__.py index 1d73f372..93a04f93 100644 --- a/freegames/__init__.py +++ b/freegames/__init__.py @@ -62,8 +62,8 @@ __all__ = ['floor', 'line', 'path', 'square', 'vector'] __title__ = 'freegames' -__version__ = '2.3.2' -__build__ = 0x020302 +__version__ = '2.4.0' +__build__ = 0x020400 __author__ = 'Grant Jenks' __license__ = 'Apache 2.0' -__copyright__ = '2017-2021, Grant Jenks' +__copyright__ = '2017-2022, Grant Jenks'