From 7670c78cbafc658709e95c3b1ab7ef9ccd4226ec Mon Sep 17 00:00:00 2001 From: Alexandre Date: Mon, 20 May 2024 14:28:31 +0200 Subject: [PATCH] Scrolling --- a.out | Bin 264723 -> 265041 bytes pretty_printing.cmi | Bin 2464 -> 2360 bytes pretty_printing.cmo | Bin 12790 -> 13198 bytes pretty_printing.ml | 43 ++++++++++++++++++++++++++++++------------- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/a.out b/a.out index a4343015c6e0e8f7be6718c8e0d20f19611731e2..02fabc25bbc183dfc006b2772dbb0037978a196a 100755 GIT binary patch delta 988 zcmZ{ie@IhN6vyv&KkCBgeeXT@+;h%-_xSsD?+0`j zecUHK23-#yRP;U2B^M4b#%c*IQ9*POM~R(8o5a{|(rrX0kxZN*mQ+nzW8cAVgRZqKFW~O@ztk9O)s#g4xfc)Ebd#<*FTP>K4aWsuPv1 zCq(wO6^grF`p54P_RiH<{_fCL{tX|QB*Ve@NCXY(7D9Ml{!fG}s}YtT$3VW3AIjQk zE{2CLRI9WOf-3Q=O6w53_;v#Jn~yJ2?G#^hig-Yg>kgf@kS<2n0a|00o+o1E zB=kz37xBj=%=5cA^MEc8MAsB-<{_nH3KmTIlZr>i4K&e^MR^rFs zkY~@_Ve~c_U1v{u^Ng7}V(#%ayPWk#r`w$tdSkIzCihuVOm(rQTDQyDy!=hBO7*y1 zu0~__-x;=q;WYZf;KrII7}1&?WrbFIk==^%Ds1G#N}39dTo;_R^qC#rx+;;9OQ9#@ znkHHIbo$qPlPzh%SrgZIM(x{x=~~VGf`@aq;xf^$%vN0NAd$<;?InzvKH2gs@)=7% g?>JmiK+XT$T5hHNXq9|otj>COc5ZHNWmZnsACfESVE_OC delta 635 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 TC#9+3lxBT_@EH2E#A5#iK7+=l delta 3695 zcmZ8k4Rn*`70#1<-&shTCe8m(X&YO9M>kJ0N14rDO%^01!Rp?Yfb|?jlGu2~` z6p~@sD4ytHr=_GS`#7gt*ftoF^eXgLS~gn6v{YIHXywrok2tOG=&_Ps>uLRfmXTHg zEumLv^`~Vy_Jt+ogqB)c{GM_6zmL_IY(W13OqPaBoSW{w}hBj?gXK6VjA=i3f}o!X9x>g*<24{Dx(8OfNYV73OOcMa4w) zIm=)QEZq#I!lE&#MV^6y4|#Ms64xVd4TECjZDKGR$-JA4%8_@65}>-ZA1x2g3NNJ; z*1@n7o?>{aG-bWSHC!CBRnLi3dLkI|IP5>Lo#s)S~{^iS554v8PpHAxCIT!?l_ zV!Ed6mUvD!P_@v!ApH%Rl9sqBs~I6Q`=o!Vro19?TUK+g&>WKfm0D6cERD5U(S1U6 zT>3X?$_a_LvZjAqFYnmmH3UEh|Bc8B;L}LUWqT{L|mu8=tL5pi<)vps{Wi)aiufo-HA%(qkzVQCO6adDh9#uB7D!n*QKc#ERBo$cRhh5UY5Kl6uWrC3S>!E2MEcrxSyuVx?qWC*yHxoXg4dqOFn4 zA4#@W8kcf1y=ohYq5SEc>LuMKsrxvm)9bcPGM|y`X=(gDC)4ZpjAXtf*-mMEo0I8< z+bfyxNcLPZW4X*ZonE?^B$H3Nm!;trV^wgRx>-4i0v;h_I|_J$j49ae=RV&FTZF-G z*k*I9cEU!jN+a+BY&#gd2;1ItI!QBd0Jc}zwI4Q()m^ZiXU}2S{>tD8Y&V!X1-qF& zCt)AL;56*jOuY&F=>H!j`drx#_X)Vg8*x<{7byk%8s2gt3Hv5S@4}uIn^X6Mhr+H; z=^7O3mtKd$ReV+}3fJqZ%AqI}iB#~XOFR)>5N~cspm0CyQYfVPrgV40L2(Iefuo4P zP?k3|HfHomM|t*ChsZ~d7h9g;9eP0zz){O#o`7SK045ax1RlMxb^JI;nuVN1nx5&CkA&9g9^BNIpB4;Z?k6^JZ1*> z!eeJpQV!29zHM1}Xc(Tfjw=P;&x!y%U8%9doJkLb&t&DH8W1e2peFEKVp#<|9}-ZU z@LXfZM0gbjQ{Z(mh`?J)K<|JRZSykkuy-J{b?{abP+o&~G&>%IcRYhCc<0ifP_a(H zE9$A5y5ZH|vr+JJj;7b))z5tc-kYo$4_^_3bMOse@HBkl2-P$dK0Qtkd~4XV3%*SZ z>fzhZ-~;%&8Fa#@5lE`0r{E9gYURH_S1W&nr5oU%L_k>re_gg%{>EIf{BhR(68?nH zt%hGe{s{bgnK=%>-WLbp7so4$;TNY zu5k#~GO!>xgFt4qTU#4eMi<5s2wo%SV4nBb^0tOJg156pDQYK9AN7T?Od}Lg31n9l zoe_~u|3#6wS(t*@5osLGQlnL#OL zfB8?Jzo?!|~Q;lm|upmaU4mWq4UUKv+^Fh~+UTgh_i&Ous8td$C4?lWYE9*DRnSNr- lR?EO|-hMnaad>6mOu9pHrB%h4R!s+KttR_E`W}iz{s$ZkdZqvX diff --git a/pretty_printing.ml b/pretty_printing.ml index 23bfcd3..b7d1450 100644 --- a/pretty_printing.ml +++ b/pretty_printing.ml @@ -130,7 +130,7 @@ let draw_line_bresenham mat cls origin x1 y1 x2 y2 cutoff = done;; let display mat cls = - let colors = [|"\027[40m"; "\027[41m"; "\027[42m"; "\027[43m"; "\027[44m"; "\027[45m"; "\027[46m"; "\027[47m"; "\027[100m"; "\027[101m"; "\027[102m"; "\027[103m"; "\027[104m"; "\027[105m"; "\027[106m"; "\027[107m"|] in + let colors = [|"\027[0m"; "\027[41m"; "\027[42m"; "\027[43m"; "\027[44m"; "\027[45m"; "\027[46m"; "\027[47m"; "\027[100m"; "\027[101m"; "\027[102m"; "\027[103m"; "\027[104m"; "\027[105m"; "\027[106m"; "\027[107m"|] in for i = 0 to (Array.length mat -1) do for j = 0 to (Array.length mat.(i) -1) do if cls.(i).(j) = 0 then @@ -223,18 +223,35 @@ let extremely_fancy_graph_printing g size wmult mode = (* show the image *) ignore (Sys.command "clear"); if mode = "SPECIFIC" then begin - Printf.printf "Enter the node you want to highlight (type -1 to show all; or -2 to exit)\n"; - ignore (Sys.command "clear"); - let nd = ref (-2) in - - nd := Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity; + let halt = ref false in + while !halt = false do - if !nd >= 0 && !nd < Array.length g then - display_specific px cls (!nd+1) - else if !nd = -1 then - display px cls - else - () + Stdlib.print_endline "Enter the node you want to highlight (type -1 to show all; -2 to exit; -3 to stream all)"; + let nd = ref (-2) in + + nd := Scanf.bscanf Scanf.Scanning.stdin "%d\n" identity; + ignore (Sys.command "clear"); + + if !nd >= 0 && !nd < Array.length g then + display_specific px cls (!nd+1) + else if !nd = -1 then + display px cls + else if !nd = -2 then + halt := true + else if !nd = -3 then begin + for i = 0 to (Array.length g -1) do + ignore (Sys.command "clear"); + display_specific px cls (i+1); + Stdlib.print_endline "_"; + ignore (Sys.command "sleep 1"); + done; + display px cls; + Stdlib.print_endline "_"; + ignore (Sys.command "sleep 1"); + end + else + () + done end else display px cls ;; @@ -244,6 +261,6 @@ let gr = [|[|3; 5; 7|]; [|0|]; [|1; 7; 8|]; [|2; 6|]; [|0; 1; 3|]; [|6; 7|]; [|0 (*print_mat gr ;;*) -extremely_fancy_graph_printing gr 44 4 "EVERYTHING" ; +extremely_fancy_graph_printing gr 44 4 "SPECIFIC" ; (* ocamlfind ocamlc -linkpkg -package unix pretty_printing.ml *) \ No newline at end of file