1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
| PROGRAM Jeu_de_Roles;
USES WinCrt, winprocs;
{*** Déclarations des variables et des constantes du Jeu ***}
VAR
choix, points, i, j, D1, D2, ErrorCode, hero, city,
target, IndexPerso, IndexMonster, difficulty, tempo: integer;
menu, suite, ok : string;
charge, key: char;
test: boolean;
targets : array[1..6] of integer;
CONST
NbVilles = 3;
NbRaces = 4;
NbCarac = 16;
NbCarrieres = 4;
NbBoutiques = 5;
NbObjets = 16; {8 armes & 8 armures}
NbMonster = 8;
NbHeros = 6; { 6 heros indicés de 0 à 5 dans le fichier}
NbItem : Array[1..NbBoutiques] of integer = (7,7,1,1,1); { nombre d'objets ds chaque boutiques }
{**************** création de nouveaux types de variables (des tableaux) *****************}
Type
tVille = array[1..NbVilles] of string;
tRace = array[1..NbRaces] of string;
tCarriere = array[1..NbCarrieres] of string;
tBoutiques = array[1..NbBoutiques] of string;
tObjets = Array[1..2,0..7] of string;
tPrixObjet = array[1..2,0..7] of integer; {prix des objets, classés par boutiques}
{**************** remplissage des tableaux du jeu ******************
*** déclarations ET affectations des constantes (règles du jeu) ***}
const Objet : tObjets = (
('rien', 'baton', 'dague', 'arc', 'épée', 'épée à 2 mains', 'double hache','AK47'),
('rien','plastron en cuir','cuir clouté','cote de maille',
'armure en écailles','armure de plaque','armure mithril','armure magique'));
prix : tPrixObjet = (
(0 , 10 , 20, 60 , 110, 180 , 300, 500),
(0 , 15 , 35 , 150 , 400 , 1000, 1500, 2000));
ValArme : tPrixObjet = (
(-4, -2 , -1 , 3 , 0 , 1 , 2, 4),
(0,1,2,3,4,5,6,8));
villeJeu : tVille = ('Middenheim','Altdorf','Nuln');
boutique : tBoutiques = ('ARMES','ARMURES','ANIMAUX','SORCELLERIE','APOTHICAIRE');
raceJeu : tRace = ('Nain ','Humain ','Elfe ', 'Halfling');
carriereJeu : tCarriere = ('Guerrier' , 'Sorcier','Druide','voleur');
CaracProfil : array[1..NbCarac] of string = ( {*** tableau du nom des 16 caractéristiques ***}
'CC','CT','Fo','En','Ag','In','FM','So',
'nA','pB','BF','BE','Mv','Mg','PD','PF');
Carac : array[1..NbRaces] of array[1..NbCarac] of integer =( {*** Tableau des caractéristiques de bases ***}
(30,20,20,30,10,20,20,10,1,0,0,0,3,0,0,0),
(20,20,20,20,20,20,20,20,1,0,0,0,4,0,0,0),
(20,30,20,20,30,20,20,20,1,0,0,0,5,0,0,0),
(10,30,10,10,30,20,20,30,1,0,0,0,4,0,0,0)
);
const pBdepart : array[1..NbRaces,1..4] of integer = ( {*** Tableau des points de Blessures au début ***}
(11,12,13,14),
(10,11,12,13),
(9,10,11,12),
(8,9,10,11)
);
const pDdepart : array[1..NbRaces,1..3] of integer = ( {*** Tableau des points de Destin au début ***}
(1,2,3),
(2,3,3),
(1,2,2),
(2,2,3)
);
cond: Array[0..1] of string = ('Mort', 'Vivant');
{********************************************************************************
************************** Création des Personnages ******************************
*********************************************************************************}
Type
tPerso = record
name : string[25];
race : byte;
carrier : byte;
level : byte;
health: integer;
condition: byte;
weapon1 : byte;
weapon2 : byte;
def: byte;
money : integer;
ptExp: integer;
CaracP : Array[1..8] of integer;
CaracS : Array[1..8] of integer;
stuff : array[1..6] of string[15]; {places disponibles pour les objets}
end;
Var
Persos, Monsters: file of tPerso;
Perso : Array[1..NbHeros] of tPerso;
a_monster: tPerso;
monst: array[1..5] of tPerso; {* monstres du combat *}
NbMonsters, NbHerosAlive: byte;
ChoixGene : integer;
Const {** les fichiers du jeu: héros, monstres et Boss **}
PathTeam: string = 'c:\tpw\jdr\datas\Team.dta';
PathM1 : string = 'c:\tpw\jdr\datas\monsters.dta';
PathBoss: string = 'c:\tpw\jdr\datas\bosses.dta'; |