finished asserts

This commit is contained in:
Faraphel 2023-03-11 12:53:01 +01:00
parent ebf573ca21
commit dff4f4c6a1
13 changed files with 1084 additions and 28 deletions

View file

@ -3,14 +3,14 @@ A faire :
1. Principal : 1. Principal :
- Documenter (Docstring, README, ...) - Documenter (Docstring, README, ...)
- test avec "assert" (cahier des charges)
- mode d'emploi (video + pdf) expliquant le fonctionnement - mode d'emploi (video + pdf) expliquant le fonctionnement
2. Bonus : 2. Bonus :
- sauvegarder les paramètres dans un fichier - sauvegarder les paramètres dans un fichier
3. Bug : 3. Bug :
- / - Impossible de changer le volume sur linux
- Cliquer trop vite coupe le son
4. Vérification : 4. Vérification :
- Tester sur Linux - Tester sur Linux

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,410 @@
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="C" producer="main_bin" version="7.13.0" root="./">
<profile frame_rate_num="25" sample_aspect_num="1" display_aspect_den="9" colorspace="709" progressive="1" description="HD 1080p 25 fps" display_aspect_num="16" frame_rate_den="1" width="1920" height="1080" sample_aspect_den="1"/>
<producer id="producer1" in="00:00:00.000" out="00:00:04.960">
<property name="length">125</property>
<property name="eof">pause</property>
<property name="resource"/>
<property name="progressive">1</property>
<property name="aspect_ratio">1</property>
<property name="seekable">1</property>
<property name="mlt_service">kdenlivetitle</property>
<property name="kdenlive:duration">125</property>
<property name="kdenlive:clipname">Victoire</property>
<property name="xmldata">&lt;kdenlivetitle duration="125" LC_NUMERIC="C" width="1920" height="1080" out="124">
&lt;item type="QGraphicsTextItem" z-index="0">
&lt;position x="598" y="434">
&lt;transform>1,0,0,0,1,0,0,0,1&lt;/transform>
&lt;/position>
&lt;content line-spacing="0" shadow="1;#64000000;10;5;6" font-underline="0" box-height="245" font-outline-color="0,0,0,255" font="Century Gothic" letter-spacing="0" font-pixel-size="200" font-italic="0" typewriter="0;1;1;0;0" alignment="4" font-weight="75" font-outline="3" box-width="729" font-color="255,255,255,255">Défaite&lt;/content>
&lt;/item>
&lt;startviewport rect="0,0,1920,1080"/>
&lt;endviewport rect="0,0,1920,1080"/>
&lt;background color="0,0,0,0"/>
&lt;/kdenlivetitle>
</property>
<property name="kdenlive:folderid">-1</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">3</property>
<property name="kdenlive:file_hash">5352d10ffc6fee2ef8bfc95db4eceedb</property>
<property name="force_reload">0</property>
<property name="meta.media.width">1920</property>
<property name="meta.media.height">1080</property>
</producer>
<producer id="producer0" in="00:00:00.000" out="00:00:04.960">
<property name="length">00:00:05.000</property>
<property name="eof">pause</property>
<property name="resource">background.png</property>
<property name="ttl">25</property>
<property name="aspect_ratio">1</property>
<property name="progressive">1</property>
<property name="seekable">1</property>
<property name="format">2</property>
<property name="meta.media.width">1920</property>
<property name="meta.media.height">1080</property>
<property name="mlt_service">qimage</property>
<property name="kdenlive:clipname"/>
<property name="kdenlive:duration">00:00:05.000</property>
<property name="kdenlive:folderid">-1</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">4</property>
<property name="kdenlive:file_size">10670</property>
<property name="kdenlive:file_hash">7fbb59f3d68679fdd9322cd9f675b781</property>
</producer>
<producer id="producer2" in="00:00:00.000" out="00:00:04.960">
<property name="length">00:00:05.000</property>
<property name="eof">pause</property>
<property name="resource">chevron.png</property>
<property name="ttl">25</property>
<property name="aspect_ratio">1</property>
<property name="progressive">1</property>
<property name="seekable">1</property>
<property name="format">2</property>
<property name="meta.media.width">372</property>
<property name="meta.media.height">201</property>
<property name="mlt_service">qimage</property>
<property name="kdenlive:clipname"/>
<property name="kdenlive:duration">00:00:05.000</property>
<property name="kdenlive:proxy">-</property>
<property name="kdenlive:originalurl">chevron.png</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">2</property>
<property name="kdenlive:file_size">6589</property>
<property name="kdenlive:file_hash">f85f1e5d5d8771dd5ae13a4f300a3160</property>
<property name="kdenlive:folderid">-1</property>
</producer>
<playlist id="main_bin">
<property name="kdenlive:docproperties.activeTrack">3</property>
<property name="kdenlive:docproperties.audioChannels">2</property>
<property name="kdenlive:docproperties.audioTarget">-1</property>
<property name="kdenlive:docproperties.compositing">1</property>
<property name="kdenlive:docproperties.dirtypreviewchunks">0-75</property>
<property name="kdenlive:docproperties.disablepreview">0</property>
<property name="kdenlive:docproperties.documentid">1678437287130</property>
<property name="kdenlive:docproperties.enableTimelineZone">1</property>
<property name="kdenlive:docproperties.enableexternalproxy">0</property>
<property name="kdenlive:docproperties.enableproxy">0</property>
<property name="kdenlive:docproperties.externalproxyparams"/>
<property name="kdenlive:docproperties.generateimageproxy">0</property>
<property name="kdenlive:docproperties.generateproxy">0</property>
<property name="kdenlive:docproperties.groups">[
]
</property>
<property name="kdenlive:docproperties.guidesCategories">[
{
"color": "#000000",
"comment": "Catégorie 1 ",
"index": 0
},
{
"color": "#000000",
"comment": "Catégorie 2 ",
"index": 1
},
{
"color": "#000000",
"comment": "Catégorie 3 ",
"index": 2
},
{
"color": "#000000",
"comment": "Catégorie 4 ",
"index": 3
},
{
"color": "#000000",
"comment": "Catégorie 5 ",
"index": 4
},
{
"color": "#000000",
"comment": "Catégorie 6 ",
"index": 5
},
{
"color": "#000000",
"comment": "Catégorie 7 ",
"index": 6
},
{
"color": "#000000",
"comment": "Catégorie 8 ",
"index": 7
},
{
"color": "#000000",
"comment": "Catégorie 9 ",
"index": 8
}
]
</property>
<property name="kdenlive:docproperties.kdenliveversion">22.12.0</property>
<property name="kdenlive:docproperties.position">62</property>
<property name="kdenlive:docproperties.previewchunks"/>
<property name="kdenlive:docproperties.previewextension">mkv</property>
<property name="kdenlive:docproperties.previewparameters">vcodec=h264_nvenc g=1 bf=0 preset=fast qmin=10 qmax=30</property>
<property name="kdenlive:docproperties.profile">atsc_1080p_25</property>
<property name="kdenlive:docproperties.proxyextension"/>
<property name="kdenlive:docproperties.proxyimageminsize">2000</property>
<property name="kdenlive:docproperties.proxyimagesize">800</property>
<property name="kdenlive:docproperties.proxyminsize">1000</property>
<property name="kdenlive:docproperties.proxyparams"/>
<property name="kdenlive:docproperties.proxyresize">640</property>
<property name="kdenlive:docproperties.rendercategory">Video with Alpha</property>
<property name="kdenlive:docproperties.rendercustomquality">25</property>
<property name="kdenlive:docproperties.renderendguide">-1</property>
<property name="kdenlive:docproperties.renderexportaudio">0</property>
<property name="kdenlive:docproperties.rendermode">0</property>
<property name="kdenlive:docproperties.renderplay">0</property>
<property name="kdenlive:docproperties.renderpreview">0</property>
<property name="kdenlive:docproperties.renderprofile">Alpha VP9</property>
<property name="kdenlive:docproperties.renderratio">1</property>
<property name="kdenlive:docproperties.renderrescale">0</property>
<property name="kdenlive:docproperties.renderrescaleheight">540</property>
<property name="kdenlive:docproperties.renderrescalewidth">960</property>
<property name="kdenlive:docproperties.renderspeed">1</property>
<property name="kdenlive:docproperties.renderstartguide">-1</property>
<property name="kdenlive:docproperties.rendertcoverlay">0</property>
<property name="kdenlive:docproperties.rendertctype">-1</property>
<property name="kdenlive:docproperties.rendertwopass">0</property>
<property name="kdenlive:docproperties.renderurl">defeat.webm</property>
<property name="kdenlive:docproperties.scrollPos">0</property>
<property name="kdenlive:docproperties.seekOffset">30000</property>
<property name="kdenlive:docproperties.version">1.04</property>
<property name="kdenlive:docproperties.verticalzoom">1</property>
<property name="kdenlive:docproperties.videoTarget">0</property>
<property name="kdenlive:docproperties.zonein">0</property>
<property name="kdenlive:docproperties.zoneout">105</property>
<property name="kdenlive:docproperties.zoom">4</property>
<property name="kdenlive:expandedFolders"/>
<property name="kdenlive:documentnotes"/>
<property name="xml_retain">1</property>
<entry producer="producer1" in="00:00:00.000" out="00:00:04.960"/>
<entry producer="producer0" in="00:00:00.000" out="00:00:04.960"/>
<entry producer="producer2" in="00:00:00.000" out="00:00:04.960"/>
</playlist>
<producer id="black_track" in="00:00:00.000" out="00:20:04.200">
<property name="length">2147483647</property>
<property name="eof">continue</property>
<property name="resource">black</property>
<property name="aspect_ratio">1</property>
<property name="mlt_service">color</property>
<property name="mlt_image_format">rgba</property>
<property name="set.test_audio">0</property>
</producer>
<playlist id="playlist0">
<entry producer="producer0" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:id">4</property>
<filter id="filter0">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=-960 -540 3840 2160 0.000000;00:00:00.760=-960 -540 3840 2160 0.350000;00:00:03.000=-960 -540 3840 2160 0.350000;00:00:04.160=-960 -540 3840 2160 0.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.760=0;00:00:03.000=0;00:00:04.160=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist1"/>
<tractor id="tractor0" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<track producer="playlist0"/>
<track producer="playlist1"/>
</tractor>
<playlist id="playlist2">
<entry producer="producer2" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:id">2</property>
<property name="kdenlive:activeeffect">0</property>
<filter id="filter1">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=672 -300 576 324 1.000000;00:00:00.280=672 600 576 324 1.000000;00:00:02.000=672 600 576 324 1.000000;00:00:02.240=672 1540 576 324 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:02.000=0;00:00:02.240=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist3"/>
<tractor id="tractor1" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist2"/>
<track hide="audio" producer="playlist3"/>
</tractor>
<playlist id="playlist4">
<blank length="00:00:00.280"/>
<entry producer="producer2" in="00:00:00.000" out="00:00:03.880">
<property name="kdenlive:id">2</property>
<property name="kdenlive:activeeffect">0</property>
<filter id="filter2">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=672 -820 576 324 1.000000;00:00:00.280=672 380 576 324 1.000000;00:00:01.960=672 380 576 324 1.000000;00:00:02.200=672 1320 576 324 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:01.960=0;00:00:02.200=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist5"/>
<tractor id="tractor2" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist4"/>
<track hide="audio" producer="playlist5"/>
</tractor>
<playlist id="playlist6">
<blank length="00:00:00.560"/>
<entry producer="producer2" in="00:00:00.000" out="00:00:03.600">
<property name="kdenlive:id">2</property>
<property name="kdenlive:activeeffect">0</property>
<filter id="filter3">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=672 -1040 576 324 1.000000;00:00:00.280=672 160 576 324 1.000000;00:00:01.920=672 160 576 324 1.000000;00:00:02.160=672 1100 576 323 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:01.920=0;00:00:02.160=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist7"/>
<tractor id="tractor3" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist6"/>
<track hide="audio" producer="playlist7"/>
</tractor>
<playlist id="playlist8">
<blank length="00:00:00.800"/>
<entry producer="producer1" in="00:00:00.000" out="00:00:03.360">
<property name="kdenlive:id">3</property>
<filter id="filter6">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=950 535 19 10 1.000000;00:00:00.200=-480 -270 2880 1620 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.200=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
<filter id="filter7" in="00:00:02.360" out="00:00:03.360">
<property name="start">1</property>
<property name="level">1</property>
<property name="mlt_service">brightness</property>
<property name="kdenlive_id">fade_to_black</property>
<property name="alpha">00:00:00.000=1;00:00:01.000=0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist9"/>
<tractor id="tractor4" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist8"/>
<track hide="audio" producer="playlist9"/>
</tractor>
<playlist id="timeline_preview"/>
<tractor id="tractor5" in="00:00:00.000" out="00:20:04.200">
<track producer="black_track"/>
<track producer="tractor0"/>
<track producer="tractor1"/>
<track producer="tractor2"/>
<track producer="tractor3"/>
<track producer="tractor4"/>
<track hide="both" producer="timeline_preview"/>
<transition id="transition0">
<property name="a_track">0</property>
<property name="b_track">1</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="internal_added">237</property>
<property name="always_active">1</property>
</transition>
<transition id="transition1">
<property name="a_track">0</property>
<property name="b_track">2</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="internal_added">237</property>
<property name="always_active">1</property>
</transition>
<transition id="transition2">
<property name="a_track">0</property>
<property name="b_track">3</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="internal_added">237</property>
<property name="always_active">1</property>
</transition>
<transition id="transition3">
<property name="a_track">0</property>
<property name="b_track">4</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="internal_added">237</property>
<property name="always_active">1</property>
</transition>
<transition id="transition4">
<property name="a_track">0</property>
<property name="b_track">5</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="internal_added">237</property>
<property name="always_active">1</property>
</transition>
<filter id="filter8">
<property name="window">75</property>
<property name="max_gain">20dB</property>
<property name="mlt_service">volume</property>
<property name="internal_added">237</property>
<property name="disable">1</property>
</filter>
<filter id="filter9">
<property name="channel">-1</property>
<property name="mlt_service">panner</property>
<property name="internal_added">237</property>
<property name="start">0.5</property>
<property name="disable">1</property>
</filter>
</tractor>
</mlt>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,453 @@
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="C" producer="main_bin" version="7.13.0" root="./">
<profile frame_rate_num="25" sample_aspect_num="1" display_aspect_den="9" colorspace="709" progressive="1" description="HD 1080p 25 fps" display_aspect_num="16" frame_rate_den="1" width="1920" height="1080" sample_aspect_den="1"/>
<producer id="producer0" in="00:00:00.000" out="00:00:04.960">
<property name="length">00:00:05.000</property>
<property name="eof">pause</property>
<property name="resource">line.png</property>
<property name="ttl">25</property>
<property name="aspect_ratio">1</property>
<property name="progressive">1</property>
<property name="seekable">1</property>
<property name="format">2</property>
<property name="meta.media.width">328</property>
<property name="meta.media.height">1080</property>
<property name="mlt_service">qimage</property>
<property name="kdenlive:clipname"/>
<property name="kdenlive:duration">00:00:05.000</property>
<property name="kdenlive:folderid">-1</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">2</property>
<property name="kdenlive:file_size">13558</property>
<property name="kdenlive:file_hash">3a4f54a7b392eb93d62359265573c322</property>
</producer>
<producer id="producer1" in="00:00:00.000" out="00:00:04.960">
<property name="length">125</property>
<property name="eof">pause</property>
<property name="resource"/>
<property name="progressive">1</property>
<property name="aspect_ratio">1</property>
<property name="seekable">1</property>
<property name="mlt_service">kdenlivetitle</property>
<property name="kdenlive:duration">125</property>
<property name="kdenlive:clipname">Victoire</property>
<property name="xmldata">&lt;kdenlivetitle duration="125" LC_NUMERIC="C" width="1920" height="1080" out="124">&#xd;&#xd;&#xd;
&lt;item type="QGraphicsTextItem" z-index="0">&#xd;&#xd;&#xd;
&lt;position x="587" y="434">&#xd;&#xd;&#xd;
&lt;transform>1,0,0,0,1,0,0,0,1&lt;/transform>&#xd;&#xd;&#xd;
&lt;/position>&#xd;&#xd;&#xd;
&lt;content line-spacing="0" shadow="1;#64000000;10;5;6" font-underline="0" box-height="245" font-outline-color="0,0,0,255" font="Century Gothic" letter-spacing="0" font-pixel-size="200" font-italic="0" typewriter="0;1;1;0;0" alignment="4" font-weight="75" font-outline="3" box-width="747" font-color="255,255,255,255">Victoire&lt;/content>&#xd;&#xd;&#xd;
&lt;/item>&#xd;&#xd;&#xd;
&lt;startviewport rect="0,0,1920,1080"/>&#xd;&#xd;&#xd;
&lt;endviewport rect="0,0,1920,1080"/>&#xd;&#xd;&#xd;
&lt;background color="0,0,0,0"/>&#xd;&#xd;&#xd;
&lt;/kdenlivetitle>&#xd;&#xd;&#xd;
</property>
<property name="kdenlive:folderid">-1</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">3</property>
<property name="kdenlive:file_hash">5352d10ffc6fee2ef8bfc95db4eceedb</property>
<property name="force_reload">0</property>
<property name="meta.media.width">1920</property>
<property name="meta.media.height">1080</property>
</producer>
<producer id="producer2" in="00:00:00.000" out="00:00:04.960">
<property name="length">00:00:05.000</property>
<property name="eof">pause</property>
<property name="resource">background.png</property>
<property name="ttl">25</property>
<property name="aspect_ratio">1</property>
<property name="progressive">1</property>
<property name="seekable">1</property>
<property name="format">2</property>
<property name="meta.media.width">1920</property>
<property name="meta.media.height">1080</property>
<property name="mlt_service">qimage</property>
<property name="kdenlive:clipname"/>
<property name="kdenlive:duration">00:00:05.000</property>
<property name="kdenlive:folderid">-1</property>
<property name="kdenlive:clip_type">2</property>
<property name="kdenlive:id">4</property>
<property name="kdenlive:file_size">10670</property>
<property name="kdenlive:file_hash">7fbb59f3d68679fdd9322cd9f675b781</property>
</producer>
<playlist id="main_bin">
<property name="kdenlive:docproperties.activeTrack">3</property>
<property name="kdenlive:docproperties.audioChannels">2</property>
<property name="kdenlive:docproperties.audioTarget">-1</property>
<property name="kdenlive:docproperties.compositing">1</property>
<property name="kdenlive:docproperties.dirtypreviewchunks">0-75</property>
<property name="kdenlive:docproperties.disablepreview">0</property>
<property name="kdenlive:docproperties.documentid">1678437287130</property>
<property name="kdenlive:docproperties.enableTimelineZone">1</property>
<property name="kdenlive:docproperties.enableexternalproxy">0</property>
<property name="kdenlive:docproperties.enableproxy">0</property>
<property name="kdenlive:docproperties.externalproxyparams"/>
<property name="kdenlive:docproperties.generateimageproxy">0</property>
<property name="kdenlive:docproperties.generateproxy">0</property>
<property name="kdenlive:docproperties.groups">[
{
"children": [
{
"data": "3:10",
"leaf": "clip",
"type": "Leaf"
},
{
"data": "2:5",
"leaf": "clip",
"type": "Leaf"
},
{
"data": "1:0",
"leaf": "clip",
"type": "Leaf"
}
],
"type": "Normal"
}
]
</property>
<property name="kdenlive:docproperties.guidesCategories">[
{
"color": "#000000",
"comment": "Catégorie 1 ",
"index": 0
},
{
"color": "#000000",
"comment": "Catégorie 2 ",
"index": 1
},
{
"color": "#000000",
"comment": "Catégorie 3 ",
"index": 2
},
{
"color": "#000000",
"comment": "Catégorie 4 ",
"index": 3
},
{
"color": "#000000",
"comment": "Catégorie 5 ",
"index": 4
},
{
"color": "#000000",
"comment": "Catégorie 6 ",
"index": 5
},
{
"color": "#000000",
"comment": "Catégorie 7 ",
"index": 6
},
{
"color": "#000000",
"comment": "Catégorie 8 ",
"index": 7
},
{
"color": "#000000",
"comment": "Catégorie 9 ",
"index": 8
}
]
</property>
<property name="kdenlive:docproperties.kdenliveversion">22.12.0</property>
<property name="kdenlive:docproperties.position">0</property>
<property name="kdenlive:docproperties.previewchunks"/>
<property name="kdenlive:docproperties.previewextension">mkv</property>
<property name="kdenlive:docproperties.previewparameters">vcodec=h264_nvenc g=1 bf=0 preset=fast qmin=10 qmax=30</property>
<property name="kdenlive:docproperties.profile">atsc_1080p_25</property>
<property name="kdenlive:docproperties.proxyextension"/>
<property name="kdenlive:docproperties.proxyimageminsize">2000</property>
<property name="kdenlive:docproperties.proxyimagesize">800</property>
<property name="kdenlive:docproperties.proxyminsize">1000</property>
<property name="kdenlive:docproperties.proxyparams"/>
<property name="kdenlive:docproperties.proxyresize">640</property>
<property name="kdenlive:docproperties.rendercategory">Video with Alpha</property>
<property name="kdenlive:docproperties.rendercustomquality">25</property>
<property name="kdenlive:docproperties.renderendguide">-1</property>
<property name="kdenlive:docproperties.renderexportaudio">0</property>
<property name="kdenlive:docproperties.rendermode">0</property>
<property name="kdenlive:docproperties.renderplay">0</property>
<property name="kdenlive:docproperties.renderpreview">0</property>
<property name="kdenlive:docproperties.renderprofile">Alpha VP9</property>
<property name="kdenlive:docproperties.renderratio">1</property>
<property name="kdenlive:docproperties.renderrescale">0</property>
<property name="kdenlive:docproperties.renderrescaleheight">540</property>
<property name="kdenlive:docproperties.renderrescalewidth">960</property>
<property name="kdenlive:docproperties.renderspeed">1</property>
<property name="kdenlive:docproperties.renderstartguide">-1</property>
<property name="kdenlive:docproperties.rendertcoverlay">0</property>
<property name="kdenlive:docproperties.rendertctype">-1</property>
<property name="kdenlive:docproperties.rendertwopass">0</property>
<property name="kdenlive:docproperties.renderurl">C:/Users/RC606/Videos/victory.webm</property>
<property name="kdenlive:docproperties.scrollPos">0</property>
<property name="kdenlive:docproperties.seekOffset">30000</property>
<property name="kdenlive:docproperties.version">1.04</property>
<property name="kdenlive:docproperties.verticalzoom">1</property>
<property name="kdenlive:docproperties.videoTarget">-1</property>
<property name="kdenlive:docproperties.zonein">0</property>
<property name="kdenlive:docproperties.zoneout">105</property>
<property name="kdenlive:docproperties.zoom">4</property>
<property name="kdenlive:expandedFolders"/>
<property name="kdenlive:documentnotes"/>
<property name="xml_retain">1</property>
<entry producer="producer0" in="00:00:00.000" out="00:00:04.960"/>
<entry producer="producer1" in="00:00:00.000" out="00:00:04.960"/>
<entry producer="producer2" in="00:00:00.000" out="00:00:04.960"/>
</playlist>
<producer id="black_track" in="00:00:00.000" out="00:20:04.200">
<property name="length">2147483647</property>
<property name="eof">continue</property>
<property name="resource">black</property>
<property name="aspect_ratio">1</property>
<property name="mlt_service">color</property>
<property name="mlt_image_format">rgba</property>
<property name="set.test_audio">0</property>
</producer>
<playlist id="playlist0">
<entry producer="producer2" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:id">4</property>
<filter id="filter0">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=-960 -540 3840 2160 0.000000;00:00:00.760=-960 -540 3840 2160 0.350000;00:00:03.000=-960 -540 3840 2160 0.350000;00:00:04.160=-960 -540 3840 2160 0.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.760=0;00:00:03.000=0;00:00:04.160=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist1"/>
<tractor id="tractor0" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist0"/>
<track hide="audio" producer="playlist1"/>
</tractor>
<playlist id="playlist2">
<entry producer="producer0" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:id">2</property>
<filter id="filter1">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=1200 0 1920 1080 1.000000;00:00:00.280=-250 0 1920 1080 1.000000;00:00:00.840=-250 0 1920 1080 1.000000;00:00:01.000=-4600 -2160 9600 5400 1.000000;00:00:02.000=-4600 -2160 9600 5400 1.000000;00:00:02.280=-6680 -2157 9600 5400 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:00.840=0;00:00:01.000=0;00:00:02.000=0;00:00:02.280=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
<filter id="filter2">
<property name="version">0.9</property>
<property name="mlt_service">frei0r.softglow</property>
<property name="kdenlive_id">frei0r.softglow</property>
<property name="blur">00:00:00.000=0;00:00:00.840=0;00:00:01.000=0.654891</property>
<property name="brightness">00:00:00.000=0;00:00:00.840=0;00:00:01.000=1</property>
<property name="sharpness">00:00:00.000=0;00:00:00.840=0;00:00:01.000=1</property>
<property name="blurblend">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist3"/>
<tractor id="tractor1" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist2"/>
<track hide="audio" producer="playlist3"/>
</tractor>
<playlist id="playlist4">
<blank length="00:00:00.200"/>
<entry producer="producer0" in="00:00:00.000" out="00:00:03.960">
<property name="kdenlive:id">2</property>
<filter id="filter3">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=1450 0 1920 1080 1.000000;00:00:00.400=0 0 1920 1080 1.000000;00:00:00.640=0 0 1920 1080 1.000000;00:00:00.800=-3840 -2160 9600 5400 1.000000;00:00:02.080=-3840 -2160 9600 5400 1.000000;00:00:02.360=-5940 -2160 9600 5400 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.400=0;00:00:00.640=0;00:00:00.800=0;00:00:02.080=0;00:00:02.360=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
<filter id="filter4">
<property name="version">0.9</property>
<property name="mlt_service">frei0r.softglow</property>
<property name="kdenlive_id">frei0r.softglow</property>
<property name="blur">00:00:00.000=0;00:00:00.640=0;00:00:00.800=0.65</property>
<property name="brightness">00:00:00.000=0;00:00:00.640=0;00:00:00.800=1</property>
<property name="sharpness">00:00:00.000=0;00:00:00.640=0;00:00:00.800=1</property>
<property name="blurblend">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist5"/>
<tractor id="tractor2" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist4"/>
<track hide="audio" producer="playlist5"/>
</tractor>
<playlist id="playlist6">
<blank length="00:00:00.400"/>
<entry producer="producer0" in="00:00:00.000" out="00:00:03.760">
<property name="kdenlive:id">2</property>
<filter id="filter5">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=1600 0 1920 1080 1.000000;00:00:00.400=250 0 1920 1080 1.000000;00:00:00.440=250 0 1920 1080 1.000000;00:00:00.600=-3100 -2160 9600 5400 1.000000;00:00:02.160=-3100 -2160 9600 5400 1.000000;00:00:02.440=-5200 -2160 9600 5400 0.984127</property>
<property name="rotation">00:00:00.000=0;00:00:00.400=0;00:00:00.440=0;00:00:00.600=0;00:00:02.160=0;00:00:02.440=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
<filter id="filter6">
<property name="version">0.9</property>
<property name="mlt_service">frei0r.softglow</property>
<property name="kdenlive_id">frei0r.softglow</property>
<property name="blur">00:00:00.000=0;00:00:00.440=0;00:00:00.600=0.651748</property>
<property name="brightness">00:00:00.000=0;00:00:00.440=0;00:00:00.600=1</property>
<property name="sharpness">00:00:00.000=0;00:00:00.440=0;00:00:00.600=1</property>
<property name="blurblend">0</property>
<property name="kdenlive:collapsed">1</property>
</filter>
</entry>
</playlist>
<playlist id="playlist7"/>
<tractor id="tractor3" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist6"/>
<track hide="audio" producer="playlist7"/>
</tractor>
<playlist id="playlist8">
<blank length="00:00:00.800"/>
<entry producer="producer1" in="00:00:00.000" out="00:00:03.360">
<property name="kdenlive:id">3</property>
<filter id="filter7">
<property name="rotate_center">1</property>
<property name="mlt_service">qtblend</property>
<property name="kdenlive_id">qtblend</property>
<property name="rect">00:00:00.000=950 535 19 10 1.000000;00:00:00.200=-480 -270 2880 1620 1.000000</property>
<property name="rotation">00:00:00.000=0;00:00:00.200=0</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
<filter id="filter8" in="00:00:02.360" out="00:00:03.360">
<property name="start">1</property>
<property name="level">1</property>
<property name="mlt_service">brightness</property>
<property name="kdenlive_id">fade_to_black</property>
<property name="alpha">00:00:00.000=1;00:00:01.000=0</property>
<property name="kdenlive:collapsed">0</property>
</filter>
</entry>
</playlist>
<playlist id="playlist9"/>
<tractor id="tractor4" in="00:00:00.000" out="00:00:04.160">
<property name="kdenlive:trackheight">67</property>
<property name="kdenlive:timeline_active">1</property>
<property name="kdenlive:collapsed">0</property>
<property name="kdenlive:thumbs_format"/>
<property name="kdenlive:audio_rec"/>
<track hide="audio" producer="playlist8"/>
<track hide="audio" producer="playlist9"/>
</tractor>
<playlist id="timeline_preview"/>
<tractor id="tractor5" in="00:00:00.000" out="00:20:04.200">
<track producer="black_track"/>
<track producer="tractor0"/>
<track producer="tractor1"/>
<track producer="tractor2"/>
<track producer="tractor3"/>
<track producer="tractor4"/>
<track hide="both" producer="timeline_preview"/>
<transition id="transition0">
<property name="a_track">0</property>
<property name="b_track">1</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="always_active">1</property>
<property name="internal_added">237</property>
</transition>
<transition id="transition1">
<property name="a_track">0</property>
<property name="b_track">2</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="always_active">1</property>
<property name="internal_added">237</property>
</transition>
<transition id="transition2">
<property name="a_track">0</property>
<property name="b_track">3</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="always_active">1</property>
<property name="internal_added">237</property>
</transition>
<transition id="transition3">
<property name="a_track">0</property>
<property name="b_track">4</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="always_active">1</property>
<property name="internal_added">237</property>
</transition>
<transition id="transition4">
<property name="a_track">0</property>
<property name="b_track">5</property>
<property name="compositing">0</property>
<property name="distort">0</property>
<property name="rotate_center">0</property>
<property name="mlt_service">qtblend</property>
<property name="always_active">1</property>
<property name="internal_added">237</property>
</transition>
<filter id="filter9">
<property name="window">75</property>
<property name="max_gain">20dB</property>
<property name="mlt_service">volume</property>
<property name="internal_added">237</property>
<property name="disable">1</property>
</filter>
<filter id="filter10">
<property name="channel">-1</property>
<property name="mlt_service">panner</property>
<property name="internal_added">237</property>
<property name="start">0.5</property>
<property name="disable">1</property>
</filter>
</tractor>
</mlt>

