From 4c73d4d95a799c11fb1e3ef31d9a55f20672e673 Mon Sep 17 00:00:00 2001 From: Lucas Philippe <lucasphilippe@MacBook-Air-de-Lucas.local> Date: Wed, 14 Feb 2024 23:15:07 +0100 Subject: [PATCH] ajout readme --- TP1/{experience => }/ExpSetup.py | 0 TP1/{experience => }/Experience.py | 0 TP1/{experience => }/FileDisplayWidget.py | 0 TP1/{experience => }/Generate_targets.py | 0 TP1/{experience => }/MainExp.py | 2 +- TP1/README.md | 37 ++++++++++++++++++ TP1/__pycache__/BubbleCursor.cpython-39.pyc | Bin 1248 -> 1248 bytes TP1/__pycache__/BubbleWidget.cpython-39.pyc | Bin 2226 -> 2933 bytes TP1/__pycache__/ExpSetup.cpython-39.pyc | Bin 0 -> 4409 bytes TP1/__pycache__/Experience.cpython-39.pyc | Bin 0 -> 900 bytes .../FileDisplayWidget.cpython-39.pyc | Bin 0 -> 991 bytes TP1/__pycache__/NormalCursor.cpython-39.pyc | Bin 0 -> 980 bytes TP1/__pycache__/NormalWidget.cpython-39.pyc | Bin 0 -> 3029 bytes TP1/__pycache__/RopeCursor.cpython-39.pyc | Bin 0 -> 569 bytes TP1/__pycache__/RopeWidget.cpython-39.pyc | Bin 0 -> 2909 bytes TP1/__pycache__/Target.cpython-39.pyc | Bin 1169 -> 1169 bytes TP1/{experience => }/data/__init__.py | 0 TP1/{experience => }/data/response.csv | 0 .../generated_exp/src_d_30_s_12.csv | 0 .../generated_exp/src_d_30_s_18.csv | 0 .../generated_exp/src_d_30_s_9.csv | 0 .../generated_exp/src_d_60_s_12.csv | 0 .../generated_exp/src_d_60_s_18.csv | 0 .../generated_exp/src_d_60_s_9.csv | 0 .../generated_exp/src_d_90_s_12.csv | 0 .../generated_exp/src_d_90_s_18.csv | 0 .../generated_exp/src_d_90_s_9.csv | 0 27 files changed, 38 insertions(+), 1 deletion(-) rename TP1/{experience => }/ExpSetup.py (100%) rename TP1/{experience => }/Experience.py (100%) rename TP1/{experience => }/FileDisplayWidget.py (100%) rename TP1/{experience => }/Generate_targets.py (100%) rename TP1/{experience => }/MainExp.py (86%) create mode 100644 TP1/__pycache__/ExpSetup.cpython-39.pyc create mode 100644 TP1/__pycache__/Experience.cpython-39.pyc create mode 100644 TP1/__pycache__/FileDisplayWidget.cpython-39.pyc create mode 100644 TP1/__pycache__/NormalCursor.cpython-39.pyc create mode 100644 TP1/__pycache__/NormalWidget.cpython-39.pyc create mode 100644 TP1/__pycache__/RopeCursor.cpython-39.pyc create mode 100644 TP1/__pycache__/RopeWidget.cpython-39.pyc rename TP1/{experience => }/data/__init__.py (100%) rename TP1/{experience => }/data/response.csv (100%) rename TP1/{experience => }/generated_exp/src_d_30_s_12.csv (100%) rename TP1/{experience => }/generated_exp/src_d_30_s_18.csv (100%) rename TP1/{experience => }/generated_exp/src_d_30_s_9.csv (100%) rename TP1/{experience => }/generated_exp/src_d_60_s_12.csv (100%) rename TP1/{experience => }/generated_exp/src_d_60_s_18.csv (100%) rename TP1/{experience => }/generated_exp/src_d_60_s_9.csv (100%) rename TP1/{experience => }/generated_exp/src_d_90_s_12.csv (100%) rename TP1/{experience => }/generated_exp/src_d_90_s_18.csv (100%) rename TP1/{experience => }/generated_exp/src_d_90_s_9.csv (100%) diff --git a/TP1/experience/ExpSetup.py b/TP1/ExpSetup.py similarity index 100% rename from TP1/experience/ExpSetup.py rename to TP1/ExpSetup.py diff --git a/TP1/experience/Experience.py b/TP1/Experience.py similarity index 100% rename from TP1/experience/Experience.py rename to TP1/Experience.py diff --git a/TP1/experience/FileDisplayWidget.py b/TP1/FileDisplayWidget.py similarity index 100% rename from TP1/experience/FileDisplayWidget.py rename to TP1/FileDisplayWidget.py diff --git a/TP1/experience/Generate_targets.py b/TP1/Generate_targets.py similarity index 100% rename from TP1/experience/Generate_targets.py rename to TP1/Generate_targets.py diff --git a/TP1/experience/MainExp.py b/TP1/MainExp.py similarity index 86% rename from TP1/experience/MainExp.py rename to TP1/MainExp.py index e68cc72..2f758e2 100644 --- a/TP1/experience/MainExp.py +++ b/TP1/MainExp.py @@ -1,6 +1,6 @@ from PyQt5.QtWidgets import QApplication, QMainWindow -from experience.ExpSetup import ExpSetup +from ExpSetup import ExpSetup def main(): app = QApplication([]) diff --git a/TP1/README.md b/TP1/README.md index 1087c3c..cca3347 100644 --- a/TP1/README.md +++ b/TP1/README.md @@ -1,2 +1,39 @@ # Programmation d'une technique d'interaction : le Bubble Cursor +## Fonctionnement + +Le programme génère des cibles aléatoires en utilisant la fonction generate_targets. + +Les cibles sont stockées dans un fichier CSV pour une utilisation ultérieure. + +Note 1 : Les cibles sont généré une fois pour tous les fichiers csv afin de ne pas rendre une experience (groupement type de curseur, nombre et taille de cible ...) plus simple ou plus compliqué d'accès qu'une autre. + +Note 2 : Les cibles seront selectionnné dans l'ordre pour la meme raison. On suppose que l'utilisateur ne pourra pas se souvenir de la séquence de cible qui apparait. + +L'interface permet de définir les paramètres de l'expérience, tels que le nombre de cibles à afficher, la taille de ces cibles et la distance minimale entre elles. +Les cibles sont affichées à l'écran en utilisant la classe Target qui définit leur couleur et leur forme en utilisant PyQt5. +L'utilisateur peut cliquer sur les cibles pour les sélectionner. + +Ajout : + +A la fin de l'experience, les donnes enregistré s'affiche afin qu'un utilisateur distant puisse nous envoyer ces résultats. On peut donc avoir des utilisateurs d'horizons différents. + +## Utilisation + +Générations des fichiers de cibles : + +``` +python3 Generate_targets.py +``` + +Exécutez le fichier MainExp.py pour lancer l'interface graphique. + +``` +python3 MainExp.py +``` + +Définissez les paramètres de l'expérience en utilisant la section dédiée dans l'interface. + +- Numéro d'utilisateur +- Technique de curseur à utilisé en premier +- Nombre de répétition de l'expérience diff --git a/TP1/__pycache__/BubbleCursor.cpython-39.pyc b/TP1/__pycache__/BubbleCursor.cpython-39.pyc index e3cc227bd4c22cca27fc49eff4e11c2714483ea4..48c4d5a151327298df25683db3194ec6a6d6cf03 100644 GIT binary patch delta 306 zcmaFB`GAu*k(ZZ?0SKaW&Zc%w<Xy!WHE~BZ2M17OB|{PSWNXHE!BHH=sU=QDrNtSy zxKdKn5=(PRobz*{xKoM}%UyGFG7E}RZ!u@)l@zf8brrFL2sR+0$y5X~`4)RYB2Y55 zsE8XR115MT*DyWu;REv1ffxuL*t>;jvO^32>Al68mXn`YQp5>l7l9lDHa3boBQrfC z2Z&2jQ-I1r#zXZ?Ud3$2jcmbd<^mOdkUTGl5CRcmAOfKV>XLdEOAT~Epu$@mHo5sJ Rr8%i~j6hy76OiCx0s!=LLQ4Pu delta 306 zcmaFB`GAu*k(ZZ?0SG>STakKvBJV23TN8Iwb8rGhRx%XvOtxlx7krDOIJLy7sI)la z7FSAYT4HHViF1C=E$)<}#B$f1oXmpa)LYD%c_l?`KwU)~Ac7r8XfhRX1F2i=1&Kh( z)S@CDkPMjMom|88$cG=uPX}Tkcwp}qqR9?10HpU8Yg$fzVo4FmX+<E%fQ`MyospTI zkpsjfsVP9^AmgEWCa+>P<3_gNHFJTAAV{7MM2Lb2DG-5B19eF~i=_s-AW-2g4x8Nk Sl+v73J4PU{m<dSmFaZFCYent= diff --git a/TP1/__pycache__/BubbleWidget.cpython-39.pyc b/TP1/__pycache__/BubbleWidget.cpython-39.pyc index 3f7d594363ce5f597ab00b02311700104235408b..91bf7c8eee6450745f046b396b616bc8705d01e9 100644 GIT binary patch literal 2933 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 IphUa>15g*If&c&j literal 2226 zcmZ`)OK%)S5bo}I?yg?}6P#cv5${FBiz9K1P#~ZX30rn-6frUyji=l8*s~9J_d0kr zds?HM5PxBP^k3>L7xEW4AgX$HogGKaXsWAU(^X%6Rh`Vw*9koTvMXUcLjJ<e?Bhb` zF??zd1Sg#4Br01PQQKz`gO=q^+l^d`b58EH{m8evn+NS63aswsVLOaMN}dw#^WcK; zK=>mks&TqQn&E3WfowLZ3AeYBtfPelJ=lJc@k60O^>-6lYIEQ9_xE%0q%T!hrnqhP zaV8!06DWe9nGt(M4k)LbU4)Ut9qwL`$mJgQq4jvcLuh?o<8^2Q-r#f4hJ2ncKwEo7 zToTp6#6>eXxwI*zGsmKiC*!9cgV1C|#`Ka<a!3jivx1Br>}j_k$81Dl%!4tX(@To* zKtF(fh-*06Ay;g3w^=iu>i2{+VH{_jOvkYaw1q*LM&3<$iHVXBJ7WCQA`&erp*OmH zC3a<!o@AXvQ&+G{$2w~Z^Ntd^NcHoi!@KQr{}nYZj2=K+i{ms;l#1gk^3S)epOuiR zmG{#`^^USU>-9uyW4*QWu=VWOj~lJ&*n=!PYPWW`)>~z0N`TgS=duQdh485b5QNsL zPeVFq+rfL4#ZwO}um+RuPw*E72n`(Mj5~j@Klg@I(=jUmz#%Kx_vF_{Lq|J>Gosu* z@#Ly@wO2U6NcVSkhm6>sGjxaE(1!r{<3NXnTX+R95Cd?!`T}5g;T<`Ybe7hM>U;&E z!1tF)NSfZ};FgkUtb6gkrQlks&I|!^1|9J-&pP5Y#vj7wc6*{@9Gv#0NH~Ph$#JBe z^o#@SmY8?OPXN#kmzZYFKrTTO1+eKL%Z0p)Jx6w58v2`|=MbW7AmqC+T8d@V8X#`L zr{+Kqx&X)`zAJRFQbBiyEGfgKlLt@6&jP##iUuZ*5KwZA;4%aUbO+#F7y`J{vD3Sj zrF66DO8lWj10t`7scW5sarDP{;!JdO6xbQS!7mAX!x2-r^FQF)JFrb5X~={tgZC@G zyjfXs1+Bn5u&#Uv3YZNkSb!Us1SF*2B|~S%?lj3HE^B(F?QXk!CgeRBk@rCuzu)7D z7FW#rAwR;2D*9%jjcK+4`>f%(S0S2&-ll^ODn?gVR!EM9BX6wX4?#i0IXPi+83+zF z1Zo4(Z0x|e3uK2%R?xC~Tswk^0t}jm#<(`meQ7g1^3$VkmI@n_DAe5@oBr}s+%R$N zW6*E7CNW>pWo0i2pj91c<<r5vidS#fl8R^3s%SmC4}a5S>d`S<fmB`wu1%^RTq96p z*=F`PV9|7p*ON%4ChW3q$wky|1fXUY?LuAq0%qS}f4gGk^`f`<g3w<Zhp;2*FNs{8 zmh1mzOOWPWC6taDX`ZDgahk!EB)>!(5jy!9iW}B0S`utYp_Jtd=9}_C5WqI1gVl=F zHx@S=cnfrrwt!op9>?u2@8_t`#qnuB$;%mAaBWqPpP&Vwqp${9(;h(A%ui~3D)Kyz zXN<%`B5hegqmWXzY(qh*g<<H2ZWx5F#JOf&VwOro-G<0Cw$8Wp*K6DQX+N_C!7NTk m%G*Fmh%2$B&R$pcKQo70tnhFXJ}Q0t2I*t@w*vUsm;DF5{_&jv diff --git a/TP1/__pycache__/ExpSetup.cpython-39.pyc b/TP1/__pycache__/ExpSetup.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9a51bd6c6a2c58cc96513723bb414ab55cc8943 GIT binary patch literal 4409 zcmZu!TW=f372Z3SS5dZPS&r?nMT3TcW5sQP0In0n7sVD}E0XLa&7kd;;*6w~mrHtf z*0zMzlU(Gj{Q*S*DsRf)&~t%4?`xm*+_%1@-<c&TS}BQ{Idj>$o$q|-Os8J282GUp z{}lhZXc+&d%Jk1c<qM?bH8O5+Gcs6Fn#@GqimaZ^Y?IpT$mzMv?Rm`Wl~}3gGrw16 z<z9tVdR12K)mTlBbE0~$&gxorqeid68jw9U!%M9B(BM8VzcF}OxQ8~I<>phPT{*?- z#%kNl>+37A`lb_wyrcTE?dPTS2Vp1bZ|C0n<Ibjt^78uQFc!-^R1oj?dz<}x{nvSQ z{h<u`<IY|`Rj90`$<Do0seX*gBMg}Id^4$FwaW7Afsmnyy8^Y@FT+SY2$Mn7+50x+ z+d}O(wnZ#tM+qK?*Mp_g8Emsld!7E-qe}7&f-vabnDxD}Wpa~SZ+vERn>%j|=5UvL zC|zFSK1z?5c?D&OS9uMk&+EK_vdm|A6J_Ol!!cMD_cNRO*y&TD(m~gnTH1%~BGC?# zKbwZ3j6-8+9vQfAGcy8<8^~>)I~ldOTK05a(z(wqw3oS!yrQbyIW!L}RXe0F>zT1z zA2!s?p>brI26|oe+N!C0XVE)5ys!=3{$P&!OXzn-UtdK3#i_674vhmhbBFVp#qmD^ zs&ox&pl(m<bYIiGv#6i-I>66#??u#gue!v`hjhjTth=y#dANx3ir&{dSlP?G;Z?dB zl=C!#dd6+)8b*||((rob>UNSmEg8divl2<%Af&GD&jOmAB`K0YKTgEWZt_y%=8aRz z(gkFzY47A%_FMedsS2Yo0en)~y1ie0Cb~Ou_#zdp+ijb9_tMSHNHAxkKM>4Y?aN*# zN*8GYpjwI+7cF^mJUBU4p$f59>-H&`D=TUH5VGCM-6REob3X{eI8;H9m$!i7Anx=; zexaL6DPk4$CGW>^2O!TYQ?mCejCuc6UQH7rgE;MNVy3bh?=de)F%TV<<n!Z+iiQBg zLowB?Iuf=rnnBVQC4n+8>xl&{mDLh)X4R4)EIk@hq2+=uSuyiFoUbU+OY+)i<$%7G zB@AR`bQU%#3G{5{Wx)|5*wkjuO5G^zJ{LSMb#YkHRe9|t_PMne;0olPEYnvN%<@!8 zp}ISgcu`MVPy;Jti-ic*aS{=2$xHeheTs;<hZWl`<obA%Mb!gofP0v~6O5&oBk9=8 z%R$hMI!O`)$Hsp@TlyMTm@GwUx04KZ0Fl8!EIqlk^z=7ND=UwlEREYf48xt?(zCT& zOJnQ5IoOjIu&V}A@(7t>RxHod|DvSa@=f1t=)4JuWY27v&2h3SW)m&GSwr&73g+0K zoh&iNQkMWd{*g>9a~~;LLk0`dOaprZf9%>r=ZF}?RUT?3;vj8{K59NUpPTZIDs$@) zb`&==V_4CaXbh{GtH`qKRY~lc{ubHB6zp5PAF9^Lk5F4HQ8MfTB2Z}y$cL4MWLhV~ z)~$9;Ud5NWqr__^$qeN+WUMv<?@G+YYk8T5*dY*cokozc<?cYDA)nC}G-V$%F=is# zpLhuQ3;O6+lk7c`TF5>_N=PRLuC#`WrYrT${rSnIPGhl4)-nDOy2%vIF4k1WOH<A% zxDUE6q8(*rxH{0XmDxnVploXa4tc@Ikhrq|VpVqLqVzIz=wwiWax>@1!Nt0(>AP6q zZrV*_(ZYH3wSf&<067c=)DoW@GcS?dfCtPDl3?E<T5Ef<iVx-c$Z{KZpZgD1HiEUg z&mOUQSArWv@Jjp1{L-_#8xNPCJq^~DH-hEgBVSowy}#Tp=_|`CXSbM_xQLTb?Xl{J zH<EB)u*QUUG<iwHDzHvXW`mB}Id|##>}dJ3c^~3~q>0SXh<7yl=ST@xCQA6(M{hY( zVkIIkt%;8yWN_rEDQ^@|Cue?S!DSHetxP*SE!$HN4rzw41xsl=1$}sM6gXhs1ijoR zD(XZ9kAY)$`mc_y;)X!R6mXnBXEVViO@r_$_LUF=(lHyr+Wz9?c<0ByWxzytl=SI_ z5Vpx&i!i}d)~=1@Ai3N2fk~mlE`o%=Sd01=s75mIWx?HBKLCR$ZIq5Gq1Qh&9~ggp z1ov*C{2VB>QGN`U>Y)7K05mWx1C^!B&%E8rk#kVicUR3uty>Pc*cZDmHeaw88`{-6 ztEWHVcWj@Mt)AYYj3Gk<k@;zjG9p8m{yYjfM;Rd&uJ!AC_Z~09wSKj>4A=VA#*@2` z3*&cXC*Bs?@+B!bceJzgI^f`#w<}s5Y~~DD0X(>37p5A(5kd;iY9k~UBg&*^E#_t* zZ_-|t^!(H=Kc@OQ=4hksJEVkI$<QR;G_MkTt%e4%Z(cC>FHiJ)j-cLBFHy*ZM*fA0 zj{l%y$Jhmtd}>%m05vPnhZ?Ey(3}IY6lx?HYR6bmjIoOt@VP73pfq<3ZtBa-OCX!) zmV8MyNH$4W!5ghW+;4IhqfAhf5fC)+)s=Cbyn#b)i^d<E1M9#(a0oJh2IfH0P(lfS zkf9B$nKg;Lyuv@oPjNW;JIcr>NrD9c@D9lYfZUEmT<{iwBCqixpbsc&lULBhu8!jw zL<(Esc8d5O95{+!*!gIu2#i<-_8Y*$RGJjv`2<seA;~4MtE#U$(Uh-90(gy}h!6_h zPXHmw0?$L?1GMcRB?NVXLc?lV<hvc~GUO)w^&H%a^OIvu0pgs4>VkGAKk_l;Pqn@O z2m#k>{9VIh*Bq7Bs6^<$>ny^q7sn&UE%wh^FmBh?-xaf9j(^PHNubq-=YjRN>jzHe z4E@aJ-hzHMd<!4u;D3mKKW^SKlD~e0Fr5D1A!z_v+|dxlg9RR|w7PHIXq^%vpVFCh zV33=g+^n?Ag>NTC7D_)e{V&j#I|!y@?LKn%l?;_=y9L8KDnwB13Mu<CcOtwYbBFxP zIaTCyh!J7Nu?SQj8Z4sx157=l-9LeLZ<zbnCT98n#=m8obPhU(Rt4F*B4xn2lf{i) zi9Wcw+O{R}nm&Leh)Ifv&h1eyqwNqWA%BGsa5~bM#(TR)PXi)2JPj&A(ChOQ&x0VZ z1;LB76BRu=qSSGWX2fDyA}2|(lxvjHig|q$#dbv$1;Ny&en~^#ql|)}I+Aw92r!rY zieK|Rf5xBpJ>A>BkX!u(@x)%js%v}e>XV!6>R}q{S3y2AZYi8(BDMbMnEFkjUk&<2 ypq~Lcs@IWxVe$IvZqVQlDWlCy?NZY(?K1c86gTlXQOIbkzEv~dN2*y4tnPnKEIuIs literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/Experience.cpython-39.pyc b/TP1/__pycache__/Experience.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..54b6824a0fd078cafbc016819e0e1cde15efccd0 GIT binary patch literal 900 zcmY*XPjAyO6t^8G?MgcFSK@?vLq&pUoDiB|D^zUK+D#i1k}p;kyK734W{v{`b*Jsi z>~rkQ7x0x+zXB(o-Bs(J^?vd5i+}H*<954+K;FIlBj0-n{k6ubP%ySYtIq%e37nxE zGmPz?WF#kyxV@KoxyL-Wry0#DqZoZb!WY365`n~*9`i-x2z8rtU_xDNXuqg)_=dgu z<Rp{dQgJFZ*sa59d1r;gsmkMQ;Z5w-RUu$(fmR&=i5M1$5rLT}2&2M=q{6>KED!;N zZkSg8yp$@HMIz@IuFNgL912H?53rN~HrD<GT1^0EXo57JkO}%u)C=v+@Qlp78NH+z zez9}wrOvyl{d?Y5x8A^cnQq+khPo;6rR(Q~Kl33;GORlgal20HLU!bNd2_u;xKqhY zCOVxK#m%+st{MMFoYhj<WKGaJ?)CQi%9dj2;r>Bi+0mI`xPLg<-cz<3<CiKebT=>* zs77XOlxC8bu^zKEh{G$X>ykZ!shmi~rz5Uo1tY1<x|YefNY84?i#V4i_~~YKjnosM z{r53CuB57>tWM&p9H&`YmNFV_L`QF<-QAr*v^;yArsF*Ndax1Qjp0rC%d`_EV=eiD zHU!S<F#y8r_~BAX6I1;A`O3w6mxeIhCU@y^Zd#n@Q&B^8+=QH;)p2GM=UhDiT4f`s zwuNUFY!NH))S9-b4bZ9yU_-+q?sRDTC!tBoz8%+a*J{^d_s0sCqqc;mxw**bgMD_6 KH6$U1Mg9Z#4b=+( literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/FileDisplayWidget.cpython-39.pyc b/TP1/__pycache__/FileDisplayWidget.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f99da186a9876ea1da0246314b8396cd520f25cd GIT binary patch literal 991 zcmZWo&2AGh5FUHI>843b0SO@_5C<-ipxYvG0|bJ$^w84KqQYLRRqQlIyPL&!D5=6J zm3rhAl4Gwt0ngzhoOlIJj5n<mR9iFa`SEz>o7r?}X%TS!eD*{BA^^X=FuxcIFObYb zWC8@qASVgQX+rZL338S&0$U)c2u?u+l8%EU6l@<_;UByKE#~U&1Nqf%2xZ+u`%sA^ zX<f7ZvMe*zNv-M^uF>8}RdJ{a(Le6^Tk|Wp5X=KSNJxl)gq}f{2qNfdlmsFW>=Y7q z1`LwWzwEAWs!YCCrp(ge?8Oe9i|Io~Nd9ZO$SjOuLZ(1qL`J}=4Ms5bCpLmlY!V7G zB?N2@B`WBce!u^XR+fbkokUac)<cAc;T{JBij{RRAJ#CQ-ye|#U}C}Ufg`$AccB@S zQoD$ARVd53i@KO_k>*nSJY8fj5K9_H+IKP)Z;Nc`Sih7-(nQr>hJblk9n)xS1&$e+ zb+vD%Bi(c2>YR77)ELgs;qPYr-biiYY|u$f*;AP+OBwI1$NP`t?d>-^@ulvOQoTGr z*jtaUAh=o%bsfWpNT!Jl$RepBHR&=rxpUS3vbg`C_vI}hy+ShgkRgl+J@yjep3o`E zlK=t5sj48OyBfz5$4EEuQ^Bz%`?<7w=)z+qY%i(xq&n)^7S+q>;zIdF7FOTD^Nii} z+J=@!oyZMu^KPb^2Xb=vYTk36t(xzV?+f;5k@LJS2AMxMIsZIJvzeuWMc?wzEM1`9 zky*z1ToNlj9iNG=A@hHg@hl?EdZpRLr>^Y{+xE$7+s;PTRI{M{kZSL%J@S?FT->V6 Rs>0~$EW76(ud2M;!9R3{?gsz> literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/NormalCursor.cpython-39.pyc b/TP1/__pycache__/NormalCursor.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e7395d9983bd43cdc7d91d786e3fd4c90bb5fb56 GIT binary patch literal 980 zcmY*X!EVz)5S{hf8<VC8s46OfdO*G809KKZI3Or0qV&+HRm;T^TDjRx<J6ART?f(1 zIkgvh<|p_Veqc{Xocar#n6Vp_jy0p1-P!TXdy_0Lw*lq*vtRm{1N@<2QSc15Q0+Pz z1&U>mvzRg10p%%v1&UvKv8Vh)=ms~K16}6C!FG`qrcdFbco=M<+6^=sVx}PWG*|4B z#eP#R4wSEgD~N>>ShD3hy~5;4wmmhrFwQ^Drn*mc=0ZN{HmZG!MzIQHV_8MMrvNQi zfc3ndVVKkP9sB0kxoee)Inkwct$tQmZOg9be5<p8X<^z=Foe$E_t9sojg7KtKe3Zx znx&J8j`lXA!<W(S?x($Ie)c>~hk10gzZord{bF+NLMhX6T1qLfpbgOg6ZLnodM9_D z*C*uXLe2Q7^^iZ%sRx6~!@&^5881BoapqSr;veA4>sf#vRKW<=kf#*{V8k$DP4pO9 zTY;IVMCG4?S+4}X3}*anz2e4He#J*f#}mLiqcD=ecnvEEb4|A5r`%jC`h$=`#jyub zgDZNDr{lp5(Q$%`^84M<$8O66=o*^b1%s?e${Jk+I=#?tX_%f2Gt^QmL%?AEJ<9+8 zD87G7j%?U+oje^&mD(~H_q7wZr{VmhCap0`^iMx8zH0L7{b+FaS?IOd1`C<bg!c%e z2dEbh?{Goydboo~-Z;s%l&&phUZ`nCen-l)X_7TJhK6=+r3cA0D{=izhh|tMLp!u! zs1rl%l3GF~#9xO&eb(!8x3qtLP`-L`Q0`3Ax^8{5P@yhZj~2dZ+IdS`ZK;Qj_YZgI B*(U%1 literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/NormalWidget.cpython-39.pyc b/TP1/__pycache__/NormalWidget.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..761517149d4fbdc574e24d42245dcb299302e50f GIT binary patch literal 3029 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 R-olc|iI5x}2cH1W{{Wx?!i4|; literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/RopeCursor.cpython-39.pyc b/TP1/__pycache__/RopeCursor.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50da6eee6398a89d3e4c12093bafb18203bc232d GIT binary patch literal 569 zcmYjP%}&BV5T0oZG_@oid;qUKXafgNMhP60M2Hc+^wJb|2{j9?yEKa7CQso>j=a)d zJ^2croGl@Cl5g^T)A`*rX*N9|`@|iuA;7m0RdYym2<ns^1BL?T5COssFpJq6U^a&j zJ3{7+AgKLN76hpMZZRGU-YcZa<irH4W|8O+)CoBbR1A^DkXajuY-Up<M|%%heyBJ3 z2Q$1*=n>Qfxivh~Vg<_f8o!W~wM7KtHgShgGZ`f#zIBkYX#x&|x^7HFrnp*aSMg<6 z7HXzF#-~Xkmc2|wE|baYUAo{J-!!fQOFN2-scz&+x>$0#19?On{9cDoic1xWVv?wQ zmWnjbc{pf=qjuQu-wwh<>?}=Z^YHP$75-m$p09MRY-rwEncDz8^zr?;nq(#p>0R77 zUL<oK$J&eIdBzH1xF5$aMI!cJWRqHyn^l}|Vm3JgWnR(6QV#=58d-`;fw@eYD(znG M=UmYbvM=?mKQhCBxc~qF literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/RopeWidget.cpython-39.pyc b/TP1/__pycache__/RopeWidget.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b6b28bbdd53d9b8d98934e90f97ae3ec75a911f6 GIT binary patch literal 2909 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 literal 0 HcmV?d00001 diff --git a/TP1/__pycache__/Target.cpython-39.pyc b/TP1/__pycache__/Target.cpython-39.pyc index 947e9a63a4839aed0cd1353eae11b904ae83af75..d110a05ab3758f798c61ed3c1bab7208cb1c73d9 100644 GIT binary patch delta 302 zcmZ9FPY%IQ5XRL*)Kh;e79<j}VB-X0LBv+#1n5K?Pb<@kbCgq9y9O6{YZq_>GmVgV z$@?YW_sz@~o3SZZmQ_g6%l00zyjwcEMF3w51V_iuQ_Z9dc>*Qjn!@sJZ*&YOlF~8? zmY`r0O#_7%J4M&qx{5wqIv+wb!DHy6;4nvW0X}AuT?bdEnNr>%1T8#2!la5@lD>h! z(&d%5Wtp7>l}knJn%q1vu=KS**;%ZIbv7Fen^9%77;VPy(r2ZcnfL!q8r1pGK5&i- L#s;Y{O|Zoq`_n-} delta 302 zcmbQpIgyh)k(ZZ?0SGF-t(eGthBt~ey(l#`FN(P+H6?1|lX4+8pj;6<h~NMcD;bJ- zHs><RGp2F^dAGPr@`F=zQj<%Z^K*(o#@yn`$V|`30b-C)6i0DtiBnN&aYhj{P%?@Q z$PGx%D`Ek0xKoM}%UyGFG7E}RZ!u@)l@x)k0@(t#Pm{Tbd-6vn5pEuk2$<lVEWn&C z4zgL3v4|Tk43(S2oTMiJ5)=Xvf*^tqM2Lb2F%W?;393bj#a#nk5UB7LhfQvNN@-52 N9V3ue%mgGvm;qK(KKuXx diff --git a/TP1/experience/data/__init__.py b/TP1/data/__init__.py similarity index 100% rename from TP1/experience/data/__init__.py rename to TP1/data/__init__.py diff --git a/TP1/experience/data/response.csv b/TP1/data/response.csv similarity index 100% rename from TP1/experience/data/response.csv rename to TP1/data/response.csv diff --git a/TP1/experience/generated_exp/src_d_30_s_12.csv b/TP1/generated_exp/src_d_30_s_12.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_30_s_12.csv rename to TP1/generated_exp/src_d_30_s_12.csv diff --git a/TP1/experience/generated_exp/src_d_30_s_18.csv b/TP1/generated_exp/src_d_30_s_18.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_30_s_18.csv rename to TP1/generated_exp/src_d_30_s_18.csv diff --git a/TP1/experience/generated_exp/src_d_30_s_9.csv b/TP1/generated_exp/src_d_30_s_9.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_30_s_9.csv rename to TP1/generated_exp/src_d_30_s_9.csv diff --git a/TP1/experience/generated_exp/src_d_60_s_12.csv b/TP1/generated_exp/src_d_60_s_12.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_60_s_12.csv rename to TP1/generated_exp/src_d_60_s_12.csv diff --git a/TP1/experience/generated_exp/src_d_60_s_18.csv b/TP1/generated_exp/src_d_60_s_18.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_60_s_18.csv rename to TP1/generated_exp/src_d_60_s_18.csv diff --git a/TP1/experience/generated_exp/src_d_60_s_9.csv b/TP1/generated_exp/src_d_60_s_9.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_60_s_9.csv rename to TP1/generated_exp/src_d_60_s_9.csv diff --git a/TP1/experience/generated_exp/src_d_90_s_12.csv b/TP1/generated_exp/src_d_90_s_12.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_90_s_12.csv rename to TP1/generated_exp/src_d_90_s_12.csv diff --git a/TP1/experience/generated_exp/src_d_90_s_18.csv b/TP1/generated_exp/src_d_90_s_18.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_90_s_18.csv rename to TP1/generated_exp/src_d_90_s_18.csv diff --git a/TP1/experience/generated_exp/src_d_90_s_9.csv b/TP1/generated_exp/src_d_90_s_9.csv similarity index 100% rename from TP1/experience/generated_exp/src_d_90_s_9.csv rename to TP1/generated_exp/src_d_90_s_9.csv -- GitLab