diff --git a/__pycache__/common.cpython-310.pyc b/__pycache__/common.cpython-310.pyc new file mode 100644 index 0000000..1a9fae7 Binary files /dev/null and b/__pycache__/common.cpython-310.pyc differ diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc new file mode 100644 index 0000000..ff4c9ab Binary files /dev/null and b/__pycache__/main.cpython-310.pyc differ diff --git a/__pycache__/settings.cpython-310.pyc b/__pycache__/settings.cpython-310.pyc index 99c98e7..854bac3 100644 Binary files a/__pycache__/settings.cpython-310.pyc and b/__pycache__/settings.cpython-310.pyc differ diff --git a/assets/learning/train/carrot/44deaa8d86.jpg b/assets/learning/train/carrot/44deaa8d86.jpg deleted file mode 100644 index 5b255da..0000000 Binary files a/assets/learning/train/carrot/44deaa8d86.jpg and /dev/null differ diff --git a/assets/learning/train/carrot/44deaa8d86asdasdasd.jpg b/assets/learning/train/carrot/44deaa8d86asdasdasd.jpg deleted file mode 100644 index 236c7fd..0000000 Binary files a/assets/learning/train/carrot/44deaa8d86asdasdasd.jpg and /dev/null differ diff --git a/assets/learning/train/carrot/carrot102.png b/assets/learning/train/carrot/carrot102.png deleted file mode 100644 index e69c41d..0000000 Binary files a/assets/learning/train/carrot/carrot102.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot150.png b/assets/learning/train/carrot/carrot150.png deleted file mode 100644 index 8a66485..0000000 Binary files a/assets/learning/train/carrot/carrot150.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot158.png b/assets/learning/train/carrot/carrot158.png deleted file mode 100644 index 04fe60f..0000000 Binary files a/assets/learning/train/carrot/carrot158.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot184.png b/assets/learning/train/carrot/carrot184.png deleted file mode 100644 index 060651c..0000000 Binary files a/assets/learning/train/carrot/carrot184.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot226.png b/assets/learning/train/carrot/carrot226.png deleted file mode 100644 index 70d892c..0000000 Binary files a/assets/learning/train/carrot/carrot226.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot228.png b/assets/learning/train/carrot/carrot228.png deleted file mode 100644 index e6a72fe..0000000 Binary files a/assets/learning/train/carrot/carrot228.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot238.png b/assets/learning/train/carrot/carrot238.png deleted file mode 100644 index 74424ac..0000000 Binary files a/assets/learning/train/carrot/carrot238.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot283.png b/assets/learning/train/carrot/carrot283.png deleted file mode 100644 index 41251d5..0000000 Binary files a/assets/learning/train/carrot/carrot283.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot289.webp b/assets/learning/train/carrot/carrot289.webp deleted file mode 100644 index e9a2d30..0000000 Binary files a/assets/learning/train/carrot/carrot289.webp and /dev/null differ diff --git a/assets/learning/train/carrot/carrot295.webp b/assets/learning/train/carrot/carrot295.webp deleted file mode 100644 index 5bcea33..0000000 Binary files a/assets/learning/train/carrot/carrot295.webp and /dev/null differ diff --git a/assets/learning/train/carrot/carrot30.png b/assets/learning/train/carrot/carrot30.png deleted file mode 100644 index 7461e25..0000000 Binary files a/assets/learning/train/carrot/carrot30.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot458.png b/assets/learning/train/carrot/carrot458.png deleted file mode 100644 index a9ecadf..0000000 Binary files a/assets/learning/train/carrot/carrot458.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrot72.png b/assets/learning/train/carrot/carrot72.png deleted file mode 100644 index b0d8d60..0000000 Binary files a/assets/learning/train/carrot/carrot72.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground103.jpeg b/assets/learning/train/carrot/carrotintheground103.jpeg deleted file mode 100644 index 9059593..0000000 Binary files a/assets/learning/train/carrot/carrotintheground103.jpeg and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground112.png b/assets/learning/train/carrot/carrotintheground112.png deleted file mode 100644 index 3b113f7..0000000 Binary files a/assets/learning/train/carrot/carrotintheground112.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground132.png b/assets/learning/train/carrot/carrotintheground132.png deleted file mode 100644 index 4200f93..0000000 Binary files a/assets/learning/train/carrot/carrotintheground132.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground187.png b/assets/learning/train/carrot/carrotintheground187.png deleted file mode 100644 index 17015e6..0000000 Binary files a/assets/learning/train/carrot/carrotintheground187.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground188.png b/assets/learning/train/carrot/carrotintheground188.png deleted file mode 100644 index 17015e6..0000000 Binary files a/assets/learning/train/carrot/carrotintheground188.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground205.png b/assets/learning/train/carrot/carrotintheground205.png deleted file mode 100644 index ff12946..0000000 Binary files a/assets/learning/train/carrot/carrotintheground205.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground267.png b/assets/learning/train/carrot/carrotintheground267.png deleted file mode 100644 index 97b4329..0000000 Binary files a/assets/learning/train/carrot/carrotintheground267.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground275.png b/assets/learning/train/carrot/carrotintheground275.png deleted file mode 100644 index b6b4d3b..0000000 Binary files a/assets/learning/train/carrot/carrotintheground275.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground285.png b/assets/learning/train/carrot/carrotintheground285.png deleted file mode 100644 index 3a8f710..0000000 Binary files a/assets/learning/train/carrot/carrotintheground285.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground347.png b/assets/learning/train/carrot/carrotintheground347.png deleted file mode 100644 index 2de06aa..0000000 Binary files a/assets/learning/train/carrot/carrotintheground347.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground36.png b/assets/learning/train/carrot/carrotintheground36.png deleted file mode 100644 index 8f3b444..0000000 Binary files a/assets/learning/train/carrot/carrotintheground36.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground64.png b/assets/learning/train/carrot/carrotintheground64.png deleted file mode 100644 index 278e7d9..0000000 Binary files a/assets/learning/train/carrot/carrotintheground64.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground68.png b/assets/learning/train/carrot/carrotintheground68.png deleted file mode 100644 index 40bd9ee..0000000 Binary files a/assets/learning/train/carrot/carrotintheground68.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrotintheground91.png b/assets/learning/train/carrot/carrotintheground91.png deleted file mode 100644 index 4cc6436..0000000 Binary files a/assets/learning/train/carrot/carrotintheground91.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrots11.png b/assets/learning/train/carrot/carrots11.png deleted file mode 100644 index dbea711..0000000 Binary files a/assets/learning/train/carrot/carrots11.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrots153.png b/assets/learning/train/carrot/carrots153.png deleted file mode 100644 index 2f7919f..0000000 Binary files a/assets/learning/train/carrot/carrots153.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrots166.png b/assets/learning/train/carrot/carrots166.png deleted file mode 100644 index 7461e25..0000000 Binary files a/assets/learning/train/carrot/carrots166.png and /dev/null differ diff --git a/assets/learning/train/carrot/carrots38.png b/assets/learning/train/carrot/carrots38.png deleted file mode 100644 index aedceb6..0000000 Binary files a/assets/learning/train/carrot/carrots38.png and /dev/null differ diff --git a/assets/learning/train/carrot/smallcarrot11.png b/assets/learning/train/carrot/smallcarrot11.png deleted file mode 100644 index 50fc687..0000000 Binary files a/assets/learning/train/carrot/smallcarrot11.png and /dev/null differ diff --git a/assets/learning/train/carrot/smallcarrot35.png b/assets/learning/train/carrot/smallcarrot35.png deleted file mode 100644 index fc3f55d..0000000 Binary files a/assets/learning/train/carrot/smallcarrot35.png and /dev/null differ diff --git a/assets/learning/train/carrot/smallcarrot44.png b/assets/learning/train/carrot/smallcarrot44.png deleted file mode 100644 index 5f70ed3..0000000 Binary files a/assets/learning/train/carrot/smallcarrot44.png and /dev/null differ diff --git a/assets/learning/train/potato/potato107.png b/assets/learning/train/potato/potato107.png deleted file mode 100644 index 749c563..0000000 Binary files a/assets/learning/train/potato/potato107.png and /dev/null differ diff --git a/assets/learning/train/potato/potato12.png b/assets/learning/train/potato/potato12.png deleted file mode 100644 index be9893f..0000000 Binary files a/assets/learning/train/potato/potato12.png and /dev/null differ diff --git a/assets/learning/train/potato/potato13.png b/assets/learning/train/potato/potato13.png deleted file mode 100644 index 0d1b0a8..0000000 Binary files a/assets/learning/train/potato/potato13.png and /dev/null differ diff --git a/assets/learning/train/potato/potato189.png b/assets/learning/train/potato/potato189.png deleted file mode 100644 index 3b7694e..0000000 Binary files a/assets/learning/train/potato/potato189.png and /dev/null differ diff --git a/assets/learning/train/potato/potato19.png b/assets/learning/train/potato/potato19.png deleted file mode 100644 index c2d79f4..0000000 Binary files a/assets/learning/train/potato/potato19.png and /dev/null differ diff --git a/assets/learning/train/potato/potato199.png b/assets/learning/train/potato/potato199.png deleted file mode 100644 index ac0ece3..0000000 Binary files a/assets/learning/train/potato/potato199.png and /dev/null differ diff --git a/assets/learning/train/potato/potato200.png b/assets/learning/train/potato/potato200.png deleted file mode 100644 index ac0ece3..0000000 Binary files a/assets/learning/train/potato/potato200.png and /dev/null differ diff --git a/assets/learning/train/potato/potato220.png b/assets/learning/train/potato/potato220.png deleted file mode 100644 index ff4dc6b..0000000 Binary files a/assets/learning/train/potato/potato220.png and /dev/null differ diff --git a/assets/learning/train/potato/potato228.png b/assets/learning/train/potato/potato228.png deleted file mode 100644 index acd174d..0000000 Binary files a/assets/learning/train/potato/potato228.png and /dev/null differ diff --git a/assets/learning/train/potato/potato229.png b/assets/learning/train/potato/potato229.png deleted file mode 100644 index f4c03c0..0000000 Binary files a/assets/learning/train/potato/potato229.png and /dev/null differ diff --git a/assets/learning/train/potato/potato235.png b/assets/learning/train/potato/potato235.png deleted file mode 100644 index 2cbd865..0000000 Binary files a/assets/learning/train/potato/potato235.png and /dev/null differ diff --git a/assets/learning/train/potato/potato241.png b/assets/learning/train/potato/potato241.png deleted file mode 100644 index ef68650..0000000 Binary files a/assets/learning/train/potato/potato241.png and /dev/null differ diff --git a/assets/learning/train/potato/potato25.png b/assets/learning/train/potato/potato25.png deleted file mode 100644 index 5bfcf26..0000000 Binary files a/assets/learning/train/potato/potato25.png and /dev/null differ diff --git a/assets/learning/train/potato/potato265.png b/assets/learning/train/potato/potato265.png deleted file mode 100644 index cb237c3..0000000 Binary files a/assets/learning/train/potato/potato265.png and /dev/null differ diff --git a/assets/learning/train/potato/potato271.png b/assets/learning/train/potato/potato271.png deleted file mode 100644 index 128cf9b..0000000 Binary files a/assets/learning/train/potato/potato271.png and /dev/null differ diff --git a/assets/learning/train/potato/potato284.png b/assets/learning/train/potato/potato284.png deleted file mode 100644 index f505ffb..0000000 Binary files a/assets/learning/train/potato/potato284.png and /dev/null differ diff --git a/assets/learning/train/potato/potato294.png b/assets/learning/train/potato/potato294.png deleted file mode 100644 index 842b94a..0000000 Binary files a/assets/learning/train/potato/potato294.png and /dev/null differ diff --git a/assets/learning/train/potato/potato295.png b/assets/learning/train/potato/potato295.png deleted file mode 100644 index a5f3546..0000000 Binary files a/assets/learning/train/potato/potato295.png and /dev/null differ diff --git a/assets/learning/train/potato/potato311.png b/assets/learning/train/potato/potato311.png deleted file mode 100644 index d28977a..0000000 Binary files a/assets/learning/train/potato/potato311.png and /dev/null differ diff --git a/assets/learning/train/potato/potato314.png b/assets/learning/train/potato/potato314.png deleted file mode 100644 index 6d8ef9e..0000000 Binary files a/assets/learning/train/potato/potato314.png and /dev/null differ diff --git a/assets/learning/train/potato/potato33.png b/assets/learning/train/potato/potato33.png deleted file mode 100644 index aa778fc..0000000 Binary files a/assets/learning/train/potato/potato33.png and /dev/null differ diff --git a/assets/learning/train/potato/potato370.png b/assets/learning/train/potato/potato370.png deleted file mode 100644 index 755c51b..0000000 Binary files a/assets/learning/train/potato/potato370.png and /dev/null differ diff --git a/assets/learning/train/potato/potato377.png b/assets/learning/train/potato/potato377.png deleted file mode 100644 index 301ff56..0000000 Binary files a/assets/learning/train/potato/potato377.png and /dev/null differ diff --git a/assets/learning/train/potato/potato392.png b/assets/learning/train/potato/potato392.png deleted file mode 100644 index 6cc6a1e..0000000 Binary files a/assets/learning/train/potato/potato392.png and /dev/null differ diff --git a/assets/learning/train/potato/potato411.png b/assets/learning/train/potato/potato411.png deleted file mode 100644 index b289f0f..0000000 Binary files a/assets/learning/train/potato/potato411.png and /dev/null differ diff --git a/assets/learning/train/potato/potato423.png b/assets/learning/train/potato/potato423.png deleted file mode 100644 index 63f098b..0000000 Binary files a/assets/learning/train/potato/potato423.png and /dev/null differ diff --git a/assets/learning/train/potato/potato6.png b/assets/learning/train/potato/potato6.png deleted file mode 100644 index f2c976c..0000000 Binary files a/assets/learning/train/potato/potato6.png and /dev/null differ diff --git a/assets/learning/train/potato/potato73.png b/assets/learning/train/potato/potato73.png deleted file mode 100644 index 7d4651d..0000000 Binary files a/assets/learning/train/potato/potato73.png and /dev/null differ diff --git a/assets/learning/train/potato/potato8.png b/assets/learning/train/potato/potato8.png deleted file mode 100644 index bfdd785..0000000 Binary files a/assets/learning/train/potato/potato8.png and /dev/null differ diff --git a/assets/learning/train/potato/potato86.png b/assets/learning/train/potato/potato86.png deleted file mode 100644 index 1e78cb8..0000000 Binary files a/assets/learning/train/potato/potato86.png and /dev/null differ diff --git a/assets/learning/train/potato/potatoontheground131.png b/assets/learning/train/potato/potatoontheground131.png deleted file mode 100644 index 8c05f47..0000000 Binary files a/assets/learning/train/potato/potatoontheground131.png and /dev/null differ diff --git a/assets/learning/train/potato/potatoontheground83.png b/assets/learning/train/potato/potatoontheground83.png deleted file mode 100644 index 3c1eb6e..0000000 Binary files a/assets/learning/train/potato/potatoontheground83.png and /dev/null differ diff --git a/assets/learning/train/potato/potatos68.png b/assets/learning/train/potato/potatos68.png deleted file mode 100644 index 134531d..0000000 Binary files a/assets/learning/train/potato/potatos68.png and /dev/null differ diff --git a/assets/learning/train/potato/potatos90.png b/assets/learning/train/potato/potatos90.png deleted file mode 100644 index 842b94a..0000000 Binary files a/assets/learning/train/potato/potatos90.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato113.png b/assets/learning/train/potato/smallpotato113.png deleted file mode 100644 index 5b85089..0000000 Binary files a/assets/learning/train/potato/smallpotato113.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato114.png b/assets/learning/train/potato/smallpotato114.png deleted file mode 100644 index 5b85089..0000000 Binary files a/assets/learning/train/potato/smallpotato114.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato16.png b/assets/learning/train/potato/smallpotato16.png deleted file mode 100644 index 3a3ac08..0000000 Binary files a/assets/learning/train/potato/smallpotato16.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato175.png b/assets/learning/train/potato/smallpotato175.png deleted file mode 100644 index aee2cbc..0000000 Binary files a/assets/learning/train/potato/smallpotato175.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato176.png b/assets/learning/train/potato/smallpotato176.png deleted file mode 100644 index 79b9f13..0000000 Binary files a/assets/learning/train/potato/smallpotato176.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato18.png b/assets/learning/train/potato/smallpotato18.png deleted file mode 100644 index 60f47be..0000000 Binary files a/assets/learning/train/potato/smallpotato18.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato22.png b/assets/learning/train/potato/smallpotato22.png deleted file mode 100644 index 6642869..0000000 Binary files a/assets/learning/train/potato/smallpotato22.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato221.png b/assets/learning/train/potato/smallpotato221.png deleted file mode 100644 index f574072..0000000 Binary files a/assets/learning/train/potato/smallpotato221.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato23.png b/assets/learning/train/potato/smallpotato23.png deleted file mode 100644 index 6642869..0000000 Binary files a/assets/learning/train/potato/smallpotato23.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato241.png b/assets/learning/train/potato/smallpotato241.png deleted file mode 100644 index 91f8b03..0000000 Binary files a/assets/learning/train/potato/smallpotato241.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato61.png b/assets/learning/train/potato/smallpotato61.png deleted file mode 100644 index df03cbf..0000000 Binary files a/assets/learning/train/potato/smallpotato61.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato90.png b/assets/learning/train/potato/smallpotato90.png deleted file mode 100644 index ca67824..0000000 Binary files a/assets/learning/train/potato/smallpotato90.png and /dev/null differ diff --git a/assets/learning/train/potato/smallpotato98.png b/assets/learning/train/potato/smallpotato98.png deleted file mode 100644 index 186c72b..0000000 Binary files a/assets/learning/train/potato/smallpotato98.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat105.png b/assets/learning/train/wheat/wheat105.png deleted file mode 100644 index eb5f18d..0000000 Binary files a/assets/learning/train/wheat/wheat105.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat108.png b/assets/learning/train/wheat/wheat108.png deleted file mode 100644 index 348a740..0000000 Binary files a/assets/learning/train/wheat/wheat108.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat10rot.jpeg b/assets/learning/train/wheat/wheat10rot.jpeg new file mode 100644 index 0000000..221f669 Binary files /dev/null and b/assets/learning/train/wheat/wheat10rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat11rot.jpeg b/assets/learning/train/wheat/wheat11rot.jpeg new file mode 100644 index 0000000..960ff4d Binary files /dev/null and b/assets/learning/train/wheat/wheat11rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat12.jpeg b/assets/learning/train/wheat/wheat12.jpeg new file mode 100644 index 0000000..8d17f45 Binary files /dev/null and b/assets/learning/train/wheat/wheat12.jpeg differ diff --git a/assets/learning/train/wheat/wheat14rot.jpeg b/assets/learning/train/wheat/wheat14rot.jpeg new file mode 100644 index 0000000..e17e684 Binary files /dev/null and b/assets/learning/train/wheat/wheat14rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat158.png b/assets/learning/train/wheat/wheat158.png deleted file mode 100644 index f8e2aa7..0000000 Binary files a/assets/learning/train/wheat/wheat158.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat16rot.jpeg b/assets/learning/train/wheat/wheat16rot.jpeg new file mode 100644 index 0000000..6ff87b5 Binary files /dev/null and b/assets/learning/train/wheat/wheat16rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat170.png b/assets/learning/train/wheat/wheat170.png deleted file mode 100644 index 2c463b0..0000000 Binary files a/assets/learning/train/wheat/wheat170.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat17rot.jpeg b/assets/learning/train/wheat/wheat17rot.jpeg new file mode 100644 index 0000000..29e53c3 Binary files /dev/null and b/assets/learning/train/wheat/wheat17rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat18rot.jpeg b/assets/learning/train/wheat/wheat18rot.jpeg new file mode 100644 index 0000000..ea8d3f4 Binary files /dev/null and b/assets/learning/train/wheat/wheat18rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat19rot.jpeg b/assets/learning/train/wheat/wheat19rot.jpeg new file mode 100644 index 0000000..526f8f6 Binary files /dev/null and b/assets/learning/train/wheat/wheat19rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat1rot.jpeg b/assets/learning/train/wheat/wheat1rot.jpeg new file mode 100644 index 0000000..3395e36 Binary files /dev/null and b/assets/learning/train/wheat/wheat1rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat201.png b/assets/learning/train/wheat/wheat201.png deleted file mode 100644 index 8adef7d..0000000 Binary files a/assets/learning/train/wheat/wheat201.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat205.png b/assets/learning/train/wheat/wheat205.png deleted file mode 100644 index a07341c..0000000 Binary files a/assets/learning/train/wheat/wheat205.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat20rot.jpeg b/assets/learning/train/wheat/wheat20rot.jpeg new file mode 100644 index 0000000..b384ec1 Binary files /dev/null and b/assets/learning/train/wheat/wheat20rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat21rot.jpeg b/assets/learning/train/wheat/wheat21rot.jpeg new file mode 100644 index 0000000..0602ee1 Binary files /dev/null and b/assets/learning/train/wheat/wheat21rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat22.jpeg b/assets/learning/train/wheat/wheat22.jpeg new file mode 100644 index 0000000..99379b2 Binary files /dev/null and b/assets/learning/train/wheat/wheat22.jpeg differ diff --git a/assets/learning/train/wheat/wheat229.png b/assets/learning/train/wheat/wheat229.png deleted file mode 100644 index 4eaffd1..0000000 Binary files a/assets/learning/train/wheat/wheat229.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat23rot.jpeg b/assets/learning/train/wheat/wheat23rot.jpeg new file mode 100644 index 0000000..f08ab11 Binary files /dev/null and b/assets/learning/train/wheat/wheat23rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat24rot.jpeg b/assets/learning/train/wheat/wheat24rot.jpeg new file mode 100644 index 0000000..d35f867 Binary files /dev/null and b/assets/learning/train/wheat/wheat24rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat25rot.jpeg b/assets/learning/train/wheat/wheat25rot.jpeg new file mode 100644 index 0000000..8fddd17 Binary files /dev/null and b/assets/learning/train/wheat/wheat25rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat26rot.jpeg b/assets/learning/train/wheat/wheat26rot.jpeg new file mode 100644 index 0000000..8d26b91 Binary files /dev/null and b/assets/learning/train/wheat/wheat26rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat286.png b/assets/learning/train/wheat/wheat286.png deleted file mode 100644 index f3f6a0d..0000000 Binary files a/assets/learning/train/wheat/wheat286.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat28rot.jpeg b/assets/learning/train/wheat/wheat28rot.jpeg new file mode 100644 index 0000000..63979b5 Binary files /dev/null and b/assets/learning/train/wheat/wheat28rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat29.jpeg b/assets/learning/train/wheat/wheat29.jpeg new file mode 100644 index 0000000..a08841a Binary files /dev/null and b/assets/learning/train/wheat/wheat29.jpeg differ diff --git a/assets/learning/train/wheat/wheat2rot.jpeg b/assets/learning/train/wheat/wheat2rot.jpeg new file mode 100644 index 0000000..886e6a1 Binary files /dev/null and b/assets/learning/train/wheat/wheat2rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat30rot.jpeg b/assets/learning/train/wheat/wheat30rot.jpeg new file mode 100644 index 0000000..e64e915 Binary files /dev/null and b/assets/learning/train/wheat/wheat30rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat31.mpo b/assets/learning/train/wheat/wheat31.mpo new file mode 100644 index 0000000..a4b45cc Binary files /dev/null and b/assets/learning/train/wheat/wheat31.mpo differ diff --git a/assets/learning/train/wheat/wheat32.jpeg b/assets/learning/train/wheat/wheat32.jpeg new file mode 100644 index 0000000..68b288e Binary files /dev/null and b/assets/learning/train/wheat/wheat32.jpeg differ diff --git a/assets/learning/train/wheat/wheat33rot.jpeg b/assets/learning/train/wheat/wheat33rot.jpeg new file mode 100644 index 0000000..0169cad Binary files /dev/null and b/assets/learning/train/wheat/wheat33rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat34rot.jpeg b/assets/learning/train/wheat/wheat34rot.jpeg new file mode 100644 index 0000000..3de5424 Binary files /dev/null and b/assets/learning/train/wheat/wheat34rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat36rot.jpeg b/assets/learning/train/wheat/wheat36rot.jpeg new file mode 100644 index 0000000..ee22249 Binary files /dev/null and b/assets/learning/train/wheat/wheat36rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat37rot.jpeg b/assets/learning/train/wheat/wheat37rot.jpeg new file mode 100644 index 0000000..f37ae19 Binary files /dev/null and b/assets/learning/train/wheat/wheat37rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat387.png b/assets/learning/train/wheat/wheat387.png deleted file mode 100644 index 329574e..0000000 Binary files a/assets/learning/train/wheat/wheat387.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat38rot.jpeg b/assets/learning/train/wheat/wheat38rot.jpeg new file mode 100644 index 0000000..bea760a Binary files /dev/null and b/assets/learning/train/wheat/wheat38rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat39.jpeg b/assets/learning/train/wheat/wheat39.jpeg new file mode 100644 index 0000000..14dec7d Binary files /dev/null and b/assets/learning/train/wheat/wheat39.jpeg differ diff --git a/assets/learning/train/wheat/wheat3rot.jpeg b/assets/learning/train/wheat/wheat3rot.jpeg new file mode 100644 index 0000000..32acbd4 Binary files /dev/null and b/assets/learning/train/wheat/wheat3rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat40rot.jpeg b/assets/learning/train/wheat/wheat40rot.jpeg new file mode 100644 index 0000000..75e40ad Binary files /dev/null and b/assets/learning/train/wheat/wheat40rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat41.jpeg b/assets/learning/train/wheat/wheat41.jpeg new file mode 100644 index 0000000..1e44f24 Binary files /dev/null and b/assets/learning/train/wheat/wheat41.jpeg differ diff --git a/assets/learning/train/wheat/wheat42rot.jpeg b/assets/learning/train/wheat/wheat42rot.jpeg new file mode 100644 index 0000000..a5c6567 Binary files /dev/null and b/assets/learning/train/wheat/wheat42rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat43rot.jpeg b/assets/learning/train/wheat/wheat43rot.jpeg new file mode 100644 index 0000000..4805bc6 Binary files /dev/null and b/assets/learning/train/wheat/wheat43rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat4rot.jpeg b/assets/learning/train/wheat/wheat4rot.jpeg new file mode 100644 index 0000000..651af37 Binary files /dev/null and b/assets/learning/train/wheat/wheat4rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat5rot.jpeg b/assets/learning/train/wheat/wheat5rot.jpeg new file mode 100644 index 0000000..5ab47e8 Binary files /dev/null and b/assets/learning/train/wheat/wheat5rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat6rot.jpeg b/assets/learning/train/wheat/wheat6rot.jpeg new file mode 100644 index 0000000..1b2019e Binary files /dev/null and b/assets/learning/train/wheat/wheat6rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat72.png b/assets/learning/train/wheat/wheat72.png deleted file mode 100644 index f6bd985..0000000 Binary files a/assets/learning/train/wheat/wheat72.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat76.png b/assets/learning/train/wheat/wheat76.png deleted file mode 100644 index cd1834a..0000000 Binary files a/assets/learning/train/wheat/wheat76.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheat7rot.jpeg b/assets/learning/train/wheat/wheat7rot.jpeg new file mode 100644 index 0000000..b4a66e8 Binary files /dev/null and b/assets/learning/train/wheat/wheat7rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat8rot.jpeg b/assets/learning/train/wheat/wheat8rot.jpeg new file mode 100644 index 0000000..0d40eda Binary files /dev/null and b/assets/learning/train/wheat/wheat8rot.jpeg differ diff --git a/assets/learning/train/wheat/wheat9rot.jpeg b/assets/learning/train/wheat/wheat9rot.jpeg new file mode 100644 index 0000000..0bc8b65 Binary files /dev/null and b/assets/learning/train/wheat/wheat9rot.jpeg differ diff --git a/assets/learning/train/wheat/wheatfield115.png b/assets/learning/train/wheat/wheatfield115.png deleted file mode 100644 index 1c31d80..0000000 Binary files a/assets/learning/train/wheat/wheatfield115.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield121.png b/assets/learning/train/wheat/wheatfield121.png deleted file mode 100644 index 7d2ccc0..0000000 Binary files a/assets/learning/train/wheat/wheatfield121.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield134.png b/assets/learning/train/wheat/wheatfield134.png deleted file mode 100644 index 941adad..0000000 Binary files a/assets/learning/train/wheat/wheatfield134.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield152.png b/assets/learning/train/wheat/wheatfield152.png deleted file mode 100644 index 8af10cd..0000000 Binary files a/assets/learning/train/wheat/wheatfield152.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield160.png b/assets/learning/train/wheat/wheatfield160.png deleted file mode 100644 index b8ed8a1..0000000 Binary files a/assets/learning/train/wheat/wheatfield160.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield161.png b/assets/learning/train/wheat/wheatfield161.png deleted file mode 100644 index 3a6a5d4..0000000 Binary files a/assets/learning/train/wheat/wheatfield161.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield164.png b/assets/learning/train/wheat/wheatfield164.png deleted file mode 100644 index 36426c6..0000000 Binary files a/assets/learning/train/wheat/wheatfield164.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield177.png b/assets/learning/train/wheat/wheatfield177.png deleted file mode 100644 index cb7fd7a..0000000 Binary files a/assets/learning/train/wheat/wheatfield177.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield212.png b/assets/learning/train/wheat/wheatfield212.png deleted file mode 100644 index e5135d1..0000000 Binary files a/assets/learning/train/wheat/wheatfield212.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield222.png b/assets/learning/train/wheat/wheatfield222.png deleted file mode 100644 index 1f7e637..0000000 Binary files a/assets/learning/train/wheat/wheatfield222.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield231.png b/assets/learning/train/wheat/wheatfield231.png deleted file mode 100644 index e592f0c..0000000 Binary files a/assets/learning/train/wheat/wheatfield231.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield256.png b/assets/learning/train/wheat/wheatfield256.png deleted file mode 100644 index 4f227e6..0000000 Binary files a/assets/learning/train/wheat/wheatfield256.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield270.png b/assets/learning/train/wheat/wheatfield270.png deleted file mode 100644 index 12fcf1e..0000000 Binary files a/assets/learning/train/wheat/wheatfield270.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield298.png b/assets/learning/train/wheat/wheatfield298.png deleted file mode 100644 index 8088872..0000000 Binary files a/assets/learning/train/wheat/wheatfield298.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield316.png b/assets/learning/train/wheat/wheatfield316.png deleted file mode 100644 index 62efd1f..0000000 Binary files a/assets/learning/train/wheat/wheatfield316.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield331.png b/assets/learning/train/wheat/wheatfield331.png deleted file mode 100644 index e3adda1..0000000 Binary files a/assets/learning/train/wheat/wheatfield331.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield338.png b/assets/learning/train/wheat/wheatfield338.png deleted file mode 100644 index ff40e80..0000000 Binary files a/assets/learning/train/wheat/wheatfield338.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield339.png b/assets/learning/train/wheat/wheatfield339.png deleted file mode 100644 index ff40e80..0000000 Binary files a/assets/learning/train/wheat/wheatfield339.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield340.png b/assets/learning/train/wheat/wheatfield340.png deleted file mode 100644 index 54444dd..0000000 Binary files a/assets/learning/train/wheat/wheatfield340.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield36.png b/assets/learning/train/wheat/wheatfield36.png deleted file mode 100644 index bb8de70..0000000 Binary files a/assets/learning/train/wheat/wheatfield36.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield363.png b/assets/learning/train/wheat/wheatfield363.png deleted file mode 100644 index 3ed5689..0000000 Binary files a/assets/learning/train/wheat/wheatfield363.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield373.png b/assets/learning/train/wheat/wheatfield373.png deleted file mode 100644 index da8730a..0000000 Binary files a/assets/learning/train/wheat/wheatfield373.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield398.png b/assets/learning/train/wheat/wheatfield398.png deleted file mode 100644 index 7037a65..0000000 Binary files a/assets/learning/train/wheat/wheatfield398.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield421.png b/assets/learning/train/wheat/wheatfield421.png deleted file mode 100644 index 88ca06a..0000000 Binary files a/assets/learning/train/wheat/wheatfield421.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield430.png b/assets/learning/train/wheat/wheatfield430.png deleted file mode 100644 index 4eca841..0000000 Binary files a/assets/learning/train/wheat/wheatfield430.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield456.png b/assets/learning/train/wheat/wheatfield456.png deleted file mode 100644 index 773837c..0000000 Binary files a/assets/learning/train/wheat/wheatfield456.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield466.png b/assets/learning/train/wheat/wheatfield466.png deleted file mode 100644 index f51b6a4..0000000 Binary files a/assets/learning/train/wheat/wheatfield466.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield473.png b/assets/learning/train/wheat/wheatfield473.png deleted file mode 100644 index 35296f9..0000000 Binary files a/assets/learning/train/wheat/wheatfield473.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield509.png b/assets/learning/train/wheat/wheatfield509.png deleted file mode 100644 index b917776..0000000 Binary files a/assets/learning/train/wheat/wheatfield509.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield512.png b/assets/learning/train/wheat/wheatfield512.png deleted file mode 100644 index 1502ae8..0000000 Binary files a/assets/learning/train/wheat/wheatfield512.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield53.png b/assets/learning/train/wheat/wheatfield53.png deleted file mode 100644 index 10771e7..0000000 Binary files a/assets/learning/train/wheat/wheatfield53.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield57.png b/assets/learning/train/wheat/wheatfield57.png deleted file mode 100644 index 6f67607..0000000 Binary files a/assets/learning/train/wheat/wheatfield57.png and /dev/null differ diff --git a/assets/learning/train/wheat/wheatfield82.png b/assets/learning/train/wheat/wheatfield82.png deleted file mode 100644 index 187ef10..0000000 Binary files a/assets/learning/train/wheat/wheatfield82.png and /dev/null differ diff --git a/main.py b/main.py index f2f43e7..e96f414 100644 --- a/main.py +++ b/main.py @@ -2,7 +2,7 @@ import pygame import sys import random from settings import screen_height, screen_width, SIZE, SPECIES, block_size, tile, road_coords, directions -from src.map import drawRoads, seedForFirstTime, return_fields_list, WORLD_MATRIX +from src.map import drawRoads, seedForFirstTime, return_fields_list, WORLD_MATRIX, get_type_by_position from src.Tractor import Tractor from src.bfs import Astar from src.Plant import Plant @@ -11,79 +11,38 @@ import pickle import os from src.ID3 import make_decision import torch -import neural_networks +import src.neural_networks as neural_networks -def recognize_plants(plants_array): - checkpoint = torch.load(f'plants.model') +def show_plant_img(img): + image = pygame.image.load(img) + image = pygame.transform.scale(image, (360, 360)) + screen.blit(image, (972, 288)) + pygame.display.update() + pygame.time.delay(1000) + +# neural_networks.learn() + +def recognize_plants(fields, destination): + checkpoint = torch.load(f'plants2.model') model = neural_networks.Net(num_classes=3) model.load_state_dict(checkpoint) model.eval() img = '' - b=0 - j=0 - field_array_small = [] - field_array_big = [] - for i in range(11): - field_array_small = [] - if b == 0: - for j in range(11): - if plants_array[j][i] == 'carrot': - img = 'assets/learning/test/carrot/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - #show_plant_img(img) - elif plants_array[j][i] == 'potato': - img = 'assets/learning/test/potato/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - # show_plant_img(img) - elif plants_array[j][i] == 'wheat': - img = 'assets/learning/test/wheat/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - # show_plant_img(img) - else: - pred = 'none' - field_array_small.append(pred) - print(i,',', j,'-',pred) - # agent_movement(['f'], agent, fields_for_movement, fields_for_astar) - # agent_movement(['r','f','r'], agent, fields_for_movement, fields_for_astar) - field_array_big.append(field_array_small) - else: - for j in range(10,-1,-1): - if plants_array[j][i] == 'carrot': - img = 'assets/learning/test/carrot/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - # show_plant_img(img) - elif plants_array[j][i] == 'potato': - img = 'assets/learning/test/potato/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - # show_plant_img(img) - elif plants_array[j][i] == 'wheat': - img = 'assets/learning/test/wheat/' + str(random.randint(1, 200)) + '.jpg' - pred = neural_networks.prediction(img, model) - # show_plant_img(img) - else: - pred = 'none' - field_array_small.append(pred) - print(i,',', j,'-',pred) - # agent_movement(['f'], agent, fields_for_movement, fields_for_astar) - field_array_small = field_array_small[::-1] - field_array_big.append(field_array_small) - # agent_movement(['l','f','l'], agent, fields_for_movement, fields_for_astar) - if b==0: - b=1 - else: - b=0 - correct = 0 - incorrect = 0 - for i in range(11): - for j in range(11): - if plants_array[i][j]=='none': - continue - else: - if plants_array[i][j]==field_array_big[j][i]: - correct+=1 - else: - incorrect+=1 - print("Accuracy: ",correct/(correct+incorrect)*100,'%') + if get_type_by_position(fields, destination[0], destination[1]) == 'carrot': + img = 'assets/learning/test/carrot/' + str(random.randint(1, 200)) + '.jpg' + pred = neural_networks.predict(img, model) + show_plant_img(img) + elif get_type_by_position(fields, destination[0], destination[1]) == 'potato': + img = 'assets/learning/test/potato/' + str(random.randint(1, 200)) + '.jpg' + pred = neural_networks.predict(img, model) + show_plant_img(img) + elif get_type_by_position(fields, destination[0], destination[1]) == 'wheat': + img = 'assets/learning/test/wheat/' + str(random.randint(1, 200)) + '.jpg' + pred = neural_networks.predict(img, model) + show_plant_img(img) + else: + pred = 'none' + print(pred) @@ -102,8 +61,13 @@ background.fill((90,50,20)) background = drawRoads(background) for line in range(26): - pygame.draw.line(background, (0, 0, 0), (0, line * block_size), (screen_width, line * block_size)) - pygame.draw.line(background, (0, 0, 0), (line * block_size, 0), (line * block_size, screen_height)) + pygame.draw.line(background, (0, 0, 0), (0, line * block_size), (936, line * block_size)) + pygame.draw.line(background, (0, 0, 0), (line * block_size, 0), (line * block_size, screen_height)) + +pygame.draw.line(background, (0, 0, 0), (968, 285), (1336 , 285)) +pygame.draw.line(background, (0, 0, 0), (968, 649), (1336 , 649)) +pygame.draw.line(background, (0, 0, 0), (968, 285), (968, 649)) +pygame.draw.line(background, (0, 0, 0), (1336, 285), (1336, 649)) #TRACTOR tractor = Tractor('oil','manual', 'fuel', 'fertilizer1', 20) @@ -122,7 +86,7 @@ fields = return_fields_list() # tractor_move = pygame.USEREVENT + 1 -pygame.time.set_timer(tractor_move, 800) +pygame.time.set_timer(tractor_move, 200) moves = [] goal_astar = Astar() mx=random.randrange(0, 936, 36) @@ -139,14 +103,16 @@ dtree = pickle.load(open(os.path.join('src','tree.plk'),'rb')) # pobierz dane o polu field i czy ma na sobie roslinke, zadecyduj czy zebrac this_field = WORLD_MATRIX[mx][my] this_contain = Field.getContain(this_field) + def action(this_contain): if isinstance(this_contain, Plant): this_plant = this_contain params=Plant.getParameters(this_plant) + # print(this_field) #ID3 decision decision=make_decision(params[0],params[1],params[2],params[3],params[4],tractor.fuel,tractor.capacity,params[5],dtree) - print('wzorst',params[0],'wilgotnosc',params[1],'dni_od_nawiezienia',params[2],'pogoda',params[3],'zdrowa',params[4],'paliwo',tractor.fuel,'pojemnosc eq',tractor.capacity,'cena sprzedazy',params[5]) - print(decision) + # print('wzorst',params[0],'wilgotnosc',params[1],'dni_od_nawiezienia',params[2],'pogoda',params[3],'zdrowa',params[4],'paliwo',tractor.fuel,'pojemnosc eq',tractor.capacity,'cena sprzedazy',params[5]) + # print(decision) if decision == 1: print('Gotowe do zbioru') return 1 @@ -161,6 +127,7 @@ def action(this_contain): moves = goal_astar.search( [tractor.rect.x, tractor.rect.y, directions[tractor.rotation]], destination) +expected_plant = get_type_by_position(fields, destination[0], destination[1]) if __name__ == "__main__": @@ -175,6 +142,7 @@ if __name__ == "__main__": if event.type == pygame.KEYDOWN: if event.key==pygame.K_RETURN: tractor.collect(plant_group) + recognize_plants(fields, destination) if event.key == pygame.K_ESCAPE: running = False if event.type == tractor_move: @@ -183,8 +151,10 @@ if __name__ == "__main__": step = moves_list.pop() # pop the last element moves = tuple(moves_list) # convert back to tuple tractor.movement(step[0]) - if (tractor.rect.x, tractor.rect.y) == destination and action == 1: - tractor.collect(plant_group) + if tractor.rect.x == destination[0] and tractor.rect.y == destination[1] and action(this_contain) == 1: + print('expected:', expected_plant) + if recognize_plants(fields, destination) == 'carrot' or 'potato' or 'wheat': + tractor.collect(plant_group) diff --git a/plants.model b/plants.model new file mode 100644 index 0000000..625aa1b Binary files /dev/null and b/plants.model differ diff --git a/plants2.model b/plants2.model new file mode 100644 index 0000000..03c8cda Binary files /dev/null and b/plants2.model differ diff --git a/settings.py b/settings.py index edd78b3..9816ae9 100644 --- a/settings.py +++ b/settings.py @@ -1,13 +1,14 @@ from cmath import sqrt -# screen_width=1200 -screen_width=936 -# screen_height=1000 -screen_height=936 +screen_width = 1368 +screen_height = 936 + SIZE = (screen_width, screen_height) -SPECIES=["carrot","potato","beetroot","wheat"] + +SPECIES=["carrot","potato","wheat"] WEATHER=['slonce','wiatr','snieg','deszcz'] + # size in pixels of one tile = 36px/36px tile = (36, 36) block_size = 36 diff --git a/src/ID3.ipynb b/src/ID3.ipynb index f367de9..925e642 100644 --- a/src/ID3.ipynb +++ b/src/ID3.ipynb @@ -81,9 +81,14 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0]" }, - "orig_nbformat": 4 + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a" + } + } }, "nbformat": 4, "nbformat_minor": 2 diff --git a/src/__pycache__/Field.cpython-310.pyc b/src/__pycache__/Field.cpython-310.pyc index 17d2a72..f2f4e61 100644 Binary files a/src/__pycache__/Field.cpython-310.pyc and b/src/__pycache__/Field.cpython-310.pyc differ diff --git a/src/__pycache__/ID3.cpython-310.pyc b/src/__pycache__/ID3.cpython-310.pyc index ac80307..5153495 100644 Binary files a/src/__pycache__/ID3.cpython-310.pyc and b/src/__pycache__/ID3.cpython-310.pyc differ diff --git a/src/__pycache__/Plant.cpython-310.pyc b/src/__pycache__/Plant.cpython-310.pyc index 7c7a94e..6b1bc0d 100644 Binary files a/src/__pycache__/Plant.cpython-310.pyc and b/src/__pycache__/Plant.cpython-310.pyc differ diff --git a/src/__pycache__/Road.cpython-310.pyc b/src/__pycache__/Road.cpython-310.pyc index 705dffa..2c30acf 100644 Binary files a/src/__pycache__/Road.cpython-310.pyc and b/src/__pycache__/Road.cpython-310.pyc differ diff --git a/src/__pycache__/Tractor.cpython-310.pyc b/src/__pycache__/Tractor.cpython-310.pyc index 77d9d9f..185e1b2 100644 Binary files a/src/__pycache__/Tractor.cpython-310.pyc and b/src/__pycache__/Tractor.cpython-310.pyc differ diff --git a/src/__pycache__/bfs.cpython-310.pyc b/src/__pycache__/bfs.cpython-310.pyc index 4a30392..9a4bf01 100644 Binary files a/src/__pycache__/bfs.cpython-310.pyc and b/src/__pycache__/bfs.cpython-310.pyc differ diff --git a/src/__pycache__/cnn_model.cpython-310.pyc b/src/__pycache__/cnn_model.cpython-310.pyc new file mode 100644 index 0000000..3de6d51 Binary files /dev/null and b/src/__pycache__/cnn_model.cpython-310.pyc differ diff --git a/src/__pycache__/map.cpython-310.pyc b/src/__pycache__/map.cpython-310.pyc index 19ae475..6229fb8 100644 Binary files a/src/__pycache__/map.cpython-310.pyc and b/src/__pycache__/map.cpython-310.pyc differ diff --git a/src/__pycache__/neural_networks.cpython-310.pyc b/src/__pycache__/neural_networks.cpython-310.pyc new file mode 100644 index 0000000..4696374 Binary files /dev/null and b/src/__pycache__/neural_networks.cpython-310.pyc differ diff --git a/src/map.py b/src/map.py index 6b7d5ed..c07fd41 100644 --- a/src/map.py +++ b/src/map.py @@ -22,8 +22,6 @@ def get_cost_by_type(plant_type): return 300 elif plant_type == 'potato': return 500 - elif plant_type == 'beetroot': - return 500 elif plant_type == 'wheat': return 1000 #else, means that field is type of road. @@ -72,28 +70,28 @@ def seedForFirstTime(): y = ((int(field/5)*((block_size*(field_width+1)))) + ((int(blocks_seeded_in_field/field_height))*block_size) + ((3/2)*block_size)) # wzrost;wilgotnosc;dni_od_nawiezienia;aktualna_pogoda;czy_roslina_robaczywa;typ_rosliny;pojemnosc_ekwipunku;cena_sprzedarzy;czy_zebrac - new_plant = Plant( - wzrost=random.randint(0, 100), - wilgotnosc=random.randint(0, 100), - dni_od_nawiezienia=random.randint(0, 31), - aktualna_pogoda=random.randint(1,4), - czy_robaczywa=random.randint(0,1), - cena_sprzedarzy=random.randint(1000, 2000), - species=plant_name, - pos_x=x, - pos_y=y) - - # BOOSTED PLANTS # new_plant = Plant( - # wzrost=random.randint(90, 100), - # wilgotnosc=random.randint(0, 50), - # dni_od_nawiezienia=random.randint(15, 31), - # aktualna_pogoda=random.randint(3,4), - # czy_robaczywa=0, - # cena_sprzedarzy=random.randint(1500, 2000), + # wzrost=random.randint(0, 100), + # wilgotnosc=random.randint(0, 100), + # dni_od_nawiezienia=random.randint(0, 31), + # aktualna_pogoda=random.randint(1,4), + # czy_robaczywa=random.randint(0,1), + # cena_sprzedarzy=random.randint(1000, 2000), # species=plant_name, # pos_x=x, # pos_y=y) + + # BOOSTED PLANTS + new_plant = Plant( + wzrost=random.randint(90, 100), + wilgotnosc=random.randint(0, 50), + dni_od_nawiezienia=random.randint(15, 31), + aktualna_pogoda=random.randint(3,4), + czy_robaczywa=0, + cena_sprzedarzy=random.randint(1500, 2000), + species=plant_name, + pos_x=x, + pos_y=y) blocks_seeded_in_field = blocks_seeded_in_field + 1 plant_group.add(new_plant) tmp_field_plant = Field('field', x-18, y-18, None, get_cost_by_type(plant_name), None, None, None, None, plant_name, None, None, contain=new_plant) diff --git a/src/neural_networks.py b/src/neural_networks.py index fb32276..f4ddec7 100644 --- a/src/neural_networks.py +++ b/src/neural_networks.py @@ -72,3 +72,32 @@ def test(dataloader, model, loss_fn): accuracy = 100.0 * correct / size print(f"Test Error:\n Accuracy: {accuracy:.1f}%, Avg loss: {test_loss:.8f}\n") +def predict(img_path, model): + image = Image.open(img_path).convert('RGB') + image_tensor = transformer(image).unsqueeze(0).to(device) + output = model(image_tensor) + _, predicted_idx = torch.max(output, 1) + pred = classes[predicted_idx.item()] + return pred + +def learn(): + num_epochs = 50 + batch_size = 64 + + train_dataset = torchvision.datasets.ImageFolder(train_path, transform=transformer) + train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True) + + test_dataset = torchvision.datasets.ImageFolder(test_path, transform=transformer) + test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=True) + + model = Net(len(classes)).to(device) + optimizer = Adam(model.parameters(), lr=1e-3, weight_decay=0.0001) + loss_fn = nn.CrossEntropyLoss() + + for epoch in range(num_epochs): + print(f"Epoch {epoch + 1}\n-------------------------------") + train(train_loader, model, optimizer, loss_fn) + test(test_loader, model, loss_fn) + + print("Done!") + torch.save(model.state_dict(), 'plants2.model') \ No newline at end of file