C++ Comment puis-je utiliser des variables d'une fonction à une autre?

Pour le dossier je suis complètement vert en C++ et tout autre langage de programmation que de la matière, donc si c'est possible je serais heureux si vous pouvez répondre d'une manière que je peux comprendre 🙂

J'ai travaillé sur une simple roche, papier, ciseaux jeu récemment, où j'ai 3 fonctions de base, une pour l'utilisateur, un pour le bot, et de l'un que de choisir celui qui gagne la partie.

Je sais à l'aide de system("cls") n'est pas la meilleure façon d'aller, mais je n'ai pas l'intention sur l'utilisation de ce en dehors de Windows.

La fonction finale results() besoin d'utiliser les variables x et brand à partir des deux fonctions précédentes, cependant je n'arrive pas à trouver une façon de le faire. Et où les gens de l'expliquer n'importe où ailleurs, ils l'expliquent trop avancé pour moi. Rappelez-vous que je n'ai pas besoin de changer l'un d'eux, je n'ai qu'à les comparer pour déterminer le vainqueur.

Je vais vous montrer mon code ici, donc vous pouvez voir ce que vous avez à faire.
Merci de me donner des commentaires sur d'autres choses que je peux améliorer ici.

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
using namespace std;
int bgame(), ugame(), results();
int main()
{
srand(time(NULL));
cout<<"Welcome to RPS!\n" <<"You know what to do.\n" <<"\n[ENTER]";
cin.ignore();
system("cls");
ugame();
return 0;
}
int ugame()
{
int x;
cout<<"Type a number from 1-3: ";
cin>> x;
cin.ignore();
if ( x == 1 )
{
cout<<"\nYou chose rock!\n" <<"\n[ENTER]";
cin.ignore();
bgame();
}
else if ( x == 2)
{
cout<<"\nYou chose paper!\n" <<"\n[ENTER]";
cin.ignore();
bgame();
}
else if ( x == 3 )
{
cout<<"\nYou chose scissors!\n" <<"\n[ENTER]";
cin.ignore();
bgame();
}
else
{
cout<<"\nTry again.\n" <<"\n[ENTER]";
cin.ignore();
ugame();
system("cls");
}
return 0;
}
int bgame()
{
int brand = rand()>>4;
system("cls");
cout<<"The bot will now choose an item.\n" <<"\n" <<"[ENTER]\n";
cin.ignore();
brand = rand() % 3 + 1;
if ( brand == 1)
{
cout<<"\nBot chose rock!";
cin.ignore();
results();
}
else if ( brand == 2 )
{
cout<<"\nBot chose paper!";
cin.ignore();
results();
}
else if ( brand == 3 )
{
cout<<"\nBot chose scissors!";
cin.ignore();
results();
}
else
{
cout<<"\nError.";
cin.ignore();
bgame();
system("cls");
}
return 0;
}
int results()
{
}
Lire comment passer les valeurs des paramètres pour les fonctions. Puis passer de x à bgame - bgame(x), et enfin passer de x et de marque pour les résultats results(x,brand). Aussi, si vous rand de 1 à 3, il n'y a aucune erreur se produit 🙂 cplusplus.com/doc/tutorial/functions
Pourquoi ne pas simplement retourner les valeurs nécessaires de bgame() et ugame()? S'ils ont besoin de quelques informations supplémentaires, puis le passer en argument la liste de @makciook a écrit.
Toutes vos fonctions valeurs de retour. Vous pouvez retourner tout entier au lieu de 0
Ce que des variables globales? learncpp.com/cpp-tutorial/42-global-variables
Ne pas utiliser de variables globales s'il vous plaît!

OriginalL'auteur Rezic | 2013-07-18