2023-05-12 Meeting 2

https://github.com/XP20/coursefin

 

Code review

 

image-20230512152340802

image-20230512152444406

image-20230512152836686

image-20230512152934482

 

image-20230512153037069

image-20230512153115790

 

image-20230512153251771

 


image-20230512153353005

 

image-20230512153558557

 

image-20230512153734057

image-20230512154323314

image-20230512154533276

 

 


 

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.

 


 

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()