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%20Core%20Module%20(%60pyrf.core%60)%0A%0A%20%20%20%20The%20core%20module%20provides%20fundamental%20data%20structures%20used%20throughout%20pyrf.%0A%0A%20%20%20%20%23%23%20GoalGrid%0A%0A%20%20%20%20%60GoalGrid%60%20is%20the%20foundational%20data%20structure%20that%20represents%20all%20possible%20goal%20combinations%0A%20%20%20%20between%20home%20and%20away%20teams.%20It%20creates%20two%20DataFrames%3A%0A%0A%20%20%20%20-%20**home**%3A%20Entry%20%60%5Baway_goals%2C%20home_goals%5D%60%20%3D%20home_goals%0A%20%20%20%20-%20**away**%3A%20Entry%20%60%5Baway_goals%2C%20home_goals%5D%60%20%3D%20away_goals%0A%0A%20%20%20%20Both%20DataFrames%20use%20consistent%20naming%3A%0A%20%20%20%20-%20%60index.name%20%3D%20%22away%22%60%20(represents%20away%20team%20goals)%0A%20%20%20%20-%20%60columns.name%20%3D%20%22home%22%60%20(represents%20home%20team%20goals)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20pyrf%20as%20rf%0A%0A%20%20%20%20%23%20Create%20a%20small%20GoalGrid%20for%20demonstration%0A%20%20%20%20grid%20%3D%20rf.GoalGrid(n%3D5)%0A%20%20%20%20return%20grid%2C%20rf%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%20The%20%60home%60%20DataFrame%0A%0A%20%20%20%20Each%20cell%20contains%20the%20number%20of%20home%20goals%20for%20that%20position%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid)%3A%0A%20%20%20%20print(grid.home)%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%20The%20%60away%60%20DataFrame%0A%0A%20%20%20%20Each%20cell%20contains%20the%20number%20of%20away%20goals%20for%20that%20position%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid)%3A%0A%20%20%20%20print(grid.away)%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%20Goal%20Difference%20Matrix%0A%0A%20%20%20%20By%20subtracting%20away%20from%20home%2C%20we%20get%20the%20goal%20difference%20at%20each%20position.%0A%20%20%20%20Positive%20values%20indicate%20home%20winning%2C%20negative%20values%20indicate%20away%20winning%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid)%3A%0A%20%20%20%20goal_diff%20%3D%20grid.home%20-%20grid.away%0A%20%20%20%20print(goal_diff)%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%20By%20adding%20home%20and%20away%2C%20we%20get%20the%20total%20goals%20at%20each%20position%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(grid)%3A%0A%20%20%20%20total_goals%20%3D%20grid.home%20%2B%20grid.away%0A%20%20%20%20print(total_goals)%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%20Default%20Grid%0A%0A%20%20%20%20The%20%60GoalGrid.default()%60%20class%20method%20creates%20a%20standard%2011x11%20grid%20(0-10%20goals)%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(rf)%3A%0A%20%20%20%20default_grid%20%3D%20rf.GoalGrid.default()%0A%20%20%20%20print(f%22Default%20grid%20size%3A%20%7Bdefault_grid.n%20%2B%201%7D%20x%20%7Bdefault_grid.n%20%2B%201%7D%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
29ae6d9fa840a700131a44136187d28a