From 718d949fc85b44f2c30a80fecaa7114776d8e0be Mon Sep 17 00:00:00 2001
From: Kylin_on_Mac <kylingithubdev@gmail.com>
Date: Fri, 6 May 2022 17:48:08 +0800
Subject: [PATCH] refactor folder structure

---
 README.md        | 10 +++++-----
 config.py        | 16 +++-------------
 game_config.json |  5 ++++-
 src/game.py      | 30 ++++++++++++------------------
 4 files changed, 24 insertions(+), 37 deletions(-)

diff --git a/README.md b/README.md
index 98978ef..faeb4f8 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
 # **Easy Game**
-<img src="./asset/logo.svg" alt="logo" width="100"/> 
 
 [comment]: <> (![python]&#40;https://img.shields.io/pypi/pyversions/pygame&#41;)
+![pygame](https://img.shields.io/badge/release-2.0.0beta-red.svg)
 
-![arkanoid](https://img.shields.io/github/v/tag/PAIA-Playful-AI-Arena/arkanoid)
 [![Python 3.9](https://img.shields.io/badge/python-3.9-blue.svg)](https://www.python.org/downloads/release/python-390/)
-[![MLGame](https://img.shields.io/badge/MLGame-9.4.0-<COLOR>.svg)](https://github.com/PAIA-Playful-AI-Arena/MLGame)
+[![MLGame](https://img.shields.io/badge/MLGame-9.5.1-<COLOR>.svg)](https://github.com/PAIA-Playful-AI-Arena/MLGame)
 [![pygame](https://img.shields.io/badge/pygame-2.0.1-<COLOR>.svg)](https://github.com/pygame/pygame/releases/tag/2.0.1)
----
-這是一個吃東西小遊戲,除了讓你熟習所有基本操作,也是 PAIA 的遊戲教學範例
+
+
+這是一個吃東西小遊戲,也是 PAIA 的遊戲教學範例
 
 ![https://github.com/PAIA-Playful-AI-Arena/MLGame/raw/master/games/easy_game/asset/easy_game.gif](https://github.com/PAIA-Playful-AI-Arena/MLGame/raw/master/games/easy_game/asset/easy_game.gif)
 
diff --git a/config.py b/config.py
index afc979b..2f73949 100644
--- a/config.py
+++ b/config.py
@@ -1,20 +1,10 @@
-
+import sys
 from os import path
+sys.path.append(path.dirname(__file__))
 
-from mlgame.utils.parse_config import read_json_file, parse_config
-from .src.game import EasyGame
-
-config_file = path.join(path.dirname(__file__), "game_config.json")
-
-
-config_data = read_json_file(config_file)
-GAME_VERSION = config_data["version"]
-GAME_PARAMS = parse_config(config_data)
-
-# will be equal to config. GAME_SETUP["ml_clients"][0]["name"]
+from src.game import EasyGame
 
 GAME_SETUP = {
     "game": EasyGame,
-    "ml_clients": EasyGame.ai_clients(),
     # "dynamic_ml_clients":True
 }
diff --git a/game_config.json b/game_config.json
index a12957c..db3f653 100644
--- a/game_config.json
+++ b/game_config.json
@@ -1,12 +1,15 @@
 {
   "game_name": "easy_game",
-  "version": "1.2.1",
+  "version": "2.0.1-beta",
   "url": "https://github.com/PAIA-Playful-AI-Arena/easy_game",
   "description": "這是一個吃東西小遊戲,除了讓你熟習所有基本操作,也是 PAIA 的遊戲教學範例",
   "logo": [
     "./asset/logo.svg",
     "https://raw.githubusercontent.com/PAIA-Playful-AI-Arena/Paia-Desktop/master/media/easygame.svg"
   ],
+  "player_num": {
+    "min": 1,"max": 1
+  },
   "game_params": [
     {
       "name": "time_to_play",
diff --git a/src/game.py b/src/game.py
index 85f4f90..dbd59d8 100644
--- a/src/game.py
+++ b/src/game.py
@@ -3,8 +3,9 @@ from os import path
 
 import pygame
 
-from mlgame.gamedev.game_interface import PaiaGame, GameResultState, GameStatus
-from mlgame.view.test_decorator import check_game_progress, check_game_result
+from mlgame.argument.model import AI_NAMES
+from mlgame.gamedev.paia_game import PaiaGame, GameResultState, GameStatus
+from mlgame.tests.test_decorator import check_game_progress, check_game_result
 from mlgame.view.view_model import create_text_view_data, create_asset_init_data, create_image_view_data, Scene, \
     create_scene_progress_data
 from .game_object import Ball, Food
@@ -34,9 +35,13 @@ class EasyGame(PaiaGame):
 
     def update(self, commands):
         # handle command
-        ai_1p_cmd = commands[self.ai_clients()[0]["name"]][0]
+        ai_1p_cmd = commands[AI_NAMES[0]]
+        if ai_1p_cmd is not None:
+            action = ai_1p_cmd[0]
+        else:
+            action = "NONE"
         # print(ai_1p_cmd)
-        self.ball.update(ai_1p_cmd)
+        self.ball.update(action)
 
         # update sprite
         self.foods.update()
@@ -72,8 +77,7 @@ class EasyGame(PaiaGame):
             "status": self.get_game_status()
         }
 
-        for ai_client in self.ai_clients():
-            to_players_data[ai_client['name']] = data_to_1p
+        to_players_data[AI_NAMES[0]] = data_to_1p
         # should be equal to config. GAME_SETUP["ml_clients"][0]["name"]
 
         return to_players_data
@@ -139,7 +143,7 @@ class EasyGame(PaiaGame):
                 "state": self.game_result_state,
                 "attachment": [
                     {
-                        "player": self.ai_clients()[0]["name"],
+                        "player": AI_NAMES[0],
                         "rank": 1,
                         "score": self.score
                     }
@@ -163,8 +167,7 @@ class EasyGame(PaiaGame):
             cmd_1p.append("RIGHT")
         else:
             cmd_1p.append("NONE")
-        ai_1p = self.ai_clients()[0]["name"]
-        return {ai_1p: cmd_1p}
+        return {AI_NAMES[0]: cmd_1p}
 
     def _create_foods(self, count: int = 5):
         for i in range(count):
@@ -172,12 +175,3 @@ class EasyGame(PaiaGame):
             food = Food(self.foods)
         pass
 
-    @staticmethod
-    def ai_clients():
-        """
-        let MLGame know how to parse your ai,
-        you can also use this names to get different cmd and send different data to each ai client
-        """
-        return [
-            {"name": "1P"}
-        ]