Skip to content

Commit

Permalink
sync files
Browse files Browse the repository at this point in the history
  • Loading branch information
petrkucerak committed Apr 30, 2021
1 parent 6265bed commit 37844a0
Show file tree
Hide file tree
Showing 28 changed files with 1,952 additions and 1,952 deletions.
194 changes: 97 additions & 97 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,97 +1,97 @@
CC = arm-linux-gnueabihf-gcc
CXX = arm-linux-gnueabihf-g++

CPPFLAGS = -I .
CFLAGS =-g -std=gnu99 -O1 -Wall
CXXFLAGS = -g -std=gnu++11 -O1 -Wall
LDFLAGS = -lrt -lpthread -pthread

SOURCES = apoman.c mzapo_phys.c mzapo_parlcd.c update_peripherals.c text_fb.c map_from_template.c map_to_fb.c draw_shapes.c
SOURCES += terminal_read.c pacman.c ghost.c
SOURCES += font_prop14x16.c font_rom8x16.c
SOURCES += map_circles.c map_conch.c map_star.c
SOURCES += menu_utilities.c
SOURCES += game.c
TARGET_EXE = apoman
TARGET_IP ?= 192.168.202.203
ifeq ($(TARGET_IP),)
ifneq ($(filter debug run,$(MAKECMDGOALS)),)
$(warning The target IP address is not set)
$(warning Run as "TARGET_IP=192.168.202.xxx make run" or modify Makefile)
#TARGET_IP ?= 192.168.202.203
endif
endif
TARGET_DIR ?= /tmp/$(shell whoami)
TARGET_USER ?= root
# for use from Eduroam network use TARGET_IP=localhost and enable next line
#SSH_OPTIONS=-o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -o "Port=2222"
#SSH_OPTIONS=-i /opt/zynq/ssh-connect/mzapo-root-key
# SSH_OPTIONS= -i ~/.ssh/mzapo-root-key -o '[email protected]'
SSH_OPTIONS= -i ~/.ssh/mzapo-root-key -o '[email protected]'

OBJECTS += $(filter %.o,$(SOURCES:%.c=%.o))
OBJECTS += $(filter %.o,$(SOURCES:%.cpp=%.o))

#$(warning OBJECTS=$(OBJECTS))

ifeq ($(filter %.cpp,$(SOURCES)),)
LINKER = $(CC)
LDFLAGS += $(CFLAGS) $(CPPFLAGS)
else
LINKER = $(CXX)
LDFLAGS += $(CXXFLAGS) $(CPPFLAGS)
endif

%.o:%.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<

%.o:%.cpp
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<

all: $(TARGET_EXE)

$(TARGET_EXE): $(OBJECTS)
$(LINKER) $(LDFLAGS) -L. $^ -o $@ $(LDLIBS)

.PHONY : dep all run copy-executable debug

dep: depend

depend: $(SOURCES) *.h
echo '# autogenerated dependencies' > depend
ifneq ($(filter %.c,$(SOURCES)),)
$(CC) $(CFLAGS) $(CPPFLAGS) -w -E -M $(filter %.c,$(SOURCES)) \
>> depend
endif
ifneq ($(filter %.cpp,$(SOURCES)),)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -w -E -M $(filter %.cpp,$(SOURCES)) \
>> depend
endif

clean:
rm -f *.o *.a $(OBJECTS) $(TARGET_EXE) connect.gdb depend

copy-executable: $(TARGET_EXE)
ssh $(SSH_OPTIONS) -t $(TARGET_USER)@$(TARGET_IP) killall gdbserver 1>/dev/null 2>/dev/null || true
ssh $(SSH_OPTIONS) $(TARGET_USER)@$(TARGET_IP) mkdir -p $(TARGET_DIR)
scp $(SSH_OPTIONS) $(TARGET_EXE) $(TARGET_USER)@$(TARGET_IP):$(TARGET_DIR)/$(TARGET_EXE)

run: copy-executable $(TARGET_EXE)
ssh $(SSH_OPTIONS) -t $(TARGET_USER)@$(TARGET_IP) $(TARGET_DIR)/$(TARGET_EXE)

ifneq ($(filter -o ProxyJump=,$(SSH_OPTIONS)),)
SSH_GDB_PORT_FORWARD=-L 12345:127.0.0.1:12345
TARGET_GDB_PORT=127.0.0.1:12345
else
TARGET_GDB_PORT=$(TARGET_IP):12345
endif

