[Back to RECORDS SWAG index] [Back to Main SWAG index] [Original]
{* Program that works!
** Shows use of Variant Records.
** roleplaying Type implemented.
*}
Uses Crt;
Type
CharType = (Warrior, Wizard);
CharacterType = Record
Name: String[16];
Health, MaxHealth: Integer;
Char: CharType;
Case CharType of
Warrior: ( DamagetoHit: Integer);
Wizard : ( Spell, MaxSpell: Integer);
end;
Var
Character: CharacterType;
S: String;
begin
{ select Character Type }
Writeln;
Writeln('Select Character Type:');
Writeln(' [ 1 ] Warrior');
Writeln(' [ 2 ] Wizard');
Readln(S);
With Character do
begin
if S = '1' then Character.Char := Warrior else
Character.Char := Wizard;
{ set fixed Variables }
Write('Enter Character name: ');
Readln(Name);
Write('Enter Character health value: ');
Readln(MaxHealth);
Health := MaxHealth;
{ set Variant Variables }
Case Char of
Warrior: begin
Write('Enter ', Name, '''s hit value: ');
Readln(Character.DamagetoHit);
end;
Wizard: begin
Write('Enter ', Name, '''s spell value: ');
Readln(MaxSpell);
Spell := MaxSpell;
end;
end;
end;
With Character do { display Character info }
begin
{ fixed Variables }
Writeln;
Writeln('*** Your Character:');
Writeln(' Name: ', Name);
Writeln(' Health: ', Health,'/',MaxHealth);
{ Variant Variables }
Case Char of
Warrior: Writeln(' Hit: ', DamagetoHit);
Wizard: Writeln(' Spell: ', Spell, '/', MaxSpell);
end;
end;
end.
[Back to RECORDS SWAG index] [Back to Main SWAG index] [Original]