Esempio n. 1
0
    def post(self):
        self.check_xsrf_cookie()
        username = self.get_argument('username')
        userpass = self.get_argument('userpass')
        country = self.get_argument("country")

        #簡単なチェック
        if len(username) > 7 or len(username) <1 or len(userpass) is not 4:
            message = "ユーザー名は1-7文字以内、パスは4桁"
            self.render("error.html",message=message)
            return

        if int(country) < 0 or int(country) > 1:
            message = "不正な国<br>"
            message += "country = " + str(country)
            self.render("error.html",message=message)
            return

        #キャラ登録
        db = DBSingleton()

        #初期位置は首都
        try:
            result = db.select("capital_col", "capital_row", table="country", where="country_id="+str(country))
        except DBError as e:
            self.render("error.html", message = e.message)
            return

        col = result[0][0]
        row = result[0][1]

        #id生成
        id = uuid.uuid4()

        #キャラ作成
        try:
            result = db.select("user_name", table="user", where="user_name=\"" + str(username) + "\"")
            print(len(result))
            if len(result) is not 0:
                self.render("error.html", message = u"既に同じ名前が登録されている")
                return

            db.insert(table="user",
                      user_id=id.hex,
                      user_pass=str(userpass),
                      user_name=str(username),
                      country_id=country,
                      col=col,row=row,
                      hp=10,mp=10,
                      at=10, df=10, mat=10, mdf=10,
                      ag=10, cha=10, led=10,
                      money=10000)
        except DBError as e:
            self.render("error.html", message = e.message)
            return

        self.redirect("login")
Esempio n. 2
0
    def __create_grid(self):

        #古いグリッドを削除
        db = DBSingleton()
        if not db.delete(table="hex_grid", where=""):
            self.logger.critical("error happened when deleting old hex_grid")
            raise Exception("map_base.__create_grid : failed")

        x_offset = self.length
        y_offset = self.length * math.sin(1 / 3 * math.pi)
        delta_x = 3 / 2 * self.length
        delta_y = y_offset

        #アフィン変換行列
        matGridToNorm = np.matrix([[delta_x, 0, x_offset],
                                   [-(delta_y), 2 * delta_y, y_offset],
                                   [0, 0, 1]])

        matNormToGrid = np.linalg.inv(matGridToNorm)

        #グリッド生成
        x = x_offset
        col = 0
        serial = 0

        while x + delta_x + (self.length / 2) < self.width:

            y = y_offset
            if col % 2 == 1:
                y += delta_y

            while (y + delta_y * 3) < self.height:

                #グリッド空間の座標に変換
                n_vec = np.matrix([[x], [y], [1]])
                g_vec = matNormToGrid * n_vec
                g_col = int(np.round(g_vec[0])[0])
                g_row = int(np.round(g_vec[1])[0])

                #DBに格納
                db.insert("hex_grid", col=g_col, row=g_row, serial=serial)
                serial += 1

                y += delta_y * 2

            x += delta_x
            col += 1
Esempio n. 3
0
def add_event(event_record):
    """
    イベントのレコードをDBへ追加
    :param event_record: イベントのレコード
    :return: 成功 ? True : False
    """

    try:
        db = DBSingleton()
        db.insert(table="event",
                  status=event_record["status"],
                  datetime=event_record["datetime"],
                  object=event_record["object"],
                  subject=event_record["subject"],
                  event_name=event_record["event_name"],
                  data=event_record["data"])

    except DBError as e:
        logging.error(e.message)
        return False

    return True