Turinys:
- 1 žingsnis: naudojamos sąvokos
- 2 žingsnis: pagrindinė funkcija
- 3 žingsnis: Kaip atsisakyti specialių simbolių?
- 4 žingsnis: pašalinkite tuos pačius simbolius
- 5 veiksmas: sukurkite apskritą dvigubai susietą sąrašą
- 6 žingsnis: kodas žaisti „Flames“
- 7 žingsnis: pasakykite rezultatą
- 8 žingsnis: liepsnos kodas
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Sveiki draugai, mes visi žinome apie liepsnos žaidimą. Lol, tai vienas iš juokingiausių žaidimų, kurie padarė mūsų vaikystę laimingesnę. Šioje instrukcijoje pamatysime, kaip koduoti liepsnos programą naudojant C ++ kalbą.
1 žingsnis: naudojamos sąvokos
Čia aš naudoju dvigubai susietą „Circular“sąrašą.
2 žingsnis: pagrindinė funkcija
int main ()
{
eilutės pavadinimas1, vardas2;
int n1, n2; cout << "Įvesti PIRMĄJĄ PAVADINIMĄ:"; getline (cin, vardas1); cout << "Įveskite antrąjį pavadinimą:"; getline (cin, vardas2);
}
Pirma, turime gauti du pavadinimus su tarpais, todėl aš naudoju funkciją getline (), kad gaučiau eilutę su tarpais.
3 žingsnis: Kaip atsisakyti specialių simbolių?
void emit (eilutė ir a)
{
už (int i = 0; a ! = '\ 0'; i ++)
{
jei (a > = 'a' && a <= 'z') {}
kitaip, jei (a > = 'A' && a <= 'Z') {}
Kitas
a = '0';
}
}
Dabar turime pašalinti specialius simbolius, tokius kaip &, $, '' … ir tt Naudodami šią funkciją pašalinome visus simbolius, išskyrus abėcėlę. Čia vietoj pašalinimo pakeičiu jį „0“.
4 žingsnis: pašalinkite tuos pačius simbolius
(i = 0; vardas1 ! = '\ 0'; i ++)
(j = 0; vardas2 [j]! = '\ 0'; j ++)
jei ((vardas1 == vardas2 [j] || vardas1 == vardas2 [j] +32))
{
vardas1 = '0';
vardas2 [j] = '0';
pertrauka;
}
Tai pirmas liepsnos žaidimo žingsnis, kad turime pašalinti tuos pačius simbolius, esančius dviejuose pavadinimuose. Šis kodo fragmentas padeda mums tuos pačius simbolius pakeisti „0“, be to, jis veikia gerai, net jei jame yra ir didžiosios, ir mažosios raidės. Pertraukos teiginys padeda išvengti pasikartojančių simbolių pašalinimo.
j = 0; for (i = 0; name1 ! = '\ 0'; i ++)
jei (vardas1 ! = '0')
j ++;
(i = 0; vardas2 ! = '\ 0'; i ++)
jei (vardas2 ! = '0')
j ++;
if (j == 0) cout << "BE FLAMES";
Čia pašaliname visus „0“, esančius abiejuose pavadinimuose. Todėl pagaliau visi simboliai pašalinami. Tada j padidinama, kad tai yra raidžių, esančių abiejuose pavadinimuose, skaičius pašalinus tuos pačius simbolius. Dabar turime patikrinti, ar jame yra bent vienas simbolis, ar ne. Kad kodas būtų efektyvus, turime pasakyti, kad nėra galimybės žaisti liepsnos žaidimo, jei jame nėra unikalių simbolių.
5 veiksmas: sukurkite apskritą dvigubai susietą sąrašą
eilutė a = "liepsnos";
Pirmiausia sukurkite visuotinę eilutę, kurioje yra „liepsnos“.
typedef struktūros mazgas {
char duomenys;
mazgas *kitas, *ankstesnis;
} mazgas;
mazgas *viršuje = NULL, *temp;
Dabar sukurkite struktūrą, kurioje yra simbolių duomenys, kitas adreso žymeklis ir ankstesnis adreso žymeklis.
Tada sukurkite žymeklį, nukreiptą link susieto sąrašo viršaus.
mazgas* ins (char a) {
mazgas *naujas1;
new1 = naujas mazgas;
new1-> duomenys = a;
naujas1-> kitas = NULL;
naujas1-> ankstesnis = NULL;
if (viršuje == NULL)
{
viršuje = naujas1;
temp = viršuje;
}
Kitas
{
temp-> kitas = naujas1;
new1-> prev = temp;
temp = naujas1;
}
grįžti viršuje;
}
Tada įveskite „liepsnos“eilutę į dvigubai susietą sąrašą pagal simbolius.
negaliojantis patikrinimas (int j) {
int skaičius1, vėliava = 0;
už (int i = 0; a ! = '\ 0'; i ++)
viršuje = ins (a );
}
6 žingsnis: kodas žaisti „Flames“
negaliojantis patikrinimas (int j)
{
int skaičius1, vėliava = 0;
už (int i = 0; a ! = '\ 0'; i ++)
viršuje = ins (a );
mazgas *cur = viršuje, *prev1;
temp-> kitas = viršuje;
viršuje-> prieš = temp;
kol (1)
{
skaičius1 = 1;
o (skaičius1 <j)
{
cur = cur-> kitas;
skaičius1 ++;
}
mazgas *temp1 = cur;
prev1 = cur-> ankstesnis;
cur-> ankstesnis> kitas = cur-> kitas;
cur-> kitas-> ankstesnis = cur-> ankstesnis;
temp1-> kitas = NULL;
nemokama (temp1);
cur = ankstesnis-> kitas;
mazgas *testas = cur;
jei (bandymas-> duomenys == testas-> kitas-> duomenys)
pertrauka;
}
}
mes turime paleisti apskritą sąrašą, kuris yra „liepsnos“eilutė pagal unikalių simbolių skaičių. Tada turime pašalinti simbolį „liepsnose“, kurios sutampa su skaičiumi. Turime suprasti, kad šiame kodo fragmente naudojamas dvigubai susietas sąrašas. Tai labai padeda pašalinti tam tikrą simbolį. Jis nuolat pašalinamas. Kol nepasieks sąlygos, kad tie patys personažai ateis pakartotinai.
jei (bandymas-> duomenys == testas-> kitas-> duomenys) pertrauka;
7 žingsnis: pasakykite rezultatą
jungiklis (cur-> data)
{
atvejis 'f': cout << "DRAUGAI &&";
pertrauka;
atvejis 'l': cout << "MEILĖ <3";
pertrauka;
atvejis 'a': cout << "AFFECTION $";
pertrauka;
atvejis 'm': cout << "SANTUOKA:)";
pertrauka;
atvejis 'e': cout << "ENEMY:(";
pertrauka;
atvejis 's: cout << "SIBLING";
pertrauka; }
Naudokite šį jungiklio teiginį, norėdami pasakyti galutinį rezultatą, kuris yra paskutinis simbolis, pašalinus visus kitus simbolius pagal skaičių.
Dabar galite lengvai žaisti liepsną tiesiog įvesdami pavadinimus. Tai juokinga. Žaisk šį žaidimą naudodami savo draugo vardus ir supykink juos LOL. Ačiū.
8 žingsnis: liepsnos kodas
Visą FLAMES kodą rasite čia, github.com/naveeen684/Flames-code-using-C-/tree/master