Obsah:
- Krok 1: Použité koncepty
- Krok 2: Hlavná funkcia
- Krok 3: Ako vynechať špeciálne znaky?
- Krok 4: Odstránenie rovnakých znakov
- Krok 5: Vytvorenie kruhového dvojnásobne prepojeného zoznamu
- Krok 6: Kód na hru Flames
- Krok 7: Povedzte výsledok
- Krok 8: Kód pre Flames
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Ahoj priatelia, všetci vieme o hre flames. Lol, je to jedna z najzábavnejších hier, ktoré urobili naše detstvo šťastnejším. V tomto návode sa pozrieme na to, ako kódovať program plamene pomocou jazyka C ++.
Krok 1: Použité koncepty
Tu som použil dvojnásobne prepojený zoznam v obežníku.
Krok 2: Hlavná funkcia
int main ()
{
reťazec name1, name2;
int n1, n2; cout << "ZADAJTE PRVO MENO:"; getline (cin, name1); cout << "ZADAJTE DRUHE MENO:"; getline (cin, name2);
}
Najprv musíme dostať tieto dve mená s medzerou, takže na získanie reťazca s medzerou používam funkciu getline ().
Krok 3: Ako vynechať špeciálne znaky?
void emit (reťazec a)
{
pre (int i = 0; a ! = '\ 0'; i ++)
{
if (a > = 'a' && a <= 'z') {}
else if (a > = 'A' && a <= 'Z') {}
inak
a = '0';
}
}
Teraz musíme odstrániť špeciálne znaky ako &, $, '' … atď. Použitím tejto funkcie sme odstránili všetky znaky okrem abecedy. Tu namiesto odstránenia nahrádzam číslom „0“.
Krok 4: Odstránenie rovnakých znakov
pre (i = 0; meno1 ! = '\ 0'; i ++)
pre (j = 0; name2 [j]! = '\ 0'; j ++)
if ((name1 == name2 [j] || name1 == name2 [j] +32))
{
name1 = '0';
name2 [j] = '0';
prestávka;
}
Je to prvý krok hry plamene, že musíme odstrániť rovnaké postavy, aké sú v týchto dvoch menách. Tento útržok kódu nám pomáha nahradiť rovnaké znaky číslicou „0“a funguje dobre, aj keď obsahuje veľké aj malé písmena. Výkaz break nám pomáha vyhnúť sa odstráneniu opakujúcich sa znakov.
j = 0; pre (i = 0; meno1 ! = '\ 0'; i ++)
if (name1 ! = '0')
j ++;
pre (i = 0; name2 ! = '\ 0'; i ++)
if (name2 ! = '0')
j ++;
if (j == 0) cout << "BEZ PLAMENOV";
Tu odstránime všetky 0, ktoré sú prítomné v oboch názvoch. Preto sú nakoniec všetky rovnaké znaky odstránené. Potom sa j zvýši o to, že je to počet písmen, ktoré sú prítomné v oboch menách po odstránení rovnakých znakov. Teraz musíme skontrolovať, či obsahuje aspoň jeden znak alebo nie. Aby bol kód efektívny, musíme povedať, že neexistuje žiadna možnosť hrať hru flames, ak neobsahuje žiadne jedinečné znaky.
Krok 5: Vytvorenie kruhového dvojnásobne prepojeného zoznamu
reťazec a = "plamene";
Najprv vytvorte globálny reťazec, ktorý obsahuje „plamene“.
štruktúrovaný uzol typedef {
údaje o znakoch;
uzol *nasledujúci, *predchádzajúci;
} uzol;
uzol *hore = NULL, *temp;
Teraz vytvorte štruktúru, ktorá obsahuje znakové údaje, nasledujúci ukazovateľ adresy a predchádzajúci ukazovateľ adresy.
Potom vytvorte ukazovateľ, ktorý ukazuje na začiatok prepojeného zoznamu.
uzol* ins (znak a) {
uzol *nový1;
new1 = nový uzol;
new1-> údaje = a;
new1-> next = NULL;
new1-> prev = NULL;
ak (hore == NULL)
{
top = nový1;
temp = hore;
}
inak
{
temp-> next = new1;
new1-> prev = temp;
temp = nový1;
}
návrat hore;
}
Potom vložte reťazec „plamene“do dvojnásobne prepojeného zoznamu podľa znakov.
prázdna kontrola (int j) {
int count1, flag = 0;
pre (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
}
Krok 6: Kód na hru Flames
prázdna kontrola (int j)
{
int count1, flag = 0;
pre (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
uzol *cur = top, *prev1;
temp-> next = top;
top-> prev = temp;
zatiaľ čo (1)
{
count1 = 1;
while (count1 <j)
{
cur = cur-> ďalšie;
count1 ++;
}
uzol *temp1 = cur;
prev1 = aktuálna> prev;
cur-> prev-> next = cur-> next;
cur-> next-> prev = cur-> prev;
temp1-> next = NULL;
zadarmo (temp1);
cur = prev1-> nasledujúci;
uzol *test = cur;
if (test-> data == test-> next-> data)
prestávka;
}
}
musíme spustiť kruhový zoznam, ktorý je reťazcom „plamene“podľa počtu jedinečných znakov. Potom musíme odstrániť znak v „plameňoch“, ktoré sa zhodujú s počtom. V tomto útržku kódu by sme si mali uvedomiť použitie dvojnásobne prepojeného zoznamu. Veľmi pomáha odstránenie konkrétnej postavy. Odstraňuje sa priebežne. Kým to nedosiahne podmienku, že rovnaké postavy budú prichádzať opakovane.
if (test-> data == test-> next-> data) break;
Krok 7: Povedzte výsledok
prepnúť (aktuálne-> údaje)
{
prípad 'f': cout << "PRIATELIA &&";
prestávka;
prípad 'l': cout << "LOVE <3";
prestávka;
prípad 'a': cout << "AFFECTION $";
prestávka;
prípad 'm': cout << "MANŽELSTVO:)";
prestávka;
prípad 'e': cout << "ENEMY:(";
prestávka;
case 's': cout << "SIBLING";
prestávka; }
Pomocou tohto príkazu prepínača oznámte konečnému výsledku, že zostáva posledný znak, po odstránení všetkých ostatných znakov podľa počtu.
Teraz môžete hrať s plameňmi jednoducho zadaním mien. Je to zábavné, nie. Zahrajte si túto hru s menami svojich priateľov a nahnevajte ich LOL. Ďakujem.
Krok 8: Kód pre Flames
Kompletný kód pre FLAMES je k dispozícii tu, github.com/naveeen684/Flames-code-using-C-/tree/master