2020-11-17 13:35:49 +01:00
|
|
|
# Project_Steam_Tracker
|
|
|
|
|
2020-11-30 20:14:09 +01:00
|
|
|
Het doel van dit project is om een concept te ontwikkelen waarbij je een grafishe weergrave wat inzicht geeft op de game
|
|
|
|
activiteiten van je vrienden op Steam. Een raspberypi wordt ook gebruikt om hardwarematig lapjes en sensoren aan te sturen.
|
|
|
|
|
|
|
|
|
|
|
|
## Casus
|
|
|
|
Steam wil haar klanten beter bedienen door meer grafische weergaves te maken van gaming gedrag naar verschillende klantsegmenten.
|
|
|
|
Hiervoor heeft ze een consultancybedrijf ingehuurd.
|
|
|
|
De hoofdopdracht luidt: maak een grafische weergave die inzicht geeft in het gaming gedrag van jouw vrienden op het platform Steam,
|
|
|
|
ondersteund door een netwerk waarbij gebruik gemaakt wordt van een RaspberryPi.
|
|
|
|
|
|
|
|
Voorbeeldvragen die Steam beantwoord wil zien voor haar klanten:
|
|
|
|
|
|
|
|
Welke games spelen mijn vrienden?
|
|
|
|
Welke spellen worden het meest gespeeld?
|
|
|
|
Wanneer zijn jouw vrienden online?
|
|
|
|
Wanneer heb je gepland om te gaan spelen?
|
|
|
|
Welke aanbevelingen kunnen er gemaakt worden om te spelen?
|
|
|
|
|
|
|
|
## Uitvoeren applicatie
|
|
|
|
Deze applicatie maakt gebruik van de volgende python libraries, zorg ervoor dat deze zijn geinstalleerd.
|
|
|
|
|
2021-01-07 18:58:42 +01:00
|
|
|
- [Flask](https://github.com/pallets/flask/)
|
|
|
|
- [steam](https://github.com/ValvePython/steam)
|
|
|
|
- gevent
|
|
|
|
- eventemitter
|
2021-01-11 14:43:49 +01:00
|
|
|
- [matplotlib](https://pypi.org/project/matplotlib/)
|
2021-01-12 15:31:53 +01:00
|
|
|
|
|
|
|
Om de dependencies te installeren voer het onderste commando uit.
|
|
|
|
|
|
|
|
pip install flask steam steam[client] matplotlib
|
2020-11-30 20:14:09 +01:00
|
|
|
|
2021-01-12 15:31:53 +01:00
|
|
|
De applicatie is simpel uit te voeren door de python script uit te voeren. En via de browser naar de gegeven url te gaan.
|
2020-11-30 20:14:09 +01:00
|
|
|
|
2021-01-07 18:58:42 +01:00
|
|
|
python run.py
|
2020-11-30 20:14:09 +01:00
|
|
|
|
2021-01-02 13:21:04 +01:00
|
|
|
## Data formaat geheugen tabel
|
|
|
|
Om het sorteren makkelijker te maken gaan we de json in een tuple/list opslaan in het geheugen. Het formaat is een tabel
|
|
|
|
achtige structuur. Als voorbeeld de eerste json entry in een tuple.
|
|
|
|
|
|
|
|
{
|
|
|
|
"appid":10,
|
|
|
|
"name":"Counter-Strike",
|
|
|
|
"release_date":"2000-11-01",
|
|
|
|
"english":1,
|
|
|
|
"developer":"Valve",
|
|
|
|
"publisher":"Valve",
|
|
|
|
"platforms":"windows;mac;linux",
|
|
|
|
"required_age":0,
|
|
|
|
"categories":"Multi-player;Online Multi-Player;Local Multi-Player;Valve Anti-Cheat enabled",
|
|
|
|
"genres":"Action",
|
|
|
|
"steamspy_tags":"Action;FPS;Multiplayer",
|
|
|
|
"achievements":0,
|
|
|
|
"positive_ratings":124534,
|
|
|
|
"negative_ratings":3339,
|
|
|
|
"average_playtime":17612,
|
|
|
|
"median_playtime":317,
|
|
|
|
"owners":"10000000-20000000",
|
|
|
|
"price":7.19
|
|
|
|
}
|
|
|
|
|
|
|
|
(10, "Counter-Strike", "2000-11-01", 1, "Valve", "windows;mac;linux", 0,
|
|
|
|
"Multi-player;Online Multi-Player;Local Multi-Player;Valve Anti-Cheat enabled", "Action", "Action;FPS;Multiplayer",
|
|
|
|
0, 124534, 3339, 17612, 317, "10000000-20000000", 7.19)
|
|
|
|
|
|
|
|
En om meerdere entries op te slaan maken we het genest zoals alsvolgd.
|
|
|
|
|
|
|
|
(
|
|
|
|
(10, "Counter-Strike", "2000-11-01", 1, "Valve", "windows;mac;linux", 0, "Multi-player;Online Multi-Player;Local Multi-Player;Valve Anti-Cheat enabled", "Action", "Action;FPS;Multiplayer", 0, 124534, 3339, 17612, 317, "10000000-20000000", 7.19),
|
|
|
|
(20, "Team Fortress Classic", "1999-04-01", 1, "Valve", "Valve", "windows;mac;linux", 0, "Multi-player;Online Multi-Player;Local Multi-Player;Valve Anti-Cheat enabled", "Action", "Action;FPS;Multiplayer", 0, 3318, 633, 277, 62, "5000000-10000000", 3.99)
|
2021-01-07 13:11:34 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
## Uitleg functies
|
|
|
|
### sorting.py
|
|
|
|
#### ```nest-qsort(tpl, colnum. reverse=False)```
|
|
|
|
Deze recursieve functie kan de bovenstaande geneste tuple formaat sorteren. Als eerste argument geef je de geneste tuple
|
|
|
|
, tweede argument is de kolom nummer vanaf 0 waarop je wilt sorteren. En de derde argument is een bool, als true dan sorteerd de
|
|
|
|
functie van hoog naar laag.
|
|
|
|
#### ```qsort(tpl, reverse=False)```
|
|
|
|
Deze recursieve functie is de standaard sorteer functie die wij gaan gebruiken. Als eerste argument neemt de functie een
|
|
|
|
lijst of tuple met waardes, deze mogen ints of strings zijn. De tweede argument is een bool, als true dan sorteerd de
|
|
|
|
functie van hoog naar laag.
|