Comment faire pour sélectionner des lettres aléatoires en c++
Salut, je suis en train de travailler sur un bourreau de projet pour mon dernier dans ma classe c++. J'ai plus de travail, mais j'ai voulu faire en sorte que le joueur pourrait avoir la possibilité de jouer contre un adversaire d'ordinateur en mode solo. J'ai essayé de faire quelque chose comme 97+rand()%123 alors convertir le nombre de personnages, mais je continue à recevoir des caractères bizarres comme l'une à l'envers f j'ai vérifié pour voir si il me manquait quelque chose, mais j'ai le droit de directives et j'ai inclus un srand.
une version simplifiée de ce que j'ai fait ressemble à ceci
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
char cch;
char ch;
unsigned seed= time(0)
srand(seed)
cch=97rand()%123;
ch=cch;
cout<<"computer chose "<< ch<<endl;
}
veuillez noter que je ne comprend pas tout ce que mon projet
À l'aide de
rand
est tombée dans une mauvaise pratique. J'ai fais quelques recherches sur <random>
Si votre requête est résolu, veuillez sélectionner une réponse.
OriginalL'auteur user2340686 | 2013-11-21
Vous devez vous connecter pour publier un commentaire.
Utilisation
Cela va ajouter un numéro au hasard " a " (qui en int dans une proportion de 97, mais l'aide de ce numéro de votre code moins lisible), n'oubliez pas
'a' == 97
parce que le C et le C++ n'est pas actuellement en soins au sujet de votre type de données.Donc, si elle est stockée en tant que char est sera considéré comme char
Cela fonctionne avec l'ascii, ce qui est généralement suffisant, mais n'est pas garanti par le C++ spec travail. C++ mandats que les chiffres soient contiguës dans l'exécution de charset, mais les lettres ne sont pas nécessairement.
OriginalL'auteur beardhatcode
Prendre un coup d'oeil à ASCII tableau et notez que les caractères valides sont entre 97 à 122 et de 65 à 90. Je pense que vous avez besoin des lettres minuscules. Vous pouvez choisir aléatoirement une lettre minuscule comme ceci:
OriginalL'auteur Dragos
Vous pouvez trouver plus facile de définir un char tableau avec tous les caractères valides que vous voulez choisir, puis choisissez un caractère aléatoire entre 0 et le nombre de caractères stockés dans la matrice;
Il peut ne pas être aussi efficace, mais il rend vos intentions beaucoup plus claire.
Aussi, si jamais vous avez besoin de modifier la probabilité de certains personnages apparaissant le plus souvent, vous pouvez le faire en ajoutant le même personnage plusieurs fois.
OriginalL'auteur Martyn Shutt
La formule devrait être :
cch = 97 + rand()%26;
chh=97 + rand()%26
Il y a 26 lettres dans le standard de l'alphabet anglais (à ne pas confondre avec l'ensemble de toutes les lettres qui apparaissent dans les mots en anglais). Si nous en nombre, en commençant à 0 alors a est 0, et 'z' est de 25.
correct. J'ai mal lu. Toutes mes excuses.
OriginalL'auteur Aakash Goyal
Vous ne voulez pas l'ordinateur pour garder deviner les mêmes lettres et plus.
OriginalL'auteur bames53