View file

@ -1,11 +1,79 @@
import unittest import unittest
import numpy as np
from source.core import Board, Boat
from source.core.enums import Orientation, BombState
from source.core.error import InvalidBoatPosition, InvalidBombPosition, PositionAlreadyShot
class TestCore(unittest.TestCase): class TestCore(unittest.TestCase):
# TODO
def test_something(self): def test_boats(self):
self.assertEqual(True, False) # add assertion here board = Board(width=5, height=5)
board.add_boat(Boat(5, Orientation.HORIZONTAL), (0, 0))
self.assertTrue((board.boats == np.array([
[1, 1, 1, 1, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
])).all())
board.add_boat(Boat(4, Orientation.VERTICAL), (1, 1))
self.assertTrue((board.boats == np.array([
[1, 1, 1, 1, 1],
[0, 2, 0, 0, 0],
[0, 2, 0, 0, 0],
[0, 2, 0, 0, 0],
[0, 2, 0, 0, 0],
])).all())
self.assertRaises(
InvalidBoatPosition,
board.add_boat,
Boat(3, Orientation.HORIZONTAL),
(1, 1)
)
self.assertRaises(
InvalidBoatPosition,
board.add_boat,
Boat(3, Orientation.HORIZONTAL),
(4, 1)
)
def test_bombs(self):
board = Board(width=5, height=5)
board.add_boat(Boat(5, Orientation.HORIZONTAL), (0, 0))
board.add_boat(Boat(4, Orientation.VERTICAL), (1, 1))
self.assertEqual(board.bomb((0, 0)), BombState.TOUCHED)
self.assertEqual(board.bomb((1, 0)), BombState.TOUCHED)
self.assertEqual(board.bomb((2, 0)), BombState.TOUCHED)
self.assertEqual(board.bomb((3, 0)), BombState.TOUCHED)
self.assertEqual(board.bomb((4, 0)), BombState.SUNKEN)
self.assertEqual(board.bomb((0, 1)), BombState.NOTHING)
self.assertRaises(
InvalidBombPosition,
board.bomb,
(10, 10)
)
self.assertRaises(
PositionAlreadyShot,
board.bomb,
(0, 0)
)
self.assertEqual(board.bomb((1, 1)), BombState.TOUCHED)
self.assertEqual(board.bomb((1, 2)), BombState.TOUCHED)
self.assertEqual(board.bomb((1, 3)), BombState.TOUCHED)
self.assertEqual(board.bomb((1, 4)), BombState.WON)
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -5,11 +5,17 @@ import random
from threading import Thread from threading import Thread
from typing import Optional from typing import Optional
from source.network.packet import PacketChat import numpy as np
from source.core.enums import BombState
from source.network.packet import PacketChat, PacketUsername, PacketQuit, PacketAskSave, PacketBoatPlaced, \
PacketLoadOldSave, PacketResponseSave, PacketHaveSaveBeenFound, PacketBombPlaced, PacketBombState, PacketSettings, \
PacketBoatsData
from source.network.packet.abc import Packet
class TestNetwork(unittest.TestCase): class TestNetwork(unittest.TestCase):
PORT: int = 54231 PORT: int = 54200
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@ -36,17 +42,140 @@ class TestNetwork(unittest.TestCase):
self.co_client.close() self.co_client.close()
self.so_server.close() self.so_server.close()
def test_packet_chat(self): # tous les tests de packet sont réunis dans la même fonction pour éviter de réouvrir des sockets sur le mêmes
# ports encore et encore
def test_packet(self):
# PacketChat
for _ in range(100): for _ in range(100):
message = "".join(random.choice(string.printable) for _ in range(random.randint(1, 100))) packet_sent = PacketChat(
message="".join(random.choice(string.printable) for _ in range(random.randint(1, 100)))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketChat.from_connection(self.co_client)
PacketChat(message).send_data_connection(self.co_server) self.assertEqual(packet_sent, packet_recv)
packet_chat = PacketChat.from_connection(self.co_client)
self.assertEqual(message, packet_chat.message) # PacketUsername
for _ in range(100):
packet_sent = PacketUsername(
username="".join(random.choice(string.printable) for _ in range(random.randint(1, 16)))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketUsername.from_connection(self.co_client)
# TODO: autre type de packets self.assertEqual(packet_sent, packet_recv)
# TODO: type de packet générique
# PacketQuit
for _ in range(100):
PacketQuit().send_data_connection(self.co_server)
PacketQuit.from_connection(self.co_client)
# PacketAskSave
for _ in range(100):
PacketAskSave().send_data_connection(self.co_server)
PacketAskSave.from_connection(self.co_client)
# PacketBoatPlaced
for _ in range(100):
PacketBoatPlaced().send_data_connection(self.co_server)
PacketBoatPlaced.from_connection(self.co_client)
# PacketLoadOldSave
for _ in range(100):
packet_sent = PacketLoadOldSave(
value=bool(random.randint(0, 1))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketLoadOldSave.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketResponseSave
for _ in range(100):
packet_sent = PacketResponseSave(
value=bool(random.randint(0, 1))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketResponseSave.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketHaveSaveBeenFound
for _ in range(100):
packet_sent = PacketHaveSaveBeenFound(
value=bool(random.randint(0, 1))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketHaveSaveBeenFound.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketBombPlaced
for _ in range(100):
packet_sent = PacketBombPlaced(
(random.randint(0, 64), random.randint(0, 64))
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketBombPlaced.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketBombState
for _ in range(100):
packet_sent = PacketBombState(
position=(random.randint(0, 64), random.randint(0, 64)),
bomb_state=random.choice(list(BombState)),
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketBombState.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketSettings
for _ in range(100):
packet_sent = PacketSettings(
grid_width=random.randint(0, 64),
grid_height=random.randint(0, 64),
host_start=bool(random.randint(0, 1)),
boats_length=[random.randint(1, 16) for _ in range(random.randint(1, 32))]
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketSettings.from_connection(self.co_client)
self.assertEqual(packet_sent, packet_recv)
# PacketBoatsData
for _ in range(100):
packet_sent = PacketBoatsData(
boats=(
np.random.rand(
random.randint(2, 32),
random.randint(2, 32),
) * random.randint(1, 65535)
).astype(dtype=np.ushort)
)
packet_sent.send_data_connection(self.co_server)
packet_recv = PacketBoatsData.from_connection(self.co_client)
self.assertTrue((packet_sent.boats == packet_recv.boats).all()) # NOQA
# Packet Générique
for _ in range(100):
# prend un packet signal aléatoire (sont plus simples a initialisé)
packet_sent_type = random.choice([PacketQuit, PacketAskSave, PacketBoatPlaced, PacketUsername, PacketChat])
if packet_sent_type in [PacketUsername, PacketChat]:
packet_sent = packet_sent_type(
"".join(random.choice(string.printable) for _ in range(random.randint(1, 16)))
)
else:
packet_sent = packet_sent_type()
packet_sent.send_connection(self.co_server)
packet_recv_type = Packet.type_from_connection(self.co_client)
packet_recv = packet_recv_type.from_connection(self.co_client)
self.assertEqual(packet_recv, packet_sent)
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -162,16 +162,3 @@ class Board:
boats=self.boats.copy(), boats=self.boats.copy(),
bombs=self.bombs.copy(), bombs=self.bombs.copy(),
) )
if __name__ == "__main__":
board = Board(5, 10)
board.add_boat(Boat(3, Orientation.VERTICAL), (4, 0))
board.add_boat(Boat(4, Orientation.HORIZONTAL), (1, 4))
print(board.bomb((4, 1)))
print(board.bomb((4, 2)))
print(board.bomb((4, 3)))
print(board.bomb((4, 4)))
print(board)
print(board.to_json())

View file

@ -1,6 +1,9 @@
from dataclasses import dataclass
from source.network.packet.abc import SignalPacket from source.network.packet.abc import SignalPacket
@dataclass
class PacketAskSave(SignalPacket): class PacketAskSave(SignalPacket):
""" """
A packet that is sent when the player wish to save the game. A packet that is sent when the player wish to save the game.

View file

@ -1,6 +1,9 @@
from dataclasses import dataclass
from source.network.packet.abc import SignalPacket from source.network.packet.abc import SignalPacket
@dataclass
class PacketBoatPlaced(SignalPacket): class PacketBoatPlaced(SignalPacket):
""" """
A packet that signal that all the boat of the player have been placed A packet that signal that all the boat of the player have been placed

View file

@ -10,7 +10,7 @@ from source.network.packet.abc import Packet
@dataclass @dataclass
class PacketBoatsData(Packet): class PacketBoatsData(Packet):
boats: np.ndarray = field() boats: np.array = field()
packet_format: str = ">II" packet_format: str = ">II"

View file

@ -1,6 +1,9 @@
from dataclasses import dataclass
from source.network.packet.abc import SignalPacket from source.network.packet.abc import SignalPacket
@dataclass
class PacketQuit(SignalPacket): class PacketQuit(SignalPacket):
""" """
A packet that is sent when the player wish to quit a game. A packet that is sent when the player wish to quit a game.