Satura rādītājs:
- 1. darbība. Izmantotie jēdzieni
- 2. darbība: galvenā funkcija
- 3. darbība. Kā izlaist īpašās rakstzīmes?
- 4. darbība. Vienādu rakstzīmju noņemšana
- 5. solis: apļveida dubultā saistītā saraksta izveide
- 6. solis: kods, lai spēlētu liesmas
- 7. darbība: pastāstiet rezultātu
- 8. darbība. Liesmu kods
Video: LIESMAS Izmantojot C ++: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Sveiki draugi, mēs visi zinām par liesmu spēli. Lol, tā ir viena no smieklīgākajām spēlēm, kas padarīja mūsu bērnību laimīgāku. Šajā pamācībā mēs redzēsim, kā kodēt liesmu programmu, izmantojot C ++ valodu.
1. darbība. Izmantotie jēdzieni
Šeit es izmantoju divkārt saistīto apļveida sarakstu.
2. darbība: galvenā funkcija
int main ()
{
virknes nosaukums1, nosaukums2;
int n1, n2; cout << "Ievadiet pirmo nosaukumu:"; getline (cin, name1); cout << "IEVADIET OTRO NOSAUKUMU:"; getline (cin, name2);
}
Pirmkārt, mums ir jāiegūst divi nosaukumi ar atstarpi, tāpēc es izmantoju funkciju getline (), lai iegūtu virkni ar atstarpi.
3. darbība. Kā izlaist īpašās rakstzīmes?
tukša emitēšana (virkne un a)
{
par (int i = 0; a ! = '\ 0'; i ++)
{
ja (a > = 'a' && a <= 'z') {}
citādi, ja (a > = 'A' && a <= 'Z') {}
citādi
a = '0';
}
}
Tagad mums ir jānoņem īpašās rakstzīmes, piemēram, &, $, '' … utt. Izmantojot šo funkciju, mēs noņemām visas rakstzīmes, izņemot alfabētu. Šeit tā vietā, lai noņemtu, es to aizstāju ar “0”.
4. darbība. Vienādu rakstzīmju noņemšana
(i = 0; vārds1 ! = '\ 0'; i ++)
par (j = 0; nosaukums2 [j]! = '\ 0'; j ++)
ja ((vārds1 == vārds2 [j] || vārds1 == vārds2 [j] +32))
{
vārds1 = '0';
vārds2 [j] = '0';
pārtraukums;
}
Tas ir pirmais liesmu spēles solis, ka mums ir jānoņem tās pašas rakstzīmes, kas ir abos nosaukumos. Šis koda fragments palīdz mums aizstāt tās pašas rakstzīmes ar “0”, un tas darbojas arī labi, pat ja tajā ir gan lielie, gan mazie burti. Pārtraukuma paziņojums palīdz izvairīties no atkārtotu rakstzīmju noņemšanas.
j = 0; par (i = 0; name1 ! = '\ 0'; i ++)
ja (vārds1 ! = '0')
j ++;
par (i = 0; name2 ! = '\ 0'; i ++)
ja (vārds2 ! = '0')
j ++;
ja (j == 0) cout << "NO FLAMES";
Šeit mēs noņemam visus abos nosaukumos esošos “0”. Tāpēc, visbeidzot, rakstzīmes tiek noņemtas. Tad j tiek palielināts, ka tas ir burtu skaits, kas abos nosaukumos ir pēc to pašu rakstzīmju noņemšanas. Tagad mums jāpārbauda, vai tajā ir vismaz viena rakstzīme. Lai kods būtu efektīvs, mums jāpaziņo, ka nav iespējas spēlēt spēli liesmas, ja tajā nav unikālu rakstzīmju.
5. solis: apļveida dubultā saistītā saraksta izveide
virkne a = "liesmas";
Vispirms izveidojiet globālu virkni, kas satur "liesmas".
typedef structure node {
char dati;
mezgls *nākamais, *iepriekšējais;
} mezgls;
mezgls *augšā = NULL, *temp;
Tagad izveidojiet struktūru, kurā ir rakstzīmju dati, nākamais adreses rādītājs un iepriekšējais adreses rādītājs.
Pēc tam izveidojiet rādītāju, kas norāda uz saistītā saraksta augšdaļu.
mezgls* ins (a zīme) {
mezgls *jauns1;
new1 = jauns mezgls;
jauns1-> dati = a;
jauns1-> nākamais = NULL;
jauns1-> iepriekš = NULL;
ja (augšpusē == NULL)
{
top = jauns1;
temp = augšējā;
}
citādi
{
temp-> nākamais = jauns1;
jauns1-> iepriekš = temp;
temp = jauns1;
}
atgriešanās augšdaļa;
}
Pēc tam ievietojiet "liesmas" virkni divreiz saistītajā sarakstā pēc rakstzīmēm.
anulēt čeku (int j) {
int skaits1, karogs = 0;
par (int i = 0; a ! = '\ 0'; i ++)
augšā = ins (a );
}
6. solis: kods, lai spēlētu liesmas
anulēt čeku (int j)
{
int skaits1, karogs = 0;
par (int i = 0; a ! = '\ 0'; i ++)
augšā = ins (a );
mezgls *cur = augšā, *prev1;
temp-> nākamais = augšā;
top-> prev = temp;
kamēr (1)
{
skaits1 = 1;
kamēr (skaits1 <j)
{
cur = cur-> nākamais;
skaits1 ++;
}
mezgls *temp1 = cur;
iepriekšējais = cur-> iepriekšējais;
cur-> iepriekšējais-> nākamais = cur-> nākamais;
cur-> nākamais-> iepriekšējais = cur-> iepriekšējais;
temp1-> nākamais = NULL;
bezmaksas (temp1);
cur = iepriekšējais-> nākamais;
mezgls *tests = cur;
ja (tests-> dati == tests-> nākamais-> dati)
pārtraukums;
}
}
mums ir jāizpilda apļveida saraksts, kas ir "liesmu" virkne atbilstoši unikālo rakstzīmju skaitam. Tad mums ir jānoņem raksturs "liesmās", kas sakrīt ar skaitu. Mums vajadzētu saprast, ka šajā koda fragmentā tiek izmantots divreiz saistīts saraksts. Tas ļoti palīdz noņemt konkrētu rakstzīmi. Tas nepārtraukti noņem. Līdz brīdim, kad tiek sasniegts nosacījums, ka vienas un tās pašas rakstzīmes nāk atkārtoti.
ja (tests-> dati == tests-> nākamie> dati) pārtraukums;
7. darbība: pastāstiet rezultātu
slēdzis (cur-> data)
{
gadījums 'f': cout << "DRAUGI &&";
pārtraukums;
gadījums 'l': cout << "MĪLESTĪBA <3";
pārtraukums;
gadījums 'a': cout << "AFFECTION $";
pārtraukums;
gadījums 'm': cout << "LAULĪBA:)";
pārtraukums;
gadījums 'e': cout << "IENAIDNIEKS:(";
pārtraukums;
gadījums 's': cout << "SIBLING";
pārtraukums; }
Izmantojiet šo slēdzi, lai pateiktu gala rezultātu, kas ir pēdējā rakstzīme pēc visu citu rakstzīmju noņemšanas atbilstoši skaitam.
Tagad jūs varat viegli spēlēt liesmas, vienkārši ievadot vārdus, tas ir smieklīgi. Spēlējiet šo spēli, izmantojot sava drauga vārdus un padariet viņus dusmīgus LOL. Paldies.
8. darbība. Liesmu kods
Pilns FLAMES kods ir pieejams šeit, github.com/naveeen684/Flames-code-using-C-/tree/master