Jāmāk uzrakstīt, lai strādā uz 3.8
ControllerAlien, kurš satur self.alien: Alien, kas ir data structure pointer. un ir funkcija ControllerAlien.update(dt), ControllerAlien.isCollision(rocket), ControllerAlien izmantojot observer signalizē pārējiem ControllerAlien, ka ir jāmaina virziens, viens otram. Event listeneri pievienoti un remove no ControllerAlien nevis ControllerGame
Risinājums problēmai, ka jāmaina virzienu pēc frame update:
Detect border
store state, so that in next frame fire event (alien object)
in next frame fire observer
Vector2D vietā izmantot np.array
xxxxxxxxxx
41posA = np.array([0.2, 0.3])
2posB = np.array([0.2, 0.3])
3posC = posA + posB / posA
4
Serializāciju pārtaisīt:
JSON
Binary
xxxxxxxxxx
121import struct
2
3# Open a file for binary writing
4with open('data.bin', 'wb') as f:
5 # Pack an integer and a float into a bytes object
6 data = struct.pack('i', 42)
7 # Write the bytes object to the file
8 f.write(data)
9 data = struct.pack('f', 42.44)
10 # Write the bytes object to the file
11 f.write(data)
12 f.seek(bytePos)
Pabeigt design patterns uzdevumus + next uzdevumi
Video: https://youtu.be/gsayAyZn3KQ
Jamboard: https://jamboard.google.com/d/1zMvA0nOLICfPETb2sHSKFvFub5xWYF0p52sSHcr9Gt8/edit?usp=sharing
Materials:
Implementēt Memento un Command pattern, balstoties uz lekcijas instrukcijām.
Sagatave: http://share.yellowrobot.xyz/quick/2022-10-6-EA2AF38D-B3C7-4669-A7F1-65C990FEB68B.zip
Implementēt vēl vienu piemēru Memento un Command patterns:
Implementēt memento izmantojot paša veidotu serializācijas metodi binary formātā ar struct.pack (nedrīkst izmantot pickle)
Implementēt Command pattern funkcijai, lai izveidotu jaunus actors un pēc tam ar "Undo" jāvar atcelt actor izveidošanu
Implementēt "Redo" funkciju, lai atceltās darbības var atjaunot
Youtube Live: https://youtu.be/Fq3FoeTvzqw
Jamboard: https://jamboard.google.com/d/1eqowCbAQHCqKKjB678YB_6vKKEBCyWpTsWl2yO4eCyE/edit?usp=sharing
Balstoties uz video instrukcijām implementēt Decorator un Closure patterns
Sagatave: http://share.yellowrobot.xyz/quick/2022-10-14-E03760CF-4197-4F6C-A865-1AFD8CF24818.zip
Pievienot papildus Decorator un Closure patterns:
Izveidot dažādas Decorator klases, kuras pamaina dažādas īpašības ComponentButton - pamaina krāsu, samazina, palielina fontu utt.
Izveidot Closure funkciju jeb python decorator ar kuru var noteikt cik ātri funkcija izpildās - noderīga, lai uzlabotu ātrdarbību - log ierakstos jāparādas funkcijas nosaukumam un tās izpildes ātrumam sekundēs