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")
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
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