CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

probleme programmation

argum2
argum2
Niveau 5
12 octobre 2007 à 17:39:48

bonjour a tous,
je me mets a la programmation pour m´amuser et j´essaie de definir une plateforme j´ai donc taper mon code mais on me dit que sa ne va pas lors de la compilation et je ne trouve pas pourquoi donc si vous pouvez m´aider sa serait cool!!Merci d´avance!

  1. include<iostream>

using namespace std;

char affichage(int colonne,int ligne)
{
char grille[colonne][ligne];// probleme de constante pour le tableau

for(int i=0;i<colonne;i++)
{
for(int j=0;j<ligne;j++)
{
grille[i][j]=´p´;
return grille[i][j];
}
}
}

int main()
{

cout<<affichage(6,9);//exemple de valeur

return 0;

}

godrik
godrik
Niveau 30
12 octobre 2007 à 18:05:44

en C++ il n´est pas possible de définir un tableau dont la taille est passé en parametre a la fonction.
C´est pas ontre possible en C.

Outre ce probleme fort ennuyeux, il y a un probleme plus general, la fonction affichage n´a pas vraiment de sens. Il faut séparer la construction des données de leur affichage.
je te propose:

http://rafb.net/p/vkSBa628.html

argum2
argum2
Niveau 5
12 octobre 2007 à 18:09:43

oui ! beaucoup plus malin et surtout beaucoup plus "beau"!!
je te remercie je vais continuer dans cette voie

Je te remercie encore tu me sauves!! si j´ai pas de base la suite n´a pas d´interet!

argum2
argum2
Niveau 5
12 octobre 2007 à 18:37:39

j´ai continué quelque peu mais je ne comprends pas quelque chose, l´affichage ne se fait pas pour les char alors qu´il se fait pour un simple zero

  1. include<iostream>
  2. include<string.h>

using namespace std;

const int nbCol = 10;
const int nbLig = 10;

char grille[nbCol][nbLig];

void initialisation()
{
for (int i=0; i< nbCol; i++)
for (int j=0; j< nbLig; j++)
grille[i][j] = ´p´;
}

char valeur(int c, int l)
{
return grille[c][l];
}

int main()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
cout<<valeur(i,j);
cout<<endl;
}
return 0;

}

argum2
argum2
Niveau 5
12 octobre 2007 à 19:40:36

personne ne sait pourquoi?

dnob700
dnob700
Niveau 10
12 octobre 2007 à 21:18:18

ne up pas tes messages. Ça ne sers à rien.

tu asoublié d´appeler initialisation au début de ta fonction main pour remplir ton tableau.
D´autre part, tu n´a pas besoin de l´en tête string.h pour faire ça (c´est d´ailleurs en en tête C et non C++ qui définit des fonction de bas niveau de manipulation de chaîne et de buffer).

argum2
argum2
Niveau 5
12 octobre 2007 à 23:03:16

je te remercie dnob700 j´ai résolu le probleme!

oui dslé d´avoir up le sujet mais j´avais peur qu´il parte dasn les oubliettes!! en tout cas merci de m´a repondu sa fait plaisir!

dnob700
dnob700
Niveau 10
12 octobre 2007 à 23:40:14

"mais j´avais peur qu´il parte dasn les oubliettes"

Mauvaise raison : comment est-ce qu´un sujet qui est dans les 5 premiers topics du forum pourrait partir aux oubliettes ?
Bref, n´hésite pas à poster (quoi qu´il faut quand même que tu cherche par toi même des réponses à tes problèmes de programmation avant de demander de l´aide sur un forum (pas seulement ici) pour progresser efficacement), mais ne up pas tes topics.

argum2
argum2
Niveau 5
13 octobre 2007 à 13:57:47

bonjour a tous!je reviens vous voir car il y a quelque chose que je ne comprends pas.

je veux saisir la case d´un tableau a deux dimensions.
une fois cela fait je veux tester la valeur de cette case et la comparer a la case d´un autre tableau. Mais lors de la compilation on me dit "un indice recquiert un type tableau ou pointeur"

si vous pouviez m´aider merci bien!

if
(valeurjoueur[a][b]==valeuradverse[a][b])//2erreur
s
{
valeurjoueur[a][b]=´O´;//1erreur
}
else
valeurjoueur[a][b]=´X´;//1erreur
system("cls");// sa ne marche pas non plus, le but est de rafraichir l´ecran

Int
Int
Niveau 4
13 octobre 2007 à 14:07:23

C´est quoi le type des variables valeurjoueur et valeuradverse ?

argum2
argum2
Niveau 5
13 octobre 2007 à 14:11:52

ce sont des char c´est pourquoi je mets les lettres entre des ´

ce n´est peut etre pas comme sa que l´on fait

Int
Int
Niveau 4
13 octobre 2007 à 14:27:13

Non mais comment tu les as declaré ?

argum2
argum2
Niveau 5
13 octobre 2007 à 14:35:22

desolé je debute donc je comprends pas tout mais voici mon prgramme peut etre que cela repondra plus simplement

  1. include<iostream>

using namespace std;

const int nbCol = 10;
const int nbLig = 10;
char grilleadverse[nbCol][nbLig];
char grillejoueur[nbCol][nbLig];

void initialisationjoueur()
{

for (int i=0; i< nbCol; i++)
for (int j=0; j< nbLig; j++)
grillejoueur[i][j] = ´.´;
}
void initialisationadverse()
{

for (int i=0; i< nbCol; i++)
for (int j=0; j< nbLig; j++)
grilleadverse[i][j] = ´.´;

grilleadverse[2][3] = ´X´;//1
grilleadverse[4][6] = ´X´;//2
grilleadverse[4][7] = ´X´;//3
grilleadverse[4][8] = ´X´;//4
grilleadverse[4][9] = ´X´;//5
grilleadverse[1][1] = ´X´;//6
grilleadverse[1][2] = ´X´;//7
grilleadverse[2][2] = ´X´;//8
grilleadverse[3][2] = ´X´;//9
grilleadverse[4][2] = ´X´;//10

}
char valeurjoueur(int c, int l)
{
return grillejoueur[c][l];
}

char valeuradverse(int c, int l)
{
return grilleadverse[c][l];
}

int main()
{
int a,b;

initialisationjoueur();
initialisationadverse();

//cout<<" A B C D E F G H I J \n";
cout<<" 1 2 3 4 5 6 7 8 9 10";
/* for(int i=0;i<10;i++)
{
if(i<9)
cout<<i+1<<" ";
else
cout<<i+1;
for(int j=0;j<10;j++)
cout<<valeuradverse(i,j)<<" ";
cout<<endl;
}*/
cout<<endl;

do
{
for(int i=0;i<10;i++)
{
if(i<9)
cout<<" "<<i+1<<" ";
else
cout<<i+1;
for(int j=0;j<10;j++)
cout<<valeurjoueur(i,j)<<" ";
cout<<endl;
}

cout<<"Entrez les coordonnées de tir \nla ligne :";
cin>>a;
cout<<"puis la colonne :";
cin>>b;

if (valeurjoueur[a][b]==valeuradverse[a][b])
{
valeurjoueur[a][b]=´O´;
}
else
valeurjoueur[a][b]=´X´;
system("cls");
}

system("pause");
return 0;
}

Int
Int
Niveau 4
13 octobre 2007 à 14:38:55

Ce sont des fonctions et non pas des tableaux, donc il faut faire plutot valeurjoueur(a,b) au lieu de valeurjoueur[a][b]

argum2
argum2
Niveau 5
13 octobre 2007 à 14:43:16

oh qu´est ce que je suis bete!!!!!!!

je suis désolé de t´avoir déranger mais ce n´est pas evident . en tout cas merci beaucoup pour toutes ces infos car sa va m´aider!!j´essaie de faire une sorte de btaille navale comme tu l´auras compris et je m´amuse bien!!

encore merci c´est super sympa^^

Int
Int
Niveau 4
13 octobre 2007 à 14:44:59

Mais de rien :)

argum2
argum2
Niveau 5
15 octobre 2007 à 19:35:48

bonsoir a tous,
je viens vous solliciter car j´ai un probleme et je ne vois pas comment le resoudre.
j´ai crée un tableau a 2entrées qui me permet de créer un espace 10*10 où est généré aléatoirement 10 planetes et 1 joueur que je peux deplacer. Je voudrais affecter des caracteristiques a chaque planete mais je ne vois pas comment faire.(c´est quelque chose d´assez semblable a konquest sur linux).
donc c´est un tableau de char remplit de ´.´ et de ´O´(planete).
j´ai pensé associé chaque planete a un tableau mais je pense que ce n´est pas la meilleur facon...

si vous pouviez m´aider ou meme me donner des pistes!!merci d´avance

dnob700
dnob700
Niveau 10
15 octobre 2007 à 20:19:48

quelles sont les données que tu veux associer à chaque planète ?

Si tu as besoin d´une structure spécial pour ça, tu peut faire que ton tableau bidimensionnel contiennent des pointeurs vers la structure en question, qui seront NULL là où il n´y a pas de planète et un pointeur vers une structure là où il y en a.

Tu peut aussi stocker pour chaque planète, au lieu de mettre ´O´ tu mets en entier qui correspond au numéro de ta planète, et tu as un autre tableau, ailleurs, qui contient dix éléments qui sont les informations que tu veu stocker.

Ou tu peut aussi ne stocker que ce dernier tableau, et pas le premier (avec les 100 cases) si les données de chaque planète indiques leur position.

argum2
argum2
Niveau 5
15 octobre 2007 à 23:09:19

en fait je voudrais associer un nombre de missile (ou de vaisseaux)pour faire un combat et aussi un pourcentage qui va permettre de calculer les pertes de chaque coté et ainsi savoir qui gagne le combat.

donc pour chaque case attribué d´un ´O´ je voudrais pouvoir lui donner ces deux caracteristiques. Mais je manipule mal les tableaux et je sais pas si c´est possible.

dnob700
dnob700
Niveau 10
17 octobre 2007 à 18:08:14

c´est tout à fait possible, mais il faudrait par exemple que tu connaisse les structure. Si tu n´as pas encore vu ça, il faudrait que tu avance dans ton cours de C++.
Le but étant de séparer l´affichage des données : la tu affiche ton tableau à l´écran et là où il y a des 0 tu sais qu´il y a une planête. Il faudrait stocker non pas des char dans le tableau, mais une structure qui dit si la case contient une planète, et si oui, combien elle a de missiles, etc. À l´affichage, tu regarde dans chaque case du tableau s´il y a une planète, et si oui, tu écrit un 0, mais tu n´imprime pas directement le contenu du tableau.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment