Compare commits
2 Commits
1a7c404e1e
...
3e2697a42f
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e2697a42f | |||
| d11635e25f |
160
.gitignore
vendored
Normal file
160
.gitignore
vendored
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
# .python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
#Pipfile.lock
|
||||||
|
|
||||||
|
# poetry
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||||
|
#poetry.lock
|
||||||
|
|
||||||
|
# pdm
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||||
|
#pdm.lock
|
||||||
|
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||||
|
# in version control.
|
||||||
|
# https://pdm.fming.dev/#use-with-ide
|
||||||
|
.pdm.toml
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
#.idea/
|
||||||
BIN
projekt/Bilder/Grass.jpg
Normal file
BIN
projekt/Bilder/Grass.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
projekt/Bilder/Hase.jpg
Normal file
BIN
projekt/Bilder/Hase.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
10
projekt/README.md
Normal file
10
projekt/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Installation
|
||||||
|
## Voraussetzungen
|
||||||
|
Siehe Kurs Informatik-E: Einstieg mit Python in itsLearning.
|
||||||
|
## Starten des Spiels
|
||||||
|
python starten.py
|
||||||
|
|
||||||
|
# Bildquellen:
|
||||||
|
[Grass Image by macrovector on Freepik](https://www.freepik.com/free-vector/seamless-green-grass-pattern_13187581.htm#query=grass%20texture&position=0&from_view=keyword&track=ais&uuid=c689b011-652b-4ad1-a90a-bf3c50762622)
|
||||||
|
|
||||||
|
[Rabbit Symbol by torskaya on Freepik](https://www.freepik.com/icon/rabbit_2687160#fromView=search&page=1&position=19&uuid=3c377ca9-cb56-4be7-aebe-0bcac1702034)
|
||||||
18
projekt/meinspiel.py
Normal file
18
projekt/meinspiel.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import pygame
|
||||||
|
class MeinSpiel:
|
||||||
|
bilder = ["Bilder/Grass.jpg","Bilder/Hase.jpg"]
|
||||||
|
spielfeld = []
|
||||||
|
|
||||||
|
def __init__(self, felderX, felderY):
|
||||||
|
for x in range(felderX):
|
||||||
|
self.spielfeld.append([])
|
||||||
|
for y in range(felderY):
|
||||||
|
self.spielfeld[x].append(0)
|
||||||
|
|
||||||
|
def anfangsKonfiguration(self):
|
||||||
|
self.spielfeld[5][5] = 1
|
||||||
|
|
||||||
|
def tasteGedrueckt(self, taste):
|
||||||
|
if pygame.K_w == taste:
|
||||||
|
print(taste)
|
||||||
|
|
||||||
50
projekt/starten.py
Normal file
50
projekt/starten.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Importieren u. initialisieren der Pygame-Bibliothek
|
||||||
|
from meinspiel import MeinSpiel
|
||||||
|
import pygame
|
||||||
|
from pygame.locals import *
|
||||||
|
pygame.init()
|
||||||
|
|
||||||
|
|
||||||
|
# Variablen/KONSTANTEN setzen
|
||||||
|
Breite, Hoehe = 840, 840
|
||||||
|
Pixel = 60
|
||||||
|
FelderX, FelderY = int(Breite / Pixel), int(Hoehe / Pixel)
|
||||||
|
FPS = 60
|
||||||
|
SCHWARZ = ( 0, 0, 0)
|
||||||
|
WEISS = ( 255, 255, 255)
|
||||||
|
pyGameBilder = []
|
||||||
|
|
||||||
|
# Bilder aus meinSpiel werden für pygame vorbereitet
|
||||||
|
meinSpiel = MeinSpiel(FelderX, FelderY)
|
||||||
|
for fname in meinSpiel.bilder:
|
||||||
|
pyGameBilder.append(pygame.image.load(fname))
|
||||||
|
|
||||||
|
#Anfangskonfiguration für das Spielfeld wird geladen
|
||||||
|
meinSpiel.anfangsKonfiguration()
|
||||||
|
|
||||||
|
# Definieren und Öffnen eines neuen Fensters
|
||||||
|
fenster = pygame.display.set_mode((Breite, Hoehe))
|
||||||
|
pygame.display.set_caption("Mein erstes Spiel")
|
||||||
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
|
# Schleife Hauptprogramm
|
||||||
|
while True:
|
||||||
|
# Überprüfen, ob Nutzer eine Aktion durchgeführt hat
|
||||||
|
for event in pygame.event.get():
|
||||||
|
# Beenden bei [ESC] oder [X]
|
||||||
|
if event.type==QUIT or (event.type==KEYDOWN and event.key==K_ESCAPE):
|
||||||
|
pygame.quit()
|
||||||
|
|
||||||
|
# Spiellogik
|
||||||
|
if event.type==KEYDOWN:
|
||||||
|
meinSpiel.tasteGedrueckt(event.key)
|
||||||
|
# Spielfeld löschen
|
||||||
|
for x in range(FelderX):
|
||||||
|
for y in range(FelderY):
|
||||||
|
fenster.blit(pyGameBilder[meinSpiel.spielfeld[x][y]],(x*Pixel,y*Pixel))
|
||||||
|
|
||||||
|
# Spielfeld/figuren zeichnen
|
||||||
|
|
||||||
|
# Fenster aktualisieren
|
||||||
|
pygame.display.flip()
|
||||||
|
clock.tick(FPS)
|
||||||
Reference in New Issue
Block a user