2023-03-09 Meeting 7

https://github.com/ASomniphobeHere/OOP-homework

 

Design Patterns - Notes

image-20230309164340331

image-20230309164601322

image-20230309164837466

 

 


 

image-20230309165530616

image-20230309165713148

 

 

image-20230309170119685

image-20230309170207872

image-20230309170350111

image-20230309170445939

 

https://en.wikipedia.org/wiki/Hungarian_notation


2. Design Patterns - Model View Controller, PyGame

 

2.1. Video / Materiāli

Video: https://youtu.be/QHElpj-4qps

Jamboard: https://jamboard.google.com/d/1MwTUFvunljjBHsx5ygtcNn16kL_m7n1ywtTJ0KSWSpo/edit?usp=sharing

Template: http://share.yellowrobot.xyz/quick/2022-9-16-E2B15348-778D-40E4-9F03-8867A334E18A.zip

Materials: https://realpython.com/pygame-a-primer/

https://www.tutorialspoint.com/python_design_patterns/python_design_patterns_model_view_controller.htm


 

image-20220910080553256


 

Not discovered area - Clouds.png

Imperius ground

 


2.2. Uzzīmēt pamata karti izmantojot MVC principus

  1. Aizpildīt controller kodā game map_tiles datus ar 100x100 kartes saturu (piem. nejauši vai Ground)

  2. Uzzīmēt kartes saturu

  3. Extra task - ar bultiņām pārvietoties pa, karti

Rezultātam vēlams izskatīties šādi: http://share.yellowrobot.xyz/upic/8341238e42a2359e618e95bd24014601_1663360368.png

 

 


 

 

2.3. Mājasdarbs - Implementēt Adapter Design pattern

 

  1. Pēc shēmas implementēt controller/ControllerActor.py controller/ControllerActorWarrior.py un ControllerActorRider.py . update funkcija paredzēta animācijām starp stāvokļiem. execute_turn funkcija paredzēta gājiena loģikas veikšanai. http://share.yellowrobot.xyz/quick/2022-9-16-D086416A-97A7-4811-B1C7-8B86AEDC2C3A.png

  2. Izvietot abas vienības kartē, uzspiežot SPACE pogu abām vienībām veikt nejauši izvēlētu gājienu, pārvietojot vienības kartē (nedrīkst uziet virsū nestaigājamām MapTiles). Rider jeb Horseman var iet 2 lauciņus, Warrior vienu lauciņu.

  3. Papildus punkti - Implementēt, ka Warrior vienību var kontrolēt ar peli un pārvietojums ir animēta kustība nevis vienība pārlec uz jauno pozīciju.

Vēlamais rezultāts: http://share.yellowrobot.xyz/upic/4c78dc227b824d4fc6518f7d2a836f52_1663360922.png

 

game
uses
creates
creates
«interface»
ControllerActor
update(delta_time)
execute_turn()
ControllerActorWarrior
-actor: Actor
__init__(actor)
update(delta_time)
execute_turn()
ControllerActorRider
-actor: Actor
__init__(actor)
update(delta_time)
execute_turn()
Actor
Game
ControllerGame
- actor_controllers: List[ControllerActor]
new_game()
update(game: Game, delta_time)
execute_turn(game: Game)
WindowMain
-game: Game
update(delta_time)
execute_turn()

FullStack VeA 2022-Q4 - 2. Express, File System

 

2.1. Video / Materials

Youtube live: https://youtu.be/pXNF29PJR0U

Jamboard: https://jamboard.google.com/d/1C1f2lW-3tBSxNWBszbe_ydjaG6y_D9wK0wJUdx1P8lA/edit?usp=sharing

 

 

2.2. Implementēt Express API servisu

Izveidot Express JSON REST API, ar sekojošam funkcijām

  1. Izmantot NodeJS, TypeScript un Express

  2. Izveidot funkciju, kur ar POST palīdzību būtu iespējams augšupielādēt datu kopas failu (http://share.yellowrobot.xyz/quick/2019-9-29-3598D5B3-4ED8-462F-9B8C-321877B6CA2B.json) , tas ir https://www.kaggle.com/datasets/rtatman/iris-dataset-json-version?resource=download

    Kā papildus parametru vaur URL vai caur POST body padot informāciju, kuras sugas statistiku vēlamies ievākt. Piem. {species: “setosa”}

  3. Kā atbildi saņemt sekojošu interface (ja request daļā izmantots POST body, tad tur arī nepieciešams interface). Atkarībā no sugas aprēķināt vidējās, minimālās un maksimālās vērtības katram parametram datu kopā un atgriezt interfeisu kā JSON. {

    sepalLengthAvg: number, sepalWidthAvg:number, petalLengthAvg: number, petalWidthAvg: number,

    sepalLengthMin: number, sepalWidthMin:number, petalLengthMin: number, petalWidthMin: number,

    sepalLengthMax: number, sepalWidthMax:number, petalLengthMax: number, petalWidthMax: number,

    isSuccess: boolean

    }

  4. Izveidot caching (jeb optimizāciju, lai aprēķins nebūtu jāveic vēlreiz), saglabājot rezultātus uz cietā diska un, ja tie ir aprēķināti, tad atgriezt jau gatavus rezultātus

  5. Iesniegt kodu kā zip (bez node_modules) un screenshot ar rezultātiem testējot ar HTTP Client Webstorm vai Postman

 

Sagatave: http://share.yellowrobot.xyz/quick/2022-11-7-87F1C061-2FCE-4638-B66B-04C9331784C1.zip

Pirms palaišanas sagataves direktorijā palaist “npm install”, lai atjaunotu node_modules no package.json faila.