debug: copy-executable $(TARGET_EXE)
xterm -e ssh $(SSH_OPTIONS) $(SSH_GDB_PORT_FORWARD) -t $(TARGET_USER)@$(TARGET_IP) gdbserver :12345 $(TARGET_DIR)/$(TARGET_EXE) &
sleep 2
echo >connect.gdb "target extended-remote $(TARGET_GDB_PORT)"
echo >>connect.gdb "b main"
echo >>connect.gdb "c"
ddd --debugger gdb-multiarch -x connect.gdb $(TARGET_EXE)

-include depend
CC = arm-linux-gnueabihf-gcc
CXX = arm-linux-gnueabihf-g++

CPPFLAGS = -I .
CFLAGS =-g -std=gnu99 -O1 -Wall
CXXFLAGS = -g -std=gnu++11 -O1 -Wall
LDFLAGS = -lrt -lpthread -pthread

SOURCES = apoman.c mzapo_phys.c mzapo_parlcd.c update_peripherals.c text_fb.c map_from_template.c map_to_fb.c draw_shapes.c
SOURCES += terminal_read.c pacman.c ghost.c
SOURCES += font_prop14x16.c font_rom8x16.c
SOURCES += map_circles.c map_conch.c map_star.c
SOURCES += menu_utilities.c
SOURCES += game.c
TARGET_EXE = apoman
TARGET_IP ?= 192.168.202.203
ifeq ($(TARGET_IP),)
ifneq ($(filter debug run,$(MAKECMDGOALS)),)
$(warning The target IP address is not set)
$(warning Run as "TARGET_IP=192.168.202.xxx make run" or modify Makefile)
#TARGET_IP ?= 192.168.202.203
endif
endif
TARGET_DIR ?= /tmp/$(shell whoami)
TARGET_USER ?= root
# for use from Eduroam network use TARGET_IP=localhost and enable next line
#SSH_OPTIONS=-o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -o "Port=2222"
#SSH_OPTIONS=-i /opt/zynq/ssh-connect/mzapo-root-key
# SSH_OPTIONS= -i ~/.ssh/mzapo-root-key -o '[email protected]'
SSH_OPTIONS= -i ~/.ssh/mzapo-root-key -o '[email protected]'

OBJECTS += $(filter %.o,$(SOURCES:%.c=%.o))
OBJECTS += $(filter %.o,$(SOURCES:%.cpp=%.o))

#$(warning OBJECTS=$(OBJECTS))

ifeq ($(filter %.cpp,$(SOURCES)),)
LINKER = $(CC)
LDFLAGS += $(CFLAGS) $(CPPFLAGS)
else
LINKER = $(CXX)
LDFLAGS += $(CXXFLAGS) $(CPPFLAGS)
endif

%.o:%.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<

%.o:%.cpp
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<

all: $(TARGET_EXE)

$(TARGET_EXE): $(OBJECTS)
$(LINKER) $(LDFLAGS) -L. $^ -o $@ $(LDLIBS)

.PHONY : dep all run copy-executable debug

dep: depend

depend: $(SOURCES) *.h
echo '# autogenerated dependencies' > depend
ifneq ($(filter %.c,$(SOURCES)),)
$(CC) $(CFLAGS) $(CPPFLAGS) -w -E -M $(filter %.c,$(SOURCES)) \
>> depend
endif
ifneq ($(filter %.cpp,$(SOURCES)),)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -w -E -M $(filter %.cpp,$(SOURCES)) \
>> depend
endif

clean:
rm -f *.o *.a $(OBJECTS) $(TARGET_EXE) connect.gdb depend

copy-executable: $(TARGET_EXE)
ssh $(SSH_OPTIONS) -t $(TARGET_USER)@$(TARGET_IP) killall gdbserver 1>/dev/null 2>/dev/null || true
ssh $(SSH_OPTIONS) $(TARGET_USER)@$(TARGET_IP) mkdir -p $(TARGET_DIR)
scp $(SSH_OPTIONS) $(TARGET_EXE) $(TARGET_USER)@$(TARGET_IP):$(TARGET_DIR)/$(TARGET_EXE)

run: copy-executable $(TARGET_EXE)
ssh $(SSH_OPTIONS) -t $(TARGET_USER)@$(TARGET_IP) $(TARGET_DIR)/$(TARGET_EXE)

ifneq ($(filter -o ProxyJump=,$(SSH_OPTIONS)),)
SSH_GDB_PORT_FORWARD=-L 12345:127.0.0.1:12345
TARGET_GDB_PORT=127.0.0.1:12345
else
TARGET_GDB_PORT=$(TARGET_IP):12345
endif

