Mass - Mias 											      Info P4

TdaoRW1


Avertissement : la programmation par interruptions sera abordée dans la fiche TdaoRW2.
Notation : La sémantique de certains opérateurs peut être définie comme suit. 
Le symbole [ dénote la base de la pile et S dénote une séquence d'éléments de la pile. 
L'opérateur DROP qui supprime le sommet de la pile peut donc se schématiser  ainsi :	
	DROP 		[S,e	=>	[S


Exo 0 : Donnez les schémas (au sens de la notation précédente) des opérateurs :
		DUP, +, -, >, RANDOM, ROLL.


Exo 1 :  Définissez (comme sous-programmes) les opérateurs suivants :

	CARRE		[S,e	=>	[S,e2			(e max ?)
	DISTANCE	[S,x,y	=>	[S,sqrt(x2+y2)		(une version avec DIST, l'autre sans)
	RAND_POS	[S,n	=>	[S,random(0,n)		(n max ?)
	RAND_SYM	[S,n	=>	[S,random(-n,n)		(n max ?)

Ajoutez un programme principal pour tester vos sous-programmes. 
Tracez votre code à l'aide du débuggeur. 
Vérifiez que les commandes Go, Pause, Chronon et Step admettent 
comme raccourci clavier les lettres G, P, C et S. 
Déterminez un moyen mnémotechnique simple permettant de retenir ces raccourcis.


Exo 2 : Définissez (comme sous-programmes) les opérateurs suivants :

	MAXI		[S,n,p		=>	[S,max(n,p)		(avec MAX, puis sans)
	FACT		[S,n		=>	[S, n!			( n max ?)
	MAXIS		[S,e1,...,en,n	=>	[S, max(e1,...,en)	(ça devient sportif ...)


Exo 3 : Créez un dossier NosRobots sur votre disquette. 
Créez et sauvegardez les robots ShotBot (page 1 de la section III de votre documentation RoboWar),
NoBot (p. 2, s. III) et TopBot (p. 8, s. III).  
Sélectionnez les caractéristiques matérielles de ces trois robots dans le Hardware Store 
(9 points max pour l'équipement). 
Assurez-vous que vous comprenez parfaitement le code de chacun de ces robots. 
Au besoin, placez chaque robot seul dans l'Arène et tracez. 
Puis organisez quelques combats à 2, 3 ou plus (car on peut dupliquer un robot). 
Proposez au moins une amélioration à chacun des robots 
(par exemple une gestion du champ de protection ou une gestion de la 
propriété explosive/normale pour les balles en fonction de la distance de l'adversaire).


Exo 4 : Créez un robot, appelons-le BotBot, dont le comportement est le suivant. 
BotBot se dirige d'abord au sud de l'Arène, détruisant tout ennemi sur sa trajectoire. 
Une fois le sud atteint, BotBot rejoint le coin sud-est de l'Arène, puis balaie l'Arène avec sa tourelle. 
Si une cible est détectée, elle est mitraillée. Si BotBot repère un projectile via son radar, 
alors il rejoint le coin sud-ouest de l'Arène (oscillant par la suite entre sud-est et sud-ouest). 
Implantez différentes stratégies de tir. 
Affinez la détection radar : BotBot change de coin uniquement si le projectile se rapproche. 
Traitez les cas de collision. Organisez un  tournoi entre ShotBot, NoBot, TopBot et BotBot 
(sélectionnez l'option Basic ou Testing). 
BotBot devrait l'emporter ; si ce n'est pas le cas, remettez-vous à l'ouvrage !