Բովանդակություն:

Բոցեր C ++ - ի օգտագործմամբ. 8 քայլ
Բոցեր C ++ - ի օգտագործմամբ. 8 քայլ

Video: Բոցեր C ++ - ի օգտագործմամբ. 8 քայլ

Video: Բոցեր C ++ - ի օգտագործմամբ. 8 քայլ
Video: Innistrad Midnight Hunt. 26 խթանիչների բացում Magic The Gathering Arena- ում 2024, Հուլիսի
Anonim
ՖԼԵՅՄԵՐ C ++ ի օգտագործմամբ
ՖԼԵՅՄԵՐ C ++ ի օգտագործմամբ
ՖԼԵՅՄԵՐ C ++ ի օգտագործմամբ
ՖԼԵՅՄԵՐ C ++ ի օգտագործմամբ

Բարև ընկերներ, մենք բոլորս գիտենք բոցերի խաղի մասին: Lol, Դա ամենազվարճալի խաղերից մեկն է, որն ավելի ուրախացրեց մեր մանկությունը: Այս ուսանելի ծրագրում մենք կտեսնենք, թե ինչպես պետք է ծածկագրել կրակի ծրագիրը C ++ լեզվով:

Քայլ 1: Օգտագործված հասկացությունները

Օգտագործված հասկացություններ
Օգտագործված հասկացություններ

Այստեղ ես օգտագործեցի Circular կրկնակի կապակցված ցուցակը:

Քայլ 2: Հիմնական գործառույթը

int հիմնական ()

{

տողի անուն 1, անուն 2;

int n1, n2; cout << "Մուտքագրեք առաջին անունը:"; getline (cin, name1); cout << "Մուտքագրեք երկրորդ անունը."; getline (cin, name2);

}

Նախ, մենք պետք է երկու անուն ստանանք տարածություն, այնպես որ ես օգտագործում եմ getline () գործառույթը `տողը տարածություն ստանալու համար:

Քայլ 3. Ինչպե՞ս բաց թողնել հատուկ կերպարները:

դատարկ արտանետում (տող և ա)

{

համար (int i = 0; a ! = '\ 0'; i ++)

{

եթե (a > = 'a' && a <= 'z') {}

այլապես, եթե (a > = 'A' && a <= 'Z') {}

ուրիշ

a = '0';

}

}

Այժմ մենք պետք է հեռացնենք հատուկ նիշերը, ինչպիսիք են &, $, '' … և այլն: Օգտագործելով այս գործառույթը, մենք հեռացրեցինք բոլոր այբուբեններից բացի այլ նշաններ: Այստեղ հեռացնելու փոխարեն այն փոխարինում եմ «0» -ով:

Քայլ 4: Նույն նիշերի հեռացում

համար (i = 0; name1 ! = '\ 0'; i ++)

համար (j = 0; name2 [j]! = '\ 0'; j ++)

եթե ((name1 == name2 [j] || name1 == name2 [j] +32))

{

անուն 1 = '0';

name2 [j] = '0';

ընդմիջում;

}

Դա կրակի խաղի առաջին քայլն է, որ մենք պետք է հեռացնենք նույն անունները, որոնք առկա են երկու անուններում: Այս կոդի հատվածը օգնում է մեզ փոխարինել նույն նիշերը «0» -ով, և այն լավ է աշխատում, նույնիսկ եթե այն պարունակում է ինչպես մեծ, այնպես էլ փոքրատառ: Ընդմիջման հայտարարությունը օգնում է մեզ խուսափել կրկնվող նիշերի հեռացումից:

j = 0; համար (i = 0; name1 ! = '\ 0'; i ++)

եթե (անուն 1 ! = '0')

j ++;

համար (i = 0; name2 ! = '\ 0'; i ++)

if (name2 ! = '0')

j ++;

եթե (j == 0) cout << "ԲՈAMՅՔ ՉԿԱ";

Այստեղ մենք հեռացնում ենք բոլոր 0 -երը, որոնք առկա են երկու անուններում: Հետեւաբար, վերջապես, միեւնույն է, կերպարները հանվում են: Այնուհետև j- ն ավելանում է, որ դա տառերի հաշվարկն է, որոնք առկա են երկու անուններում ՝ նույն նիշերը հեռացնելուց հետո: Այժմ մենք պետք է ստուգենք ՝ պարունակում է արդյոք առնվազն մեկ նիշ, թե ոչ: Կոդն արդյունավետ դարձնելու համար մենք պետք է ասենք, որ բոցերի խաղ խաղալու հնարավորություն չկա, եթե այն եզակի նիշ չի պարունակում:

Քայլ 5. Ստեղծեք շրջանաձև կրկնակիորեն կապված ցուցակ

string a = "բոցեր";

Նախ, ստեղծեք գլոբալ տող, որը պարունակում է «բոցեր»:

typedef կառուցվածքային հանգույց {

char տվյալներ;

հանգույց *հաջորդ, *նախորդ;

} հանգույց;

հանգույց *վերև = NULL, *ջերմաստիճան;

Այժմ ստեղծեք կառուցվածք, որը պարունակում է բնույթի տվյալներ, հաջորդ հասցեի ցուցիչ և նախորդ հասցեի ցուցիչ:

Այնուհետև ստեղծեք ցուցիչ, որը ցույց է տալիս կապված ցուցակի վերևը:

հանգույց* ներ (նշան ա) {

հանգույց *new1;

new1 = նոր հանգույց;

new1-> տվյալներ = ա;

new1-> հաջորդ = NULL;

new1-> prev = NULL;

եթե (վերև == NULL)

{

վերև = new1;

ջերմաստիճան = վերև;

}

ուրիշ

{

temp-> հաջորդ = new1;

new1-> prev = temp;

ջերմաստիճան = new1;

}

վերադառնալ վերև;

}

Այնուհետև «բոցերի» տողը ըստ նշանների տեղադրեք կրկնակի կապված ցուցակի մեջ:

անվավեր ստուգում (int j) {

int count1, դրոշ = 0;

համար (int i = 0; a ! = '\ 0'; i ++)

վերև = ներ (a );

}

Քայլ 6: Բոցերը խաղալու կոդ

Բոցերը խաղալու կոդ
Բոցերը խաղալու կոդ

անվավեր ստուգում (int j)

{

int count1, դրոշ = 0;

համար (int i = 0; a ! = '\ 0'; i ++)

վերև = ներ (a );

հանգույց *cur = վերև, *prev1;

temp-> հաջորդ = վերև;

վեր-> նախ = ջերմաստիճան;

մինչդեռ (1)

{

հաշվել 1 = 1;

իսկ (հաշվարկ 1 <ժ)

{

cur = cur-> հաջորդ;

հաշվել 1 ++;

}

հանգույց *temp1 = cur;

prev1 = cur-> prev;

cur-> prev-> next = cur-> հաջորդ;

cur-> հաջորդ-> prev = cur-> prev;

temp1-> հաջորդ = NULL;

անվճար (temp1);

cur = prev1-> հաջորդ;

հանգույց *փորձարկում = cur;

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

ընդմիջում;

}

}

մենք պետք է գործարկենք շրջանաձև ցուցակը, որը «կրակի» տողն է `ըստ եզակի կերպարների հաշվարկի: Այնուհետեւ մենք պետք է հեռացնենք «կրակի» բնույթը, որը համընկնում է հաշվարկի հետ: Մենք պետք է գիտակցենք այս ծածկագրի հատվածում կրկնակի կապված ցուցակի օգտագործումը: Դա շատ է օգնում հեռացնել որոշակի կերպար: Այն անընդհատ հեռացնում է: Մինչև այն վիճակին հասնելը, որ նույն կերպարները կրկնվեն:

եթե (test-> data == test-> next-> data) break;

Քայլ 7: Ասեք արդյունքը

անջատիչ (cur-> տվյալներ)

{

case 'f': cout << "FRIENDS &&";

ընդմիջում;

case 'l': cout << "ՍԵՐ <3";

ընդմիջում;

դեպք 'a': cout << "AFFECTION $";

ընդմիջում;

case 'm': cout << "ԱՄՈRՍՆՈ:)ԹՅՈ:)Ն:)";

ընդմիջում;

case 'e': cout << "Թշնամի:(";

ընդմիջում;

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

ընդմիջում; }

Օգտագործեք այս անջատիչ հայտարարությունը `վերջնական արդյունքն ասելու համար, որ վերջին նիշը մնում է մնացած բոլոր նիշերը` ըստ հաշվարկի հեռացնելուց հետո:

Այժմ դուք կարող եք հեշտությամբ խաղալ կրակի վրա ՝ պարզապես մուտքագրելով անունները: Դա ծիծաղելի է: Խաղացեք այս խաղը ՝ օգտագործելով ձեր ընկերոջ անունները և զայրացրեք նրանց LOL: Շնորհակալություն.

Քայլ 8: Բոցերի ծածկագիր

FLAMES- ի ամբողջական կոդը հասանելի է այստեղ, github.com/naveeen684/Flames-code-using-C-/tree/master