IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

[Débutante] Bataille navale


Sujet :

Turbo Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut [Débutante] Bataille navale
    Bonjour,

    je suis étudiante en première année de cycle ingénieur et j'ai un projet à réaliser en pascal : un bataille navale.
    Problème : nous vons bien sûr eu des cours de programmation mais il me manque encore beaucoup d'éléments qui me semblent nécessaires à la réalisation de ce projet...

    exemple : j'ai cru comprendre qu'il existait une fonction random pour générer des nombres aléatoirement mais je ne sais pas du tout comment elle se note ni comment l'inserer dans une procédure à fin de générer un placement aléatoire de bateau dans une matrice, etc ...
    Où puis-je trouver un inventaire des fonctions avec des exemples de rédactions ?
    Je n'ai trouvé sur internet que des cours trop "généralistes" sur ce qu'est une fonction une procédure une variable ou des programme tout fait mais ce n'est pas ce qui m'interesse ...
    Tout cela est peut-être formulé de manière un peu maladroite, veuillez m'en excuser.

    En vous remerciant d'avance de votre aide dont j'ai grand besoin ...
    Hoaxia.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    As-tu jeté un oeil à ce cours ?

    http://pascal.developpez.com/cours/c..._Random#LXXIII
    Dernière modification par Alcatîz ; 25/12/2009 à 19h56. Motif: lien vers la version corrigée du cours

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ...
    ah non je ne l'avais pas trouvé ... merci beaucoup Mygale1978 !
    enfait je m'étais longuement perdue dans la FAQ sans y trouver les renseignements que je cherchais ...
    encore merci j'espère mieux m'y retouver dans ce tutoriel en tout cas voilà déjà un problème de reglé, je vais peut-être enfin réussir à placer mes bateaux !

    merci également, droggo, je ne manquerais pas de consulter votre lien ...

    je suis très agréablement surprise par la rapidité de vos réponses et vous en remercie encore une fois, et maintenant au travail !!!

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ...
    euh c'est tjrs moi ...
    je ne trouve rien sur les matrices. Plus exactement est-il possible de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for tab[i][j] to tab [i][j+] do ...
    Si oui, je suppose que ce n'est pas la bonne façon de l'écrire... Comment faire ?

    Devrais-je faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for j to j+3 do
    begin
    tab[i][j]:=1; (*dois-je toujours mettre i et j comme variable ??*)
    End.
    Désolée de toutes mes questions mais je me sens plutôt dépassée par ce projet et je n'ai pas limpression d'avoir acquis suffisamment de connaissances pour réaliser ce jeu. Mais si vous ne pouviez m'aider, si ce forum n'est pas le lieu approprié pour poser ces questions je tâcherais d'en trouver un autre.

    Hoaxia.

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Mais non, mais non, reste ici

    Alors, bien évidemment il faut regarder un cours mais tu peux accéder à des matrices de la façon dont tu l'as décrite, à savoir tab[i][j]. Pour les boucles, c'est pas tout à fait comme ça (voir le cours):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for j := 1 to 10 do
      for i := 1 to 10 do
        writeln(tab[i][j]);
    Avec cette boucle, tu vas afficher toutes les valeurs de ta matrice (en admettant qu'elle fait 10*10 cases). Plus simplement, tu peux accéder à une case de ta matrice, si tu connais sa ligne et sa colonne: tab[3,4] va accéder à la case intersection de la 4ème colonne et de la 3ème ligne (ou l'inverse, je me souviens plus...)

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ...
    bon j'ai pas expliqué ce que je voulais faire par là ...
    ça va être plus simple avec un exemple

    grace à la fonction random j'ai généré l'abscisse 4 (i), l'ordonnée 8 (j) et la direction nord, mon bateau fait x cases,

    je voudrais donc que les cases (4;8) à (4;8-(x+1)) demon tableau prennent la valeur 1.

    si je ne peux pas faire :

    for tab[i][j] to tab [i][j-(x+1)];

    comment puis-je m'y prendre ? merci d'avance ...

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Tes boucles ont besoin d'un indice, et le mieux c'est de dissocier les indices des variables (de toute façon, tu n'as pas vraiment le choix). Un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for x := 0 to TailleBateau-1 do
      tab[i][j-x] := 1;

  8. #8
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 475
    Points : 779
    Points
    779
    Par défaut
    Bonjour,

    Cela va dépendre du compilateur utilisé : est-ce TurboPascal, Freepascal, GNUPascal, Virtual Pascal (pour ne prendre que les plus connus) ?

    S'il s'agit d'une des deux premiers la réponse se trouve ici : http://lazarus-ccr.sourceforge.net/f...functions.html
    (c'est pour Freepascal mais compatible avec Turbo Pascal)

    Pour les autres compilo (j'ai oublié Think Pascal mais je ne pense pas que ...)
    voir la doc. Il vaut toujours préciser le compilateur utilisé et l'OS (à moins que j'aie zappé l'info c'est possible)

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ...
    ah génial merci beaucoup à vous deux !
    et c'est en turbo pascal, mais qu'est-ce qu'un compilateur ? et " l'OS " ? (vous mesurez peut-être mieux maintenant le gouffre abyssal de mon inculture en programmation ... ^^" )

    si je vous post une procedure que j'ai rédigée pourriez vous corriger mes erreurs ?

  10. #10
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Un compilateur, c'est un programme qui transforme un code source en fichier binaire directement exécutable. Un OS, c'est un Operating System, un système d'exploitation, comme Windows ou Linux (ou z/OS ).

    Dans ton cas, compiateur = Turbo Pascal et OS = probablement Windows.

    Sinon oui tu peux poster ta procédure, en décrivant ce qu'elle fait et les erreurs que tu rencontres !

  11. #11
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 396
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 396
    Points : 20 507
    Points
    20 507
    Par défaut
    Citation Envoyé par hoaxia Voir le message
    exemple : j'ai cru comprendre qu'il existait une fonction random pour générer des nombres aléatoirement mais je ne sais pas du tout comment elle se note ni comment l'inserer dans une procédure à fin de générer un placement aléatoire de bateau dans une matrice, etc ...
    Où puis-je trouver un inventaire des fonctions avec des exemples de rédactions ?
    ? Il n'y pas d'inventaire de fonctions cela n'existe pas sauf celle contenues dans les unités Pascal ( les .tpu) les fonctions de base.
    C'est à toi de faire tes procédures.
    Faire une bataille navale n'est pas très difficile il suffit de mettre à 1 ou 0 un tableau à 2 dimensions.
    Il faut parcourir les cases du tableau et voir si la case est occupée à 1 ou à 0
    Citation Envoyé par hoaxia Voir le message
    si je vous post une procedure que j'ai rédigée pourriez vous corriger mes erreurs ?
    je n'ai pas Turbo Pascal sous la main mais tente toujours.
    Quelle version as-tu ?

    Citation Envoyé par wormful_sickfoot Voir le message
    Dans ton cas, compiateur = Turbo Pascal et OS = probablement Windows.
    J'ajouterais une précision supplémentaire pour compliquer les choses
    les versions 5,6,7 pour dos peuvent tourner sous Windows mais ne font que des exécutables ms-dos.
    TP7 a 2 versions exe Windows ( Borland Pascal ) et exe ms-dos

  12. #12
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    TP7 ne fait que des exécutables DOS. Par contre, il existe Turbo Pascal For Windows (TPW) et Borland Pascal (BP7), qui sont capables de générer des exécutables Windows.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut ...
    Olala ça tourne au débat de spécialistes ... mais je vous lit attentivement (en ayant le sentiment de ne pas tout saisir ... ^^)

    effectivement on fonctionne avec Windows,
    non je ne cherchais pas de fonctions ou de procédures toutes faites mais les "fonctions de base" comme random, clrscr etc ...

    j'ai fait l'inventaire des procédures, il y en a un certain nombre, pas enormément mais je ne suis pas étudiante en informatique (mais en géologie !) cet aspect de notre programme reste donc assez marginal et bien que je ne doute pas que "faire une bataille navale n'est pas très difficile" je suis assez rapidement perdue !

    je posterais peut-être la procédure plus tard car je ne peux pas décrire les erreurs que je rencontre pour l'instant, il ne s'agit que de la procédure de placement des bateaux, elle ne peut pas fonctionner toute seule, je voulais juste savoir si la rédaction semblais correcte ou s'il était évident que certaines parties n'allait pas fonctionner.

    Encore merci pour toutes vos réponses, ce soir je m'atèle à la vérification des placements, pour que les bateaux ne se chevauchent pas...

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut score
    c'est encore moi !

    pour la bataille navale on doit réaliser un tableau de hight score, je me demandais s'il était possible de faire appel à un fichier à part à fin de mémoriser les scores et les noms des cinq meilleurs joueurs sur plusieurs parties ?? il faut également que mon fichier ce modifie et insert le nom et le score du joueur si son score fait partie des, disons cinq meilleurs...

  15. #15
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 475
    Points : 779
    Points
    779
    Par défaut
    Bonsoir,
    C'est tout à fait possible bien sûr. Il te faut définir une variable fichier et ensuite sauvegarder tes scores dans cette variable fichier.

    Lis attentivement cette page, tu auras je pense toutes les réponses que tu souhaites.

    http://pascal.developpez.com/cours/ptrau/?page=page_14

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    ah ! merci ! bon je m'intéresserai à cela plus tard cette partie n'est qu'optionnelle ...
    ma bataille navale n'a apparemment plus de problème "d'écriture" mais ... ma procédure pour placer les bateaux ... ne place visiblement rien du tout !

    la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    procedure direction_placement (var tab3: array of integer;var tab1: matrice);
    Const max2=4;
    var k: integer;
    begin
      randomize;
    	k:=Random(max2);
    	if k=0 then
    	Begin
                 remplir0(tab3, tab1);
    	end
    	else
    	begin
    		if k=1 then
       		begin
        		  remplir1(tab3, tab1);
        		end
        		else
        		begin
         			if k=2 then
          			begin
           				remplir2(tab3, tab1);
          			end
         			else
         			begin
          				if k=3 then
            			begin
              				remplir3(tab3, tab1);
            			end;
          			end;
        		end;
      	end;
    end;
    elle fait donc appelle à des procédure telles que celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Const max = 10; //fixe le max du random pr le i(abscisse) ou j(ordonnée)
    procedure remplir0 (var tab3: array of integer;var tab1: matrice);// bateau en direction N
    var t,x, y  : integer;
    Begin
      randomize;
    	t:=tab3[b]; //taille du bateau
    	x:=t-1;
    	i:=Random(max);
    	y:= 0;
    	begin //vérifie la validité de l'ordonnée, le bateau ne sort pas de la grille
    		repeat
    		j:=Random(max)
    		until j-x<0;
    	end;
    	for y:=0 to x do
       	if (tab1[i][j-y]=0) or (tab1[i][j-y]=1) or (tab1[i][j-y]=2) or (tab1[i][j-y]=3) or (tab1[i][j-y]=4) or (tab1[i][j-y]=5) then
       	begin
          		break;
        	end
        	else
        	begin
         		tab1[i][j-y] := 1;
        	end;
    	b:=b+1;
    end;
    si avez le temps d'y jeter un oeil et de me dire ce qui ne va pas ou comment améliorer l'ensemble ... merci d'avance !

Discussions similaires

  1. Débutant cherche à créer un jeu de bataille navale
    Par korallly dans le forum Débuter
    Réponses: 5
    Dernier message: 16/05/2011, 10h46
  2. aide pour jeu de la bataille navale
    Par Jeannot Alpin dans le forum Delphi
    Réponses: 17
    Dernier message: 19/11/2006, 20h33
  3. bataille navale
    Par keenurives dans le forum C
    Réponses: 7
    Dernier message: 21/11/2005, 12h15
  4. [LG]Programme Bataille Navale en Pascal
    Par RaFaL dans le forum Langage
    Réponses: 21
    Dernier message: 10/06/2003, 21h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo