From 9e81484dffaf54cc9d286ba64e8aa7cec933bc42 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Sat, 15 Jun 2024 18:40:21 +0200 Subject: [PATCH] Initial commit --- README.md | 4 + a.out | Bin 0 -> 242816 bytes main.cmi | Bin 0 -> 3100 bytes main.cmo | Bin 0 -> 12395 bytes main.ml | 318 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 322 insertions(+) create mode 100644 README.md create mode 100755 a.out create mode 100644 main.cmi create mode 100644 main.cmo create mode 100644 main.ml diff --git a/README.md b/README.md new file mode 100644 index 0000000..0da9042 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +This is a less broken version of the Math Game +The way you play this : an arithmetic equation is shown on the screen, answer fast to earn more points + +[Right now the core game function hasn't been implemented so please wait] \ No newline at end of file diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..de2928ea508b1c20583982aa6fb61f70f13f25ca GIT binary patch literal 242816 zcmeF)3Ap7&c_)6PQErQIA&B4teQ$RIy#x>t7a|ZobOy(aoG0S8UC!0>pqKR2F+n8jG#zgslKd0;M6y>>FcVm)yrXIgm zy;X0$d)4oEPTzZ3KYzjtpZ~lQo^i!BCtSPZ(yOm}-V3j}^Ais^;DApbnEy+AN^pk* z?smZ4(|>bt-(X{KeDJ_v5}Xs97hDir9=ss9KDa4(ZSbaGM{rzlhd|pF+&MTYm=Def zG(1i9Odk7}%bX@QtLHaI`n z5j-cjA^48qjlmBF|2dddQ|zy}FJ#=;XT@CnX7QE0<@l;jm*cZ8mdo)~y)MUBHM<;N z)$MY8RlCL4*RC9kk@^+Kv3}XCRsGtFe_J5;_SatX(AP3wH2l`aoK-!SZHw_$O)tks z$4YWhwY{9Ys&9O=>-)$9?wz&1woeazZg6q%{NU!`Ey0fkKO6jF@LR!Wf-eLL{LaB) z!F+Ih@Sxxk!IOfEgR6r4@9WO&te6tHk{Fb{ior_iqRvFs#Y*;&&z{`X+O_^OEq2Wr_n{iA}*gIm*_iTebe$vXnMp!2d|v95Kl`f&R0B{^US^c%XkQw0n#^dTt5LzM{Xs@n>op6L*30 z>uk-n-hMRS^>{qLtZVXbEdOdl{(m(=9AhZ{_G;S$c8Kd@_jH!_~Qm0-sYK6wqO9eZW^^ zJZgWwjgLxieq+Fw%YxdQ;gk=5&GFk_Hj6(yy{SMCX6+s?%x7J>^)*N4)U3tGG z_*&qcm2K{Hbj9n?jM>AMYl4zfcfllc8Xe@8&feZR3~6E_Z`##C@!E@C%(l`mAERDz zcTU7)Yk*h#_V}-7lk-+djPkTF}HkVM4(0;y17ygb&t&wh z3(CjEWRfqwHwT*7nk!ljpevs0vV6ZjV|Bt`wMaL;?o;;ICq@N%-Vm^f&E?nrw82?f z%7#m_uFk}^Vk2&+1{F7TJ+7%ea%-(@7dtsoH)3~j@Ul#Z_krp8ZtbGrn=z)9?(zQk zYS!Ez-oxokM9r{s}cSz zm!CT}8^mC5ZCI*KeJ`+_4R@MhL#C$j6Hh+MPu2D%8JFFC?D{=y8uyeQdo<^1ok806 zK<#V`)&^q@^!4KGIjea2X5UK#^2AY|)sGgqJRQCTIEEgQ_9+9uctj<-wDKg9CS>dG{V(&xVSVIdaaAKWuT|o*3At-4r|| z;ETNB(RKyj5|C5(1e@4faeGC^5xeIzW9h8ACChndQ{@)V$6IbIr(&q)`gs0v==~Yb zBO^~7ZVamC#O>YzJFHzAXT+4v*4W*zJt;IBt%++d=YAc%qZ{KrD(L0Vfwp$^utta6 zTo#o4QQo?&^)(T4YPV-0ne##IMK5%8hI^j5__bFDw+8imU7ztNzvOMo+U7vswaT@a z)wuHR-O1c}f%TnT?-_V$pw`K9){4h7a4x9z45xDHU4`A32PvcJcU3RUxa`YtkALb) z>({RC=-wALRF2-7u^jdLtLDivUTp85uV8OjrhczUKS88ju)CYilRs&+c{$t=h*iG_ z?M_s?{{2jCZV9x%PHcMmv!QopUOsjO_PQq~!IuNHy3@;_o-RFm^y)*e>E~K6c4+a^ z%a5LZy}0(a{N!NU+Xniz1O2MdS475DL58=!I6WKd{-NX8fNviQ(DKyNn+949_v_-; z(_1^bxBblMSD)?;d-%R3b3M;}8;?7pc)phJ#(SPW8t6}i9_9W_=DcT?jCY6TchN6w zd+yiGJuP$eu%B((yT0--&r_ zRQ`RSm-#E9`RKV)a&BpJ$9Hqr5Bshi=w}S{BL@1E(0!ba3*Fm(ztHS(uF8%t|MTuS zajV#g-!+L{y6N}Y4@!^UdHB`v_d0&E?LVRM*!$+p_5R3Dxzt2sWsbH>~c zw7J8ZjH*X*`tG*IcJe(7Oa8YHYwW_~?3R7cZ9L`Qy2j(~DxOOkPx)6dp#R*qR&#v# z);3o$cem2p%iI#4KELZiAJX{LNBMAA=I_#Ive$<8EF%w3@qIOQq!u0$^fmE!naAtS z!b`?)v^n;uIr20RGWPV|Rd`wRm!RcRLx{ zTe62v`q(OtY+Tp+2c~x~Rs86)E)KnKyCSEjuN&xV2l|-*AA*kH6L@ zK`-Z5vfk4l9_aVC{SO=Vy>sAuQ{y`)eDs{#`p0yAujj_be_q!6`4_kOr?h=)ioB<` z-d&5XzWlHLTibf?FaERI{PxzL-TFtg{*kSJRO`#`$2FRr)+e@A8Y+jwElgq|Ebo0p!Gl9`k(E3xw<^iJU`A4 z@ zsK@?ZkNZmN^^i+fug9Hc-z3m_eZ~g`%jxpor}et{OIL3b8#O-jg^j%}lh7Kyb3yrB zeBOD;1m^UrUsw`XVQ%D;FS zdj}!E;=qPA!E(8nmG_cgcB?Tu@X}Yh7W3u6@bG8!rF3n}ni%#z;qCRICxOP7gM&V9 zvtq?Yt(Qv=d)dt^&$be)HtW(|kam8sUpJ+F~9S z0``(Q)+?EO9`%$>Svug4V$+)R^cLh_oO;{XKgQC&;<0}C44(3f9eB0`T3+97^ZxX| zL$A$zt^aYOds}}wpL=@x4+r{-1ARpEt@hCWz|4t9KljMYW$HH1*`I3q%bxFSbnV0c zl(z3K89T$`e`qk*dO1XkYu^{2IXJBK;)gyWaOc~nx$}+P`6mSK{3GH_AA7#Zj~Z1I zJA;=7;w}fXc(3i&Gn{_Te_MQF_iF-om^+_rb7aXm`W1nndnx%Lr*l8Iiv8=dXWYN8 z+kaHn>#WlUqitftKQVD0Mmkf|?;`J&o-fwfk6(=!o#7rI$xG>ZrB+Iw8a>ZtC$ze=skf6+S!`m}+*>p*{H_^#^D2Kx6xizE5; z{*Shv;WU0~qwY)g9~$7-i>DsX>4A04nKpJ`J}^+@?+LW>Z?W;Ld-9?%f2Qpfr&&Dx zT^p9$=y`Q$@fSy}-XoUF0p8wT^(9C?6ZP}ngXe=M2Wm#^*O$|0{bfPz_xw4e%{?i- zcx%q4n(BGotHoP7>$zcGTza|1Q~PTD;P4$DEEW^@RZ466yiq4*W9?^G>D?C{WY>OY zg+2T@HF$8K7Tl+0r`Wmgtov@EpFbwF=OsC(1tsTOGoB@<=YME;$UHsh&)@j(4gURh zXL!_xZ?UKSCwJ3|c1nM3cmLHC;a$SlpD8wN3DnJdBFlZ|x#3*RwccFu{D<)L`-`W} zFgec-Po2?{@7z2o^Sv+U4)pfWb*|}?ixUT)O#^+@K;L7a*ETw$zRvgF_R`zi_od;k z`a)=YbsrhSVXarcXtk;L4AURg`gQ5$^B#fbp1NnCuFeSDQ|ASmJO7`9;{tKe%zaac zn%fk5b6}nBUBM)fgB<~R;(l4cFO43J47F+B1%dYDKz*32_A@PkB!J{Ikon&p&xgd!Mze=PT7|pRW+7z1*7rQtSVr z^P7>)lak?+*IEZ2e!f{`0N>T%D;8EF&|IEO;dbF0*9B^{h#8IobI*Zn7zK`>K z&La;U4Y)&`r})FV(U+8{VA;% zAN^#hGKn z{R2&o_~O1~i~H@Jc{puKU-zIKx)+>t04^Gd;CmeQVo;ijCf0a*gZWW@p8`>|kTrYz*RZk2WS( zytW1MS@xQvo1TSWv{7D5hgg&jW1z!x*O(4+dmZAv5YS@`m5;^ZBJZVhO~$3O_lq9% zVt!e}Lx))PGTB-(jiF*?yp$j0iWl^L92;8Q%(A=JVc)1j%%S45ka6XtfFJB* zOWB96{Il)oK+NP-&pz>FJ6c@V1?(yR@QAhA>0`|n^;x!`o$*q(v%733)0ll?!e096 zoDcZqUch6HUCxEM(s@}Mv#H{PAM9UFha4=YV@G)C>vb5Hj(t6Y>~z+}a#n5AU3Wp% zO!;k(nt6CI#$8S-Ci~M~Hmug(iecINh-K{Ub9h*I(S4nWlUlqecvP@6@HuI3^V#d0 zRWqe;f9W_PwvIljeLnJQTj0$0KJE&w$*aBULhXvF`>4*xT*eO!jt}I?XWpuV-cNPA zw>H$7IU_Q(rEIC(_vfd#F4yv~ z*gIh#^ZE>^-qbdI>aW+^*ZRKbTCC1`U3HH88mF`T>GdyUp3Rd$E1n%~jCWSOFP7`x zj>@t6BBx{h*FN79XxoFjAIJN$;xr$gam^lgq z?39DPo|kMk_u-VHQ* z#GztyP{yT09_aD;lkDCWI@!A`(Cq7VT6?vHv|09*4)V*s-lu=h^bTp$ki$&uV28;E_yOg!<>HO7{`I|8zd z%XYSEY@HaS;UQ<_*<~?}Klbem)&^Sw&3DAk>^p zD}I+(ljk+TX`xN28Gi@TSdFmV-2Vx*e(o=KPu-@rtESvNYD?bWsKD78>r2hkZ{K1( z>SRaI*NX4mEN*pn`{xIpi=Ev*Pvf3CyZwC6Up|=|W5AAD z=d1NATK|&t>WtiL1N)6n4i*Ayz3=w&f2sAIStmoz#D@O$!6eY+#dOwdJ$)?3{T0Wazvt=qR{X}^UUDXZc3d#t!=78UkKLyQb;f<>G49Xv z{X=W!$leyvqesK6nAJIz*GZt!S9fsL+pPSKd*-rFjrH?=KFc3-qyOxvb-r0&?hfYj zLcq4(Z+rQ^)cVe>vs1o&wpkxc0!==wjrT9UtpWQE4Bnj|k}@9W|2*@Vp2}c{J^0rI z8}b8IugMQvdEb?f`GEc2v+%el?i8>=OpME)g^cC1*2+HnH1FbD0yY`rHx?WI*sDj& zLDA&%0spH4jZLL{Vj@kf?5odq#nb1QzxaBdkkfti@cEd4Y_?S`^z*leU$2fXt!!q? z#6;RR+An@p1{OI@haz|PC#IWb@dHTI8IiH?~Ro`qqKB#)x z(#CylY{;C}*T#50M<4$!oz11*z4)=z`p&G2wKK4{?`9v$dzSc)?`D6I`Akpcvtw(Z zW}M+8^ImqRe2?zgD7N!~n0nsgIVkYnQumdy`XFZ^aBgd@e}}Qxb9;SYET`%RKlyAd zT~Emv7d|{1K4bBKzV^oVte&^8SNnQiu_+(3ak z?|Wpf_m^+w5BtZwO){q)7xej}TO0HBiTHs}t}3?j<+H}De6eRSKjyQ>KA(T}bny#a zHm}W?&3yLG;S7}?^Y;oy8$aE}S}b6!DSJV^EcWv-{kg&?ep;Q8vU@U}-EH$R8LJyU zS1p+nAC0a25JPRW{dZ&gj?B|leC02hz?LK1xIYK>0KHWscE$TE-r6@hqE z-22*}75A`yo$Y=fkW94!%f(&p=;Q<2#I?WA*k1W3tGAz>;_99t!+Jj#a@kn_{xY$y z`Zyx8D(>=S+{c}6v^Z96u+^QZM$Fr{5KIEC;>=(2{QHkwXvYQW!)K~<1K-yiA82DP z?A5jg?1ldszwBpMpNIa87O#52!#-!^jzQI1@yG)|(0#7#t-RPjA4~#m%mts=+RMh* z+wJdH;$e^Y$?q(Cma{qA_I$>j%UB#A6^wBdBj<L6MD#VeiOdw->K_k zPxo=b7<=~K6lnYuqelm`VpKWG@&UiqawI>C

{tysv7D`NMXNeard5zQ+V*ANwoz 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 literal 0 HcmV?d00001 diff --git a/main.ml b/main.ml new file mode 100644 index 0000000..0148bc5 --- /dev/null +++ b/main.ml @@ -0,0 +1,318 @@ +open Graphics ;; + +Random.self_init () ;; + +(* Dynamic getchar function *) + +let get1char () = + let termio = Unix.tcgetattr Unix.stdin in + let () = + Unix.tcsetattr Unix.stdin Unix.TCSADRAIN + { termio with Unix.c_icanon = false } in + let res = input_char stdin in + Unix.tcsetattr Unix.stdin Unix.TCSADRAIN termio; + res + +(* Some digit display functions *) + +let rec ln10 n = match n with + | k when k < 0 -> failwith "Are you sure about that ?" + | k when k < 10 -> 0 + | k -> 1 + ln10 (k/10) ;; + +let delta i j = + if i = j then 1 else 0 ;; + +let abs n = + if n > 0 then n else -n ;; + +let draw_integer x0 y n0 len = + (* 7-seg display *) + set_line_width (max 1 (len/4)); + let n = ref n0 in + let size = ln10 (abs n0) in + let offset = ref (size*(len*11/7)/2) in + + let initial_i = ref 1 in + + if !n < 0 then begin + offset := (size+1)*(len*11/7)/2; + let x = x0 + !offset - (size+1)*(len*11/7) in + draw_poly_line [|(x-len/2, y); (x+len/2, y)|]; + n := !n * (-1); + decr initial_i ; + end; + + for i = !initial_i to (size + !initial_i) do + let x = x0 + !offset - i*(len*11/7) in + if Array.mem (!n mod 10) [|0; 4; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x-len/2, y+len); (x-len/2, y)|]; + + if Array.mem (!n mod 10) [|0; 2; 3; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x-len/2, y+len); (x+len/2, y+len)|]; + + if Array.mem (!n mod 10) [|0; 1; 2; 3; 4; 7; 8; 9|] then + draw_poly_line [|(x+len/2, y+len); (x+len/2, y)|]; + + if Array.mem (!n mod 10) [|2; 3; 4; 5; 6; 8; 9|] then + draw_poly_line [|(x-len/2, y); (x+len/2, y)|]; + + if Array.mem (!n mod 10) [|0; 1; 3; 4; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x+len/2, y-len); (x+len/2, y)|]; + + if Array.mem (!n mod 10) [|0; 2; 3; 5; 6; 8; 9|] then + draw_poly_line [|(x-len/2, y-len); (x+len/2, y-len)|]; + + if Array.mem (!n mod 10) [|0; 2; 6; 8|] then + draw_poly_line [|(x-len/2, y-len); (x-len/2, y)|]; + + n := !n/10; + done ;; + +let draw_integer_alignedleft x0 y n0 len = + (* 7-seg display 2 *) + set_line_width (max 1 (len/4)); + let n = ref n0 in + let size = ln10 (abs n0) in + let offset = ref (((size+1)*len)/2) in + + let initial_i = ref 0 in + + if !n < 0 then begin + offset := ((size+2)*len)/2; + draw_poly_line [|(x0, y); (x0+len/2, y)|]; + n := !n * (-1); + incr initial_i ; + end; + + for i = !initial_i to (size + !initial_i) do + let x = x0 + (!offset - i*len)*11/7 in + if Array.mem (!n mod 10) [|0; 4; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x, y+len); (x, y)|]; + + if Array.mem (!n mod 10) [|0; 2; 3; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x, y+len); (x+len, y+len)|]; + + if Array.mem (!n mod 10) [|0; 1; 2; 3; 4; 7; 8; 9|] then + draw_poly_line [|(x+len, y+len); (x+len, y)|]; + + if Array.mem (!n mod 10) [|2; 3; 4; 5; 6; 8; 9|] then + draw_poly_line [|(x, y); (x+len, y)|]; + + if Array.mem (!n mod 10) [|0; 1; 3; 4; 5; 6; 7; 8; 9|] then + draw_poly_line [|(x+len, y-len); (x+len, y)|]; + + if Array.mem (!n mod 10) [|0; 2; 3; 5; 6; 8; 9|] then + draw_poly_line [|(x, y-len); (x+len, y-len)|]; + + if Array.mem (!n mod 10) [|0; 2; 6; 8|] then + draw_poly_line [|(x, y-len); (x, y)|]; + + n := !n/10; + done ;; + +(* Arithmetical functions *) + +type calcul = + Val of int | + Plus of calcul * calcul | + Minus of calcul * calcul | + Exp of calcul * int | (* u^n *) + Multiply of calcul * calcul ;; + +let print_sign c x y len = match c with + | '+' -> draw_poly_line [|(x, y); (x+len, y)|]; draw_poly_line [|(x+len/2, y+len/2); (x+len/2, y-len/2)|] + | '-' -> draw_poly_line [|(x, y); (x+len, y)|] + | '*' -> draw_poly_line [|(x+len/4, y+len/2); (x+3*len/4, y-len/2)|]; draw_poly_line [|(x+len/4, y-len/2); (x+3*len/4, y+len/2)|] + | '^' -> () (* TODO *) + | '(' -> + moveto (x+len) (y+len+len/5); + set_line_width (max 1 (len/4)); + set_color black ; + curveto (x+len/2, y) (x+len/2, y) (x+len, y-len-len/5) + | ')' -> + moveto (x) (y+len+len/5); + set_line_width (max 1 (len/4)); + set_color black ; + curveto (x+len/2, y) (x+len/2, y) (x, y-len-len/5) + | _ -> () ;; + +let print_math fm x0 y0 size = + let current_x = ref x0 in + let current_y = ref y0 in + let rec aux f = match f with + | Val x -> + current_x := !current_x + size/3; + draw_integer_alignedleft (!current_x) !current_y x size; + current_x := !current_x + (size*(2 + ln10 (abs x))); + current_x := !current_x + size/3 + | Plus (a, b) -> + aux a; + print_sign '+' !current_x !current_y size; + current_x := !current_x + size*11/7; + aux b + | Minus (a, b) -> + aux a; + print_sign '-' !current_x !current_y size; + current_x := !current_x + size*11/7; + aux b + | Multiply (a, b) -> + aux a; + print_sign '*' !current_x !current_y size; + current_x := !current_x + size*11/7; + aux b + | Exp (a, n) -> + () + + in aux fm ;; + +let generate_tier_1 length inf sup = + let rec aux n = match (Random.int 2) with + | 0 -> begin + match n with + | 0 -> Val (1 + Random.int (sup-inf) + inf) + | 1 -> Val (1 + Random.int (sup-inf) + inf) + | k -> Plus (aux (k-1), Val (1 + Random.int (sup-inf) + inf)) + end + | 1 -> begin + match n with + | 0 -> Val (1 + Random.int (sup-inf) + inf) + | 1 -> Val (1 + Random.int (sup-inf) + inf) + | k -> Minus (aux (k-1), Val (1 + Random.int (sup-inf) + inf)) + end + | _ -> failwith "Never happen" + in aux length ;; + +let generate_tier_2 length inf sup mreduction = + let rec aux n = match (Random.int 3) with + | 0 -> begin + match n with + | 0 -> Val (1 + Random.int (sup-inf) + inf) + | 1 -> Val (1 + Random.int (sup-inf) + inf) + | k -> Plus (aux (k-1), Val (1 + Random.int (sup-inf) + inf)) + end + | 1 -> begin + match n with + | 0 -> Val (1 + Random.int (sup-inf) + inf) + | 1 -> Val (1 + Random.int (sup-inf) + inf) + | k -> Minus (aux (k-1), Val (1 + Random.int (sup-inf) + inf)) + end + | 2 -> begin + match n with + | 0 -> Val (1 + Random.int (sup-inf) + inf) + | 1 -> Val (1 + Random.int (sup-inf) + inf) + | k -> Plus (Multiply (Val ((1 + Random.int (sup-inf) + inf)/mreduction), Val ((1 + Random.int (sup-inf) + inf)/mreduction)), aux (k-2)) + end + | _ -> failwith "Never happen" + in aux length ;; + + +let rec pw x n = match n with + | 0 -> 1 + | 1 -> x + | k when k mod 2 = 0 -> let res = pw x (n/2) in res*res + | k -> let res = pw x (n/2) in res*res*x ;; + +(* Boi *) + +let rec eval_exp fm = match fm with + | Plus (a, b) -> Plus (eval_exp a, eval_exp b) + | Minus (a, b) -> Minus (eval_exp a, eval_exp b) + | Multiply (a, b) -> Multiply (eval_exp a, eval_exp b) + | Val x -> Val x + + | Exp (a, n) -> Val (pw (evaluate a) n) + +and eval_mult fm = match fm with + | Plus (a, b) -> Plus (eval_mult a, eval_mult b) + | Minus (a, b) -> Minus (eval_mult a, eval_mult b) + | Val x -> Val x + | Exp (a, n) -> Exp(eval_mult a, n) + + | Multiply (a, b) -> Val ((evaluate a) * (evaluate b)) + +and eval_plus fm = match fm with + | Val x -> x + + | Plus (a, b) -> (evaluate a) + (evaluate b) + | Minus (a, b) -> (evaluate a) - (evaluate b) + + | Exp (a, n) -> failwith "_Impossible" + | Multiply (a, b) -> failwith "Impossible_" + +and evaluate fm = + eval_plus (eval_mult (eval_exp fm)) ;; + +(* Core functions *) + +let update_char code buf = match code with + | k when k >= 48 && k <= 57 -> + (* Integer *) + if !buf >= 0 then begin + buf := !buf * 10; + buf := !buf + code - 48; + end + else begin + buf := !buf * (-1); + + buf := !buf * 10; + buf := !buf + code - 48; + + buf := !buf * (-1); + end; + true + | 45 -> + (* Minus sign *) + buf := !buf * (-1); true + | 127 -> + (* Delete *) + if !buf >= 0 then begin + buf := !buf / 10 + end + else begin + buf := !buf * (-1); + + buf := !buf / 10; + + buf := !buf * (-1); + end; + true + | 10 -> + (* Enter *) + let math = (generate_tier_2 6 1 100 5) in + print_math math 10 900 15; + buf := evaluate math; + draw_integer 300 300 !buf 20; + Unix.sleepf 15.0; + true + | _ -> + false ;; + +(* Main *) + +let main () = + open_graph " 1000x1000"; + set_window_title "Math"; + + let buffer = ref 0 in + + try + while true do + let ch = get1char () in + let chint = Char.code ch in + + if update_char chint buffer then begin + open_graph " 1000x1000"; + set_window_title "Math"; + + draw_integer 300 300 !buffer 20; + end; + + Unix.sleepf 0.025 + done; + with + | exn -> close_graph (); raise exn ;; + +main () ;; + +(* ocamlfind ocamlc -linkpkg -package unix -linkpkg -package graphics main.ml *) \ No newline at end of file