debug: copy-executable $(TARGET_EXE)
xterm -e ssh $(SSH_OPTIONS) $(SSH_GDB_PORT_FORWARD) -t $(TARGET_USER)@$(TARGET_IP) gdbserver :12345 $(TARGET_DIR)/$(TARGET_EXE) &
sleep 2
echo >connect.gdb "target extended-remote $(TARGET_GDB_PORT)"
echo >>connect.gdb "b main"
echo >>connect.gdb "c"
ddd --debugger gdb-multiarch -x connect.gdb $(TARGET_EXE)

-include depend
70 changes: 35 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
# Semestrální práce na APO

## Introdukce
Cílem této semstrální práce je vytvořit hru Pac-Man, kterou bude možné hrát na desce MzAPO a ovládat pomocí okolních periferií.

Průběh naší práce je možné sledovat v repozitáři: https://gitlab.fel.cvut.cz/kucerp28/apo\_semestralka

## Použité periferie a jejich funkce

- Výstupní řádka led bude při spuštěné hře indikovat počet životů pacmana
- RGB led budou svítit zeleně jasem vypočítaným z počtu snězených kostiček, v případě režimu, kdy jsou duchové zranitelní bude blikat modře.
- Vstupem hry bude terminál v raw režimu, který bude ovládat směr pacmana, respektive navigaci v textovém menu.
- Po sklonční hry přípravek vypíše finální skóre a statistiky na terminál
## Stavy

### Inicializace hry

Po spuštění hry se objeví textové menu, které bude možné ovládat pomocí kláves wsad ze sériového portu. Bude zde možnost vybrat mapu z nabídky, nastavit počet duchů a počet životů, se kterými pacman začíná.

### Průběh hry

Samotná hra se bude ovládat pomocí znaků wsad, stejně jako textové menu. Pacman pobíhá po desce s cílem sníst co nejvíce "penízků" a zároveň se nenechat sežrat duchy. Pokud sní speciální peníz, spustí se na určitou dobu mód, v kterém bude moci požírat duchy, za což získá další body.

V průběhu hry je možno sledovat mód, ve kterém se hra nachází na tvaru duchů a stavu RGB LED. Počet zbývajících životů je indikován na výstupní led řádce jako počet shluků svítících led.

### Závěr hry

Hra může být ukončena 3 způsoby:
- Výhrou Pacmana. V takovém případě se vypíše skóre hry na terminál a otevře se menu nastavení
- Prohrou Pacmana. Ta vyvolá stejný proces jako výhra.
- Přerušením hry pomocí stisknutí klávesy q. To hráče odkáže do spouštěcího menu.

## Kompilace
``` bash
make TARGET_IP=192.168.202.xx run
# Semestrální práce na APO

## Introdukce
Cílem této semstrální práce je vytvořit hru Pac-Man, kterou bude možné hrát na desce MzAPO a ovládat pomocí okolních periferií.

Průběh naší práce je možné sledovat v repozitáři: https://gitlab.fel.cvut.cz/kucerp28/apo\_semestralka

## Použité periferie a jejich funkce

- Výstupní řádka led bude při spuštěné hře indikovat počet životů pacmana
- RGB led budou svítit zeleně jasem vypočítaným z počtu snězených kostiček, v případě režimu, kdy jsou duchové zranitelní bude blikat modře.
- Vstupem hry bude terminál v raw režimu, který bude ovládat směr pacmana, respektive navigaci v textovém menu.
- Po sklonční hry přípravek vypíše finální skóre a statistiky na terminál
## Stavy

### Inicializace hry

Po spuštění hry se objeví textové menu, které bude možné ovládat pomocí kláves wsad ze sériového portu. Bude zde možnost vybrat mapu z nabídky, nastavit počet duchů a počet životů, se kterými pacman začíná.

### Průběh hry

Samotná hra se bude ovládat pomocí znaků wsad, stejně jako textové menu. Pacman pobíhá po desce s cílem sníst co nejvíce "penízků" a zároveň se nenechat sežrat duchy. Pokud sní speciální peníz, spustí se na určitou dobu mód, v kterém bude moci požírat duchy, za což získá další body.

V průběhu hry je možno sledovat mód, ve kterém se hra nachází na tvaru duchů a stavu RGB LED. Počet zbývajících životů je indikován na výstupní led řádce jako počet shluků svítících led.

### Závěr hry

Hra může být ukončena 3 způsoby:
- Výhrou Pacmana. V takovém případě se vypíše skóre hry na terminál a otevře se menu nastavení
- Prohrou Pacmana. Ta vyvolá stejný proces jako výhra.
- Přerušením hry pomocí stisknutí klávesy q. To hráče odkáže do spouštěcího menu.

## Kompilace
``` bash
make TARGET_IP=192.168.202.xx run
```
Loading

0 comments on commit 37844a0

Please sign in to comment.