Obsah:

FLAMES pomocí C ++: 8 kroků
FLAMES pomocí C ++: 8 kroků

Video: FLAMES pomocí C ++: 8 kroků

Video: FLAMES pomocí C ++: 8 kroků
Video: Огненная сорка против всех. Diablo 2 Ressurrected 2024, Červenec
Anonim
FLAMES pomocí C ++
FLAMES pomocí C ++
FLAMES pomocí C ++
FLAMES pomocí C ++

Ahoj přátelé, všichni víme o hře flames. Lol, je to jedna z nejzábavnějších her, díky nimž bylo naše dětství šťastnější. V tomto pokynu uvidíme, jak kódovat program plamenů pomocí jazyka C ++.

Krok 1: Použité koncepty

Použité koncepty
Použité koncepty

Zde jsem použil dvojitě propojený seznam Circular.

Krok 2: Hlavní funkce

int main ()

{

řetězec name1, name2;

int n1, n2; cout << "ZADAT PRVNÍ JMÉNO:"; getline (cin, name1); cout << "ZADAT DRUHÉ JMÉNO:"; getline (cin, name2);

}

Nejprve musíme dostat dvě jména s mezerou, takže pro získání řetězce s mezerou používám funkci getline ().

Krok 3: Jak vynechat speciální znaky?

void emit (řetězec & a)

{

pro (int i = 0; a ! = '\ 0'; i ++)

{

if (a > = 'a' && a <= 'z') {}

jinak if (a > = 'A' && a <= 'Z') {}

jiný

a = '0';

}

}

Nyní musíme odstranit speciální znaky jako &, $, '' … atd. Pomocí této funkce jsme odstranili všechny znaky kromě abecedy. Zde místo odstranění nahrazuji „0“.

Krok 4: Odebrání stejných znaků

pro (i = 0; name1 ! = '\ 0'; i ++)

pro (j = 0; name2 [j]! = '\ 0'; j ++)

if ((name1 == name2 [j] || name1 == name2 [j] +32))

{

name1 = '0';

name2 [j] = '0';

přestávka;

}

Je to první krok hry Flames, že musíme odstranit stejné postavy, jaké jsou ve dvou jménech. Tento úryvek kódu nám pomáhá nahradit stejné znaky číslicí '0' a funguje také dobře, i když obsahuje velká i malá písmena. Příkaz break nám pomáhá vyhnout se odstraňování opakujících se znaků.

j = 0; pro (i = 0; name1 ! = '\ 0'; i ++)

if (name1 ! = '0')

j ++;

pro (i = 0; name2 ! = '\ 0'; i ++)

if (name2 ! = '0')

j ++;

if (j == 0) cout << "BEZ PLAMENŮ";

Zde odstraníme všechna 0, která jsou přítomna v obou jménech. Proto jsou nakonec všechny stejné znaky odstraněny. Potom se j zvýší tak, že je to počet písmen, která jsou přítomna v obou jménech po odebrání stejných znaků. Nyní musíme zkontrolovat, zda obsahuje alespoň jeden znak nebo ne. Aby byl kód efektivní, musíme říci, že neexistuje žádná možnost hrát hru s plameny, pokud neobsahuje žádné jedinečné znaky.

Krok 5: Vytvoření kruhového dvojitě propojeného seznamu

řetězec a = "plameny";

Nejprve vytvořte globální řetězec, který obsahuje „plameny“.

typedef struct node {

char data;

uzel *další, *předchozí;

}uzel;

uzel *nahoře = NULL, *temp;

Nyní vytvořte strukturu, která obsahuje znaková data, další ukazatel adresy a předchozí ukazatel adresy.

Poté vytvořte ukazatel, který ukazuje na začátek propojeného seznamu.

uzel* ins (znak a) {

uzel *new1;

new1 = nový uzel;

new1-> data = a;

new1-> next = NULL;

new1-> prev = NULL;

if (top == NULL)

{

top = nový1;

temp = top;

}

jiný

{

temp-> další = nový1;

new1-> prev = temp;

temp = new1;

}

návrat nahoru;

}

Poté vložte řetězec „plameny“do dvojitě propojeného seznamu podle znaků.

prázdná kontrola (int j) {

int count1, flag = 0;

pro (int i = 0; a ! = '\ 0'; i ++)

top = ins (a );

}

Krok 6: Kód pro hraní plamenů

Kód pro hraní plamenů
Kód pro hraní plamenů

prázdná kontrola (int j)

{

int count1, flag = 0;

pro (int i = 0; a ! = '\ 0'; i ++)

top = ins (a );

uzel *cur = top, *prev1;

temp-> next = top;

top-> prev = temp;

zatímco (1)

{

count1 = 1;

while (count1 <j)

{

cur = cur-> další;

count1 ++;

}

uzel *temp1 = cur;

prev1 = aktuální-> předchozí;

cur-> předchozí-> další = cur-> další;

cur-> next-> prev = cur-> prev;

temp1-> další = NULL;

zdarma (temp1);

cur = prev1-> další;

uzel *test = cur;

if (test-> data == test-> next-> data)

přestávka;

}

}

potřebujeme spustit kruhový seznam, který je řetězcem „plamenů“podle počtu unikátních znaků. Poté musíme odstranit postavu v „plamenech“, které se shodují s počtem. Měli bychom si uvědomit použití dvojnásobně propojeného seznamu v tomto fragmentu kódu. Hodně pomůže odstranit konkrétní postavu. Odstraňuje se průběžně. Dokud nedosáhne podmínky, že stejné postavy přicházejí opakovaně.

if (test-> data == test-> next-> data) break;

Krok 7: Řekněte výsledek

přepínač (aktuální-> data)

{

případ 'f': cout << "PŘÁTELÉ &&";

přestávka;

případ 'l': cout << "LOVE <3";

přestávka;

případ 'a': cout << "AFFECTION $";

přestávka;

případ 'm': cout << "MANŽELSTVÍ:)";

přestávka;

případ 'e': cout << "ENEMY:(";

přestávka;

case 's': cout << "SIBLING";

přestávka; }

Pomocí tohoto příkazu přepínače řeknete konečnému výsledku, že zbývá poslední znak po odebrání všech ostatních znaků podle počtu.

Nyní můžete snadno hrát plameny pouhým zadáním jmen. Zahrajte si tuto hru se jmény svých přátel a rozzlobte je LOL. Děkuji.

Krok 8: Kód pro Flames

Kompletní kód pro FLAMES je k dispozici zde, github.com/naveeen684/Flames-code-using-C-/tree/master