From 8b907c35713c574a5755079dbfca715bd6b2dcf4 Mon Sep 17 00:00:00 2001 From: kated Date: Tue, 2 Jun 2026 10:25:31 -0400 Subject: [PATCH] added sudoku logic, trying to get board to print --- .envrc | 1 + __pycache__/board.cpython-311.pyc | Bin 0 -> 3728 bytes __pycache__/board_model.cpython-311.pyc | Bin 0 -> 1838 bytes __pycache__/border.cpython-311.pyc | Bin 0 -> 2337 bytes __pycache__/cell.cpython-311.pyc | Bin 0 -> 1033 bytes __pycache__/puzzle.cpython-311.pyc | Bin 0 -> 850 bytes board.py | 89 ++++++++++++++++++++++++ border.py | 55 +++++++++++++++ cell.py | 25 +++++++ poetry.lock | 81 +++++++++++++++++++++ sudoku.py | 28 ++++++++ 11 files changed, 279 insertions(+) create mode 100644 .envrc create mode 100644 __pycache__/board.cpython-311.pyc create mode 100644 __pycache__/board_model.cpython-311.pyc create mode 100644 __pycache__/border.cpython-311.pyc create mode 100644 __pycache__/cell.cpython-311.pyc create mode 100644 __pycache__/puzzle.cpython-311.pyc create mode 100644 board.py create mode 100644 border.py create mode 100644 cell.py create mode 100644 poetry.lock create mode 100644 sudoku.py diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..4a96c22 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +source .venv/bin/activate \ No newline at end of file diff --git a/__pycache__/board.cpython-311.pyc b/__pycache__/board.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c8e470548c592f60844a92303cd01204716dfda GIT binary patch literal 3728 zcma)8&2JmW6`%bgm--^5B_&#-6;g_A(QzcFR$v#9)H-q!0}T|r3VIM?ENCtz)8>b? zOU1TA0y+dJTM#G(u+ScIpn=wr;arNgK>rMqAYftv0|WvG(2a(CD17RBvs`M|ij&Un z{&qgzym|BH_h#n1!NEQP>GqG4clTX{{D1{3@!ibPJY@EXLKG%N*6`1!m^8b_GK3|c z5{3JQDEwoVkf-pOX^m5uRT32rvA7at41PJ0O2xaa^v84yN56v1K1q-@Mj>mg!hA!Z zHw(z4<~2d#0bPm!=vG{SqT&YKq9J^gjj2l9QiS@@WDdTg8vtN3D9hQ}74|Wdp7v_4 zk;fqS6h1TMiQH@3AW-T}NFgvJx8fKK{6!@Aj(!WUPq4$Si2}^xjX{~8A9Rl`g+Mv$ z(2bLzx<`(6^Qar71(0S`H0=p_!W!)CMT3zwEQiCdug~4drW14bV!4D8%WTYDOKA6U z+0D6h>|QdnA>U8t?#S`1l9)^1kAE7$$vB;M^t-u)k`ik(-u^r2e^QOH017!ArNLBcsOis2kDA(hwUHVNq z%3fwA${PLhdNP%g=^`5gaWw%vk?E9GKWK2wcO#KWsL*cB*DB-cXcqurzT&_$G1w4; zb#c5Yj@QI-T63x)o~nxzO>v@Ty(j04>qh6?fQ%VFGUUvZ!trZ0+hM7&tK_#=8H6Z zk>~zkEA$S&lT+U&54dkL2dmA=4?1o>F#3`Jyh3=%xrRqx5rEDy2&ho7hB~?6=vti0 zQ3+t*xiOzy;!Ci^Hgf+22_kffdopiZFonHG7he@|iPzaUoLl&kV_)#;{m_8`)b-m6LPwI(L3oPMSJx%G57;=j-luwNhX`HMNz#pqTm;gLjLJPU4t zeT1{efZah~5fzTwRpN-E6Q|>?P=R-7;E&_L9us-4>tc?9GZ!3tI?pKF4!9jqAfzDV zSx4DrA2%=L1!x7+otKDfZL;Y?h^^8mt?CiCcU$q@HRWoMwv z7h0MHF|7#z0oy-Rezy|Umn*Zi{xG~PDOmpS#qel(YcE&{b_nY^O`&+T<&{bg_2E)p zUv7HC)#ZlwT+Mr~H5Mvwm$!i-zL}1T_{a3f-W7doZ?@=eNu$RFRC&MZK8QT(uMb~n z4qxaH-V>ovy!t#au3xTxdJuc`yL#YaGjI{<35@_{#^mVD%0iW?{H7XjNYR=UZB2yr z5Ai{2o=0j%9MtT^Cd{%&&FdyL|F0viz~q@-O4K~_CD5tB7C1X0azHLCDL^qNft*`2 zP|3F4+ctXMDF??Y57fH>q$O3Gerp^8#{mSE;5-J@%Rpmt7iUS6Gdvcc4z$_E?~1|C zd04C65K=JkenwmArh@lC*UA@%=;cE^P3ivi39xkv3I>l?v+fxKS1cu)Hr(2s?e+Ck zLOqYtl;3zwi@GSk4T0`z#|MwW1I;z{42WoGijC4L_OtDO)}7)bl>H|FklN>e<_kA` z;ks|C>6SCxVhH7F6sMjGL&kTj)a@#BYJ$Td0z*Sh5jXqgU zXO-;~<_BbXYde-QThvjQqdJa&n+x^0=~Z-$idS2z&b-PZi&O;kqLu;J?L8fy6ClES z(8miQ2uKSCh6Ffcdl2>re(-|@qa&E>!OWNt=#Z0Ont}#Id36qc29I|>^Ugtya~k|w vTrj7-q+SMTB$)OkK!;-(rbPyK>C+~Gn)B_rRv88?_-TAe>tDU4mD>0}Bm(m) literal 0 HcmV?d00001 diff --git a/__pycache__/board_model.cpython-311.pyc b/__pycache__/board_model.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a9de43b5ac48369d9db7134315c5c06bbe2c713 GIT binary patch literal 1838 zcmbVM&ubGw6rS15rrWg9YOzLJOB6(cm^FCtQVNRDlLaYW0y3;S({$}78)tW04GKN< z(1QmHLgP)L)`sf;qM%R~JbCgKiKm`?Z`a+nrV2Wn{WA03{P^DY=Iz^jK1ZOP{5<(! zg%a`=2T9BP>hy}x*&qs;A)KrdPPY_7cHoU$m2hQ_lvFD*;D6%nm0_?!1gTO^stTv8 zq^fcSFvE48S*2BtYcR_4EZ_hifSm@zk-31oi@{CTl>D~Kg<}D?v>`7Q-rgp_2Jl%W z{sBK%wqUfAT5gdon70FO+@27Y`ndYfYm>-`KalK5`cFu-1H~Ys%xqr(qp-Ml7GQ(a z$P;o;e+mNCD5ourkagwR;2h~F-|&QQg8&^Eg-ZEqNSTKWip9NIW5KNpW6|^lHybtM zmhcvRw`tVPMY~aB%eKG3ED+DAFIyEOXxRQWqbc17!tz3Gx7Nv2~myh(r+@}W?Pf3GU-^X<|0otLLlQx9ek zsRR6v8ZwKkQ45Jz_LmAWkA`Ca|Hv5=lyDw1K19D)C))J6*RHGw@fc7Zhj}F})FenO zLfvznz_;B-m~95FmLo#d6Mm@8+m8hA&@kf(XWql>Rg9R0dZJtF%pWDie0nngD`Yp4 z@4dEdcJy~TDEF~Y`BbQ^WuE1CBZ_at_KnvIn+rhg$6w zU2r?7TWQU}gd?~}tb>S6Ns*_aALh6{KW|%s<3B!_=rC_dfz)F0Ta$gn4*Bt($O#0@ zqJ=3>+TU4ZViu}&mqXQZolsjcoj`cFLlIh>+q~^Du-jNeOX3JJhy2k+-6w+tlJ-|J z^7jM{!M0eXj_^fmqECSX-Vr!pKmOSgmFK`x((zU{;0wT5m}B?>2psGWGxjhro!BD_ zxOg0)h;R|%5<*mhC}>=Jc&{V^M&WUQmGtQ-PE zo#PLou}gHa$Y^Ad)tE(2V_%U)UgH1-jRzDp0oIFw_?cm9x*725dMdBB*l{D|;@~+R z1K1@F%$xnt?g(KB6qNA`z+I9iB?x_q(by7%vBYUy34&OH5SB!{?RtX2 zVH{xt7I&t}L-OrhsmCFeQ*&WbQ*3leQ=A@$(}aCseT)25_F>iA_DY6yyN@H{NiN%M zYrew*4$`Tyj=8{&P*?nn6Vk;0!H%XsFW>Foc4+kcEo;ui<7uf&JG373!{z+lc|{9# zx7*f2M^u=mH5X;q)BliN;cl{`D{C-Usdp~Tu>}XpQml9W2-Emz7~u*6eu+g)^k0A2 zZoYSp@Y6n$5O5^M1%e6HNDstRp`hnAlWN1zP3w8v3izD9WW$_nI%5YM)T=;zZrHZ5 z5(sNq&CUd3M#nJ|$;|fvEUXz=@u)QFMW1TwQ1_HZ39~kan?<8jjitr<1&n~=6}?gx z5Bmqo{K3FrSvc(LFLMV}hh5tGJ46QG-?sO@syurAjTasFqvLhLg+HNCo;{QXzn}YV z?#Ho8wDQ0m_T;!P$31D%mnLh{c~d%kq9M(^LFSGTRb2bHnc zPuzre{bMhB+mGHppJb@A>cSS2zC7tk313Roq{IoykSkQLyQ}AsG|aH}7IxMuTxF>$ zov_Rx)y!#AhFqq4%}uzvCr|tGv?nEfDOr<}rzo0~_YcOX?fw7& literal 0 HcmV?d00001 diff --git a/__pycache__/cell.cpython-311.pyc b/__pycache__/cell.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e18b130a0ea51cae1c34cf5e09fea60cc6d53aad GIT binary patch literal 1033 zcmZuvzi-n}5WeRhiCdB)2(8)(wHXjnmRg8`1tB3o-6A2xlI6+xxs6*V4$ls0B1g*5 zAp-+UO%Zbu>i@yc7I}(>`I)CGEsJy_((Caa4Gcwxld8&?4K5JWSW@(Y(cAB(6KK_|AHvW znOK#6J63HU8~b2+Ehjdbe&B|#--y*9l<|^Xv!rE*jw~Co7C7FnBuPmFk+%@y>^t9* zf*+<%CuWB+>jVaFmgaW3W7hn-V;)$cBdo@r`O*mvLceL&tpm5Q$J=gLM`mzlT@q!~g&Q literal 0 HcmV?d00001 diff --git a/__pycache__/puzzle.cpython-311.pyc b/__pycache__/puzzle.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..22573a2c9e8d6a157864e45408ddb7ff2d0d7725 GIT binary patch literal 850 zcmZut&59F25bmBIwvCx(b@yOcViNRVE<1>ay@)3<2$GApT$*vZ%_fwDl_AdXs?p_amMOJ&MAYH3V` z8Z9Ob?r~v-{DqwZLWR0H>n}<95O=|*!f+{b(FbLyTxC>wR61iglRSbEy!#hF&uqQJ zSCV^6hG+~tlbj2~DqsMm8S8I+OE4Hk4?>tDzSG`JL<8T6!jA97hAlXxXg?YZ93B@1 zcm4OATJSQgtFabv=WVRDEtd-&m;>2CwOYM-X`c8lH+xXaEU#@o=Rq&@`=)F4I$oQe zcES^C`;43Jsr}fDyiWMU>rLNB+NBTud-$j=1.1.0", markers = "platform_system == \"Windows\""} +wcwidth = ">=0.2.14" + +[package.extras] +docs = ["Pillow", "Sphinx (>3)", "sphinx-paramlinks", "sphinx_rtd_theme", "sphinxcontrib-manpage"] + +[[package]] +name = "jinxed" +version = "1.3.0" +description = "Jinxed Terminal Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_system == \"Windows\"" +files = [ + {file = "jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5"}, + {file = "jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf"}, +] + +[package.dependencies] +ansicon = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "retro-games" +version = "1.1.3" +description = "A simple framework for Terminal-based games" +optional = false +python-versions = "<4.0,>=3.10" +groups = ["main"] +files = [ + {file = "retro_games-1.1.3-py3-none-any.whl", hash = "sha256:4bdd27241b5cb3ee72e69a042d301ff58df2a2ade7e3c29400a538fa54e30148"}, + {file = "retro_games-1.1.3.tar.gz", hash = "sha256:4f91ff725e551820aa4e30c12c0264e2da41967ed34252122b7136bc2a8ed311"}, +] + +[package.dependencies] +blessed = ">=1.20.0,<2.0.0" + +[[package]] +name = "wcwidth" +version = "0.3.5" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "wcwidth-0.3.5-py3-none-any.whl", hash = "sha256:b0a0245130566939a24ab8432e625b38272fbc62ecbe5aecbdcb50b8f02ce993"}, + {file = "wcwidth-0.3.5.tar.gz", hash = "sha256:7c3463f312540cf21ddd527ea34f3ae95c057fa191aa7a9e043898d20d636e59"}, +] + +[metadata] +lock-version = "2.1" +python-versions = ">=3.10,<4.0" +content-hash = "03cc38c17964eb2c920ecf014cbfcf966c0c719418a127947b33382f086a0a6e" diff --git a/sudoku.py b/sudoku.py new file mode 100644 index 0000000..90f61e5 --- /dev/null +++ b/sudoku.py @@ -0,0 +1,28 @@ +from retro.game import Game + +from board import Board +from border import Border + + +def main(): + + board = Board() + + board.generate() + + agents = [] + + agents.extend(Border.create_borders()) + agents.extend(board.cells) + + game = Game( + agents, + {"score":0}, + board_size=(15, 25) + ) + + game.play() + + +if __name__ == "__main__": + main() \ No newline at end of file