import%20marimo%0A%0A__generated_with%20%3D%20%220.18.4%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20GoalGrid%20Interactive%20Demo%0A%0A%20%20%20%20Explore%20how%20%60GoalGrid%60%20represents%20goal%20combinations%20between%20home%20and%20away%20teams.%0A%20%20%20%20Adjust%20the%20grid%20size%20to%20see%20how%20the%20matrices%20change.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20grid_size%20%3D%20mo.ui.number(start%3D3%2C%20stop%3D20%2C%20step%3D1%2C%20value%3D10%2C%20label%3D%22Grid%20Size%20(n)%22)%0A%0A%20%20%20%20mo.hstack(%5Bgrid_size%5D%2C%20justify%3D%22start%22)%0A%20%20%20%20return%20(grid_size%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(grid_size%2C%20mo)%3A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20%23%23%20Grid%20Configuration%0A%0A%20%20%20%20-%20**Size**%3A%20%7Bgrid_size.value%20%2B%201%7D%20%C3%97%20%7Bgrid_size.value%20%2B%201%7D%20(0%20to%20%7Bgrid_size.value%7D%20goals)%0A%20%20%20%20-%20**Total%20cells**%3A%20%7B(grid_size.value%20%2B%201)%20**%202%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid_size)%3A%0A%20%20%20%20import%20pyrf%20as%20rf%0A%0A%20%20%20%20grid%20%3D%20rf.GoalGrid(n%3Dgrid_size.value)%0A%20%20%20%20return%20(grid%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Goal%20Difference%20Matrix%0A%0A%20%20%20%20Shows%20%60home%20-%20away%60%20at%20each%20position.%20The%20main%20diagonal%20(0)%20represents%20draws.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid%2C%20mo)%3A%0A%20%20%20%20goal_diff%20%3D%20grid.home%20-%20grid.away%0A%0A%20%20%20%20mo.ui.table(goal_diff%2C%20selection%3DNone)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Total%20Goals%20Matrix%0A%0A%20%20%20%20Shows%20%60home%20%2B%20away%60%20at%20each%20position.%20Anti-diagonals%20have%20equal%20totals.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid%2C%20mo)%3A%0A%20%20%20%20total_goals%20%3D%20grid.home%20%2B%20grid.away%0A%0A%20%20%20%20mo.ui.table(total_goals%2C%20selection%3DNone)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(grid_size%2C%20mo)%3A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20%23%23%23%20Statistics%0A%0A%20%20%20%20%7C%20Metric%20%7C%20Value%20%7C%0A%20%20%20%20%7C%3A------%3A%7C%3A-----%3A%7C%0A%20%20%20%20%7C%20Min%20goal%20difference%20%7C%20%7B-grid_size.value%7D%20%7C%0A%20%20%20%20%7C%20Max%20goal%20difference%20%7C%20%7B%2Bgrid_size.value%7D%20%7C%0A%20%20%20%20%7C%20Min%20total%20goals%20%7C%200%20%7C%0A%20%20%20%20%7C%20Max%20total%20goals%20%7C%20%7B2%20*%20grid_size.value%7D%20%7C%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
a974a4cb76f7b2c039dfab98edad610b