呐呐呐

This commit is contained in:
shenjack 2024-09-24 23:40:21 +08:00
parent fb77487ff5
commit e0f7edccf5
Signed by: shenjack
GPG Key ID: 7B1134A979775551
4 changed files with 237 additions and 384 deletions

View File

@ -206,22 +206,43 @@ function wrap_any(names, round) {
});
});
}
function fight_only(names) {
return __awaiter(this, void 0, void 0, function () {
var result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
md5_module.run_env.fight_only = true;
return [4 /*yield*/, fight(names)];
case 1:
result = _a.sent();
console.log(result.source_plr); // 输出完事
return [2 /*return*/];
}
});
});
}
function main() {
return __awaiter(this, void 0, void 0, function () {
var fs, path, names, start_time, result, end_time;
var fs, path, process, names_1, names, result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
fs = require("fs");
path = require("path");
names = fs.readFileSync(path.resolve(__dirname, "input.txt"), "utf-8");
start_time = Date.now();
return [4 /*yield*/, wrap_any(names, 10000)];
process = require("process");
if (!(process.argv.length > 2 && process.argv[2] === "fight")) return [3 /*break*/, 2];
names_1 = fs.readFileSync(path.resolve(__dirname, "input.txt"), "utf-8");
return [4 /*yield*/, fight_only(names_1)];
case 1:
_a.sent();
return [2 /*return*/];
case 2:
names = fs.readFileSync(path.resolve(__dirname, "input.txt"), "utf-8");
return [4 /*yield*/, wrap_any(names, 10000)];
case 3:
result = _a.sent();
end_time = Date.now();
console.log(result);
console.log("Node.js \u8017\u65F6: ".concat(end_time - start_time, " ms"));
return [2 /*return*/];
}
});

View File

@ -188,20 +188,30 @@ async function wrap_any(names: string, round: number): Promise<string> {
}
}
async function fight_only(names: string) {
md5_module.run_env.fight_only = true;
const result = await fight(names);
console.log(result.source_plr); // 输出完事
}
async function main() {
// 从相对位置导入内容
const fs = require("fs");
const path = require("path");
const process = require("process");
// 读取 cli
// 有 fight 参数就开启 fight_only模式
if (process.argv.length > 2 && process.argv[2] === "fight") {
const names = fs.readFileSync(path.resolve(__dirname, "input.txt"), "utf-8");
await fight_only(names);
return;
}
const names = fs.readFileSync(path.resolve(__dirname, "input.txt"), "utf-8");
// const result = await fight(names);
// const result = await md5_module.run_any(names, 50000);
// console.log(`赢家:|${result.source_plr}|`);
const start_time = Date.now();
const result = await wrap_any(names, 10000);
const end_time = Date.now();
console.log(result);
console.log(`Node.js 耗时: ${end_time - start_time} ms`);
}
main();

File diff suppressed because it is too large Load Diff

View File

@ -33,23 +33,38 @@ else:
TailchatReciveMessage = TypeVar("TailchatReciveMessage")
_version_ = "0.6.1"
_version_ = "0.7.0"
EVAL_PREFIX = "/namerena"
CONVERT_PREFIX = "/namer-peek"
CMD_PREFIX = "/namer"
EVAL_CMD = "/namerena"
EVAL_SIMPLE_CMD = f"{CMD_PREFIX}" # 用于简化输入
CONVERT_CMD = f"{CMD_PREFIX}-peek"
FIGHT_CMD = f"/{CMD_PREFIX}-fight"
HELP_CMD = f"{EVAL_CMD}-help"
HELP_MSG = f"""namerena-v[{_version_}]
名字竞技场 一款不建议入坑的文字类游戏
- {HELP_CMD} - 查看帮助
- {EVAL_CMD} - 运行名字竞技场, 每一行是一个输入, 输入格式与网页版相同
- {EVAL_SIMPLE_CMD} - 简化输入
- {CONVERT_CMD} - 查看一个名字的属性, 每一行一个名字
- {FIGHT_CMD} - 1v1 战斗, 格式是 "AAA+BBB+[seed]"
- 例如: "AAA+BBB+seed:123@!" 表示 AAA BBB 123@! 为种子进行战斗
- 可以输入多行"""
def convert_name(msg: ReciveMessage, client) -> None:
# 也是多行
if msg.content.find("\n") == -1:
client.send_message(
msg.reply_with(
f"请使用 {CONVERT_PREFIX} 命令,然后换行输入名字,例如:\n{CONVERT_PREFIX}\n张三\n李四\n王五\n"
f"请使用 {CONVERT_CMD} 命令,然后换行输入名字,例如:\n{CONVERT_CMD}\n张三\n李四\n王五\n"
)
)
return
# 去掉 prefix
names = msg.content[len(CONVERT_PREFIX) :]
names = msg.content[len(CONVERT_CMD) :]
# 去掉第一个 \n
names = names[names.find("\n") + 1 :]
cache = io.StringIO()
@ -74,12 +89,12 @@ def eval_fight(msg: ReciveMessage, client) -> None:
if msg.content.find(" ") != -1:
client.send_message(
msg.reply_with(
f"请使用 {EVAL_PREFIX} 命令,然后换行输入名字,例如:\n{EVAL_PREFIX}\n张三\n李四\n王五\n"
f"请使用 {EVAL_CMD} 命令,然后换行输入名字,例如:\n{EVAL_CMD}\n张三\n李四\n王五\n"
)
)
return
# 去掉 prefix
names = msg.content[len(EVAL_PREFIX) :]
names = msg.content[len(EVAL_CMD) :]
# 去掉第一个 \n
names = names[names.find("\n") + 1 :]
# 判空, 别报错了
@ -118,12 +133,33 @@ def eval_fight(msg: ReciveMessage, client) -> None:
client.send_message(reply)
def run_fights(msg: ReciveMessage, client) -> None:
# 先解析出要运行的东西
# 格式
# aaaa+bbb+seed:123@!
# aaa+bbb
content = msg.content[len(FIGHT_CMD) :]
# 去掉第一个 \n
content = content[content.find("\n") + 1 :]
# 判空, 别报错了
if content.strip() == "":
client.send_message(msg.reply_with("请输入名字"))
return
# 以换行分割
fights = content.split("\n")
def dispatch_msg(msg: ReciveMessage, client) -> None:
if msg.is_reply or msg.is_from_self:
return
if msg.content.startswith(EVAL_PREFIX):
if msg.content == HELP_CMD:
client.send_message(msg.reply_with(HELP_MSG))
if msg.content.startswith(EVAL_CMD) or msg.content.startswith(EVAL_SIMPLE_CMD):
eval_fight(msg, client)
elif msg.content.startswith(CONVERT_PREFIX):
elif msg.content.startswith(FIGHT_CMD):
run_fights(msg, client)
elif msg.content.startswith(CONVERT_CMD):
convert_name(msg, client)