// 转生系统脚本
program ReincarnationSystem;
type
TPlayer = record
Name: string;
Level: Integer;
Rebirth: Integer;
Attack: Integer;
Defense: Integer;
HP: Integer;
end;
const
MAX_REBIRTH = 15;
REBIRTH_COST_BASE = 1000000; // 基础转生金币消耗
function GetRebirthRequirement(RebirthLevel: Integer): Integer;
begin
// 每转所需等级递增
case RebirthLevel of
0..3: Result := 80 + RebirthLevel * 10;
4..7: Result := 120 + (RebirthLevel - 4) * 15;
8..11: Result := 180 + (RebirthLevel - 8) * 20;
else Result := 260 + (RebirthLevel - 12) * 30;
end;
end;
function GetAttributeMultiplier(RebirthLevel: Integer): Real;
begin
// 每转提升属性倍率
Result := 1.0 + (RebirthLevel * 0.15);
end;
procedure ShowRebirthInfo(Player: TPlayer);
begin
Writeln('═════════════════════════════════');
Writeln(' 角色:', Player.Name);
Writeln(' 当前转生:', Player.Rebirth, '转');
Writeln(' 当前等级:', Player.Level);
Writeln(' 攻击力:', Player.Attack);
Writeln(' 防御力:', Player.Defense);
Writeln(' 生命值:', Player.HP);
Writeln('═════════════════════════════════');
end;
function CanRebirth(Player: TPlayer): Boolean;
var
RequiredLevel: Integer;
begin
if Player.Rebirth >= MAX_REBIRTH then
begin
Writeln('? 已达最高转生等级!');
Result := False;
Exit;
end;
RequiredLevel := GetRebirthRequirement(Player.Rebirth);
if Player.Level < RequiredLevel then
begin
Writeln('? 等级不足!需要 ', RequiredLevel, ' 级');
Result := False;
Exit;
end;
Result := True;
end;
procedure DoRebirth(var Player: TPlayer);
var
Multiplier: Real;
begin
if not CanRebirth(Player) then Exit;
Inc(Player.Rebirth);
Player.Level := 1; // 等级归零
Multiplier := GetAttributeMultiplier(Player.Rebirth);
Player.Attack := Round(Player.Attack * Multiplier);
Player.Defense := Round(Player.Defense * Multiplier);
Player.HP := Round(Player.HP * Multiplier);
Writeln('');
Writeln('??? 转生成功!???');
Writeln(' 成功突破至 ', Player.Rebirth, ' 转!');
Writeln(' 等级重置为 1 级');
Writeln(' 属性提升 ', (Multiplier - 1) * 100:0:0, '%');
Writeln(' 新攻击力:', Player.Attack);
Writeln(' 新防御力:', Player.Defense);
Writeln(' 新生命值:', Player.HP);
if Player.Rebirth = MAX_REBIRTH then
Writeln('???? 恭喜达成最高转生!获得称号「轮回至尊」');
end;
var
Hero: TPlayer;
Choice: Char;
begin
// 初始化角色
Hero.Name := '傲视群雄';
Hero.Level := 80;
Hero.Rebirth := 0;
Hero.Attack := 500;
Hero.Defense := 300;
Hero.HP := 2000;
Writeln('╔═════════════════════════════════╗');
Writeln('║ 转生系统 · 轮回突破 ║');
Writeln('╚═════════════════════════════════╝');
ShowRebirthInfo(Hero);
Writeln('');
Writeln('按 R 进行转生,按 Q 退出');
Readln(Choice);
if (Choice = 'R') or (Choice = 'r') then
DoRebirth(Hero);
Writeln('');
Writeln('最终状态:');
ShowRebirthInfo(Hero);
end.
玩家达到指定等级后可进行转生,每次转生提升属性倍率但等级归零,最高15转。