Taula de continguts:
- Pas 1: Conceptes utilitzats
- Pas 2: funció principal
- Pas 3: com ometre els personatges especials?
- Pas 4: suprimir els mateixos caràcters
- Pas 5: creació d'una llista circular doblement enllaçada
- Pas 6: Codi per tocar les flames
- Pas 7: expliqueu el resultat
- Pas 8: Codi de flames
Vídeo: FLAMES Usant C ++: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Hola amics, tots sabem del joc de les flames. Vaja, és un dels jocs més divertits que va fer la nostra infància més feliç. En aquest instructiu, veurem com codificar un programa de flames mitjançant el llenguatge C ++.
Pas 1: Conceptes utilitzats
Aquí he utilitzat la llista Circular doblement enllaçada.
Pas 2: funció principal
int main ()
{
nom de la cadena1, nom2;
int n1, n2; cout << "ENTRAR EL NOM:"; getline (cin, nom1); cout << "ENTREU EL SEGONS NOM:"; getline (cin, nom2);
}
En primer lloc, hem d’obtenir els dos noms amb espai, així que faig servir la funció getline () per obtenir la cadena amb espai.
Pas 3: com ometre els personatges especials?
emissió nul·la (cadena i a)
{
for (int i = 0; a ! = '\ 0'; i ++)
{
if (a > = 'a' && a <= 'z') {}
else if (a > = 'A' && a <= 'Z') {}
en cas contrari
a = '0';
}
}
Ara hem d’eliminar els caràcters especials com &, $,”… etc. En utilitzar aquesta funció, vam eliminar tots els caràcters diferents dels alfabets. Aquí, en lloc de suprimir-lo, el substitueixo per '0'.
Pas 4: suprimir els mateixos caràcters
per a (i = 0; nom1 ! = '\ 0'; i ++)
per a (j = 0; nom2 [j]! = '\ 0'; j ++)
if ((nom1 == nom2 [j] || nom1 == nom2 [j] +32))
{
nom1 = '0';
nom2 [j] = '0';
trencar;
}
És el primer pas del joc de flames, que necessitem eliminar els mateixos personatges que apareixen als dos noms. Aquest fragment de codi ens ajuda a substituir els mateixos caràcters per '0' i també funciona bé fins i tot amb majúscules i minúscules. L’enunciat break ens ajuda a evitar l’eliminació de caràcters que es repeteixen.
j = 0; per a (i = 0; nom1 ! = '\ 0'; i ++)
if (nom1 ! = '0')
j ++;
per a (i = 0; nom2 ! = '\ 0'; i ++)
if (nom2 ! = '0')
j ++;
if (j == 0) cout << "SENSE FLAMES";
Aquí, eliminem tots els 0 que hi ha als dos noms. Per tant, finalment, tot i així, s’eliminen els caràcters. A continuació, s'incrementa la j que és el recompte de les lletres que hi ha als dos noms després d'eliminar els mateixos caràcters. Ara hem de comprovar si conté almenys un caràcter o no. Per fer que el codi sigui eficient, hem de dir que no hi ha possibilitat de jugar al joc de flames si no conté caràcters únics.
Pas 5: creació d'una llista circular doblement enllaçada
cadena a = "flames";
En primer lloc, creeu una cadena global que contingui "flames".
typedef struct node {
dades de caràcters;
node * next, * prev;
}node;
node * top = NULL, * temp;
Ara, creeu una estructura que contingui dades de caràcters, el següent indicador d’adreça i el punter d’adreça anterior.
A continuació, creeu un punter que apunti cap a la part superior de la llista enllaçada.
node * ins (char a) {
node * nou1;
nou1 = nou node;
new1-> data = a;
nou1-> següent = NUL;
nou1-> prev = NUL;
if (top == NULL)
{
superior = nou1;
temp = superior;
}
en cas contrari
{
temp-> següent = nou1;
new1-> prev = temp;
temp = nou1;
}
tornar a dalt;
}
A continuació, inseriu la cadena "flames" a la llista doblement enllaçada per caràcters.
verificació nul·la (int j) {
int count1, flag = 0;
for (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
}
Pas 6: Codi per tocar les flames
comprovació nul·la (int j)
{
int count1, flag = 0;
for (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
node * cur = top, * prev1;
temp-> següent = superior;
top-> prev = temp;
mentre que (1)
{
compte1 = 1;
while (compte1 <j)
{
cur = cur-> següent;
count1 ++;
}
node * temp1 = cur;
prev1 = cur-> prev;
cur-> prev-> next = cur-> next;
cur-> següent-> prev = cur-> prev;
temp1-> següent = NUL;
lliure (temp1);
cur = prev1-> següent;
node * test = cur;
if (prova-> dades == prova-> següent-> dades)
trencar;
}
}
hem d'executar la llista circular que és la cadena "flames" segons el recompte de caràcters únics. A continuació, hem d’eliminar el caràcter de les "flames" que coincideixin amb el recompte. Hauríem d’adonar-nos de l’ús d’una llista doblement enllaçada en aquest fragment de codi. Ajuda molt a eliminar un personatge concret. S'elimina contínuament. Fins que arribi a la condició que els mateixos personatges arribin repetidament.
si (prova-> dades == prova-> següent-> dades) es trenca;
Pas 7: expliqueu el resultat
commuta (actualitzar> dades)
{
cas 'f': cout << "AMICS &&";
trencar;
cas 'l': cout << "AMOR <3";
trencar;
cas 'a': cout << "AFECCIÓ $";
trencar;
cas 'm': cout << "MATRIMONI:)";
trencar;
cas 'e': cout << "ENEMY:(";
trencar;
cas 's': cout << "SIBLING";
trencar; }
Utilitzeu aquesta instrucció de commutació per dir al resultat final que queda l'últim caràcter després d'eliminar la resta de caràcters segons el recompte.
Ara podeu tocar flames fàcilment només introduïu els noms, és curiós. Juga a aquest joc amb els noms del teu amic i fes-los enfadar LOL. Gràcies.
Pas 8: Codi de flames
El codi complet de FLAMES està disponible aquí, github.com/naveeen684/Flames-code-using-C-/tree/master