Comment transformer un algorithme ?

Fermé
kaasharrys Messages postés 1 Date d'inscription lundi 28 décembre 2015 Statut Membre Dernière intervention 28 décembre 2015 - Modifié par ^Abel^ le 29/12/2015 à 08:25
Bonjour je suis un jeune programmeur sur matlab j'aimerais realisé le jeu bataille navale sur matlab comme projet j ai l algorithme mais je ne sais pas trop comment le transformé sur matlab merci de bien vouloir m aider

ALGORITHME DE LA BATAILLE NAVALE


Menu()
Placer()
Jouer()
Sauv()
Charger()
Main()


Variables globales :

Var
i, j, lig, col : entier
tabbat : tableau[1..10][1..10] de chaîne de caractère
grille : tableau[1..10][1..10] de chaîne de caractère
tablet : tableau[1..9][1..2] de chaîne de caractère
let : chaîne de caractère


Procédure Menu()

Début
Afficher(« Bataille Navale »)
Afficher(« 1 : Placer les bâteaux »)
Afficher(« 2 : Afficher la solution »)
Afficher(« 3 : Jouer »)
Afficher(« 4 : Sauvegarder »)
Afficher(« 5 : Charger »)
Afficher(« 0 : Quitter »)
Fin

Procédure Placer()

Var
loc1, loc2, value : entier

Début

Afficher(« Entrez la taille de la grille de jeu (un carré) ? »)
Lire(lig)
Lig = col

Si lig<2 ou lig>9 alors
Ttque lig<2 ou lig>9 faire
Afficher(« Taille incorrecte »)
Afficher(« Ressaisir la taille (un carré) « )
Lire(lig)
Col=lig
Fttque
Fin si

Pour i de 1 à lig faire
Pour j de 1 à col faire
tabbat[i][j]= “.”
Fpour
Fpour

Pour i de 1 à lig faire
Pour j de 1 à col faire
grille[i][j]= “.”
Fpour
Fpour

Afficher(« Fin de création de la grille.»)

Value=col*lig/6

Si value<2 alors
Value=2
Fin si

Si value>9 alors
Value=10
Fin si

Pour i de 1 à value faire
loc1=(rand()%lig)+1
loc2=(rand()%col)+1

Ttque tabbat[loc1][loc2]= « X » faire
loc1=(rand()%lig)+1
loc2=(rand()%col)+1
Fttque

Tabbat[loc1][loc2]= « X »
Fpour

Afficher(« Fin de création des bateaux. »)

Pour i de 1 à 9 faire
tablet[i][1]=i
tablet[i][2]= «A» +I-1
Fpour

Fin



Procédure Jouer()

Var
sailoc1, sailoc2, nbbat, nbtouch, nbloup : entier
sailocchar : caractère

Début

Pour i de 1 à 9 faire
tablet[i][1]=I
tablet[i][2]= “A”+i-1
Fpour

Répéter
Nbbat=0
Nbtouch=0
Nbloup=0

Pour i de 1 à lig faire
Pour j de 1 à col faire
Si tabbat[i][j]= « X » alors
nbbat=nbbat+1
Fsi

Si grille[i][j]= « + » alors
nbtouch=nbtouch+1
Fsi

Si grille[i][j]= « O » alors
Nbloup=nbloup+1
Fsi
Fpour
Fpour

Afficher(« Taper « Q » pour quitter »)
Afficher(nbbat, « Bateau »)
Afficher(nbtouch, « Bateau touché »)
Afficher(nbloup, « Bateau loupé »)

Si nbbat<>nbtouch alors
Pour i de 1 à lig faire
Let= « A »+i-1
Afficher(“ “,let)
Fpour

Pour i de 1 à lig faire
Afficher(saut de ligne ,i)
Pour j de 1 à col faire
Afficher(« » , grille[i][j])
Fpour
Afficher(saut de ligne)
Fpour
Afficher(«Ecrire la coordonnée (ex : A1) »)
Lire(sailocchar)

Si sailocchar<> « Q » alors
Lire(sailoc1)

Pour i de 1 à lig faire
Si sailocchar = tablet[i][2] alors
sailoc2=tablet[i][1]
Fsi
Fpour


Si sailoc1>0 et sailoc2>0 et sailoc1<=lig et sailoc2<=col et sailocchar<= “I” alors
Si tabbat[sailoc1][sailoc2]= « . » alors
grille[sailoc1][sailoc2]= « O »
Afficher(«Loupé ! »)
Sinon
Si tabbat[sailoc1][sailoc2]= « X » alors
grille[sailoc1][sailoc2]= « + »
Afficher(«Touché ! »)
Fsi
Fsi
Sinon
Afficher(«Erreur de choix veuillez ressaisir »)
Fsi
Fsi
Sinon
Afficher(«Victoire vous avez tous les navires ennemis. »)
Afficher(«Veuillez réinitialiser une nouvelle partie. »)
Sailocchar= « Q »


Fsi

Jusqu’à sailocchar<> « Q »


Procédure Sauv()

Var
score : FICHIER


Début
OUVRIR(score, « score.txt », « écriture »)

Pour i de 1 à lig faire
Pour j de 1 à col faire
ECRIRE(score, tabbat[i][j])
Fpour

ECRIRE(score, passageligne)

Fpour

Pour i de 1 à lig faire
Pour j de 1 à col faire
ECRIRE(score, grille[i][j])
Fpour

ECRIRE(score, passageligne)

Fpour

FERMER(score)

Afficher(« Partie sauvegarder avec succès »)
Fin

Procédure Charger()

Var
varcb : caractère
score : FICHIER


Début
i=0
j=0

OUVRIR(score, « score.txt », « lecture »)

Si score= « NULL » alors
Afficher(« Fichier inexistant : score.txt »)

Sinon

Ttque finfichier(score)=FAUX faire
i=i+1
LIRE(score, varcb)
Fttque

Lig=(Racine carré de (i/2)
Col==(Racine carré de (i/2)

Fsi

FERMER(score)

OUVRIR(score, « score.txt », « lecture »)

Pour i de 1 à lig faire
Pour j de 1 à col faire
LIRE(tabbat[i][j])
Fpour

LIRE(score,passageligne)
Fpour


Pour i de 1 à lig faire
Pour j de 1 à col faire
LIRE(grille[i][j])
Fpour

LIRE(score,passageligne)
Fpour
FERMER(score)

Afficher(« Partie chargée avec succès »)

Fin

Procédure Main()

Var
Choix : caractere

Début

Menu()
Afficher(« Entrez votre choix ?»)
Lire(choix)

Ttque choix <>’0’ faire


Selon choix
Cas ‘1’ : Placer()
Cas ‘2’ : Afficher()
Cas ‘3’ : Jouer()
Cas ‘4’ : Sauv()
Cas ‘5’ : Charger()
Cas sinon : Afficher(« Erreur de choix »)
Fin selon

Menu()
Afficher(« Entrez votre choix ?»)
Lire(choix)
Fttque

Fin