Mundarija:

C ++ dan foydalanish olovlari: 8 qadam
C ++ dan foydalanish olovlari: 8 qadam

Video: C ++ dan foydalanish olovlari: 8 qadam

Video: C ++ dan foydalanish olovlari: 8 qadam
Video: DEV C++ DASTURLASH TILI / 1-QISM 2024, Iyul
Anonim
FLAMES C ++ dan foydalanish
FLAMES C ++ dan foydalanish
FLAMES C ++ yordamida
FLAMES C ++ yordamida

Salom do'stlar, biz hammamiz olov o'yini haqida bilamiz. Lol, bu bizning bolaligimizni baxtli qilgan eng kulgili o'yinlardan biri. Ushbu qo'llanmada biz C ++ tili yordamida olov dasturini qanday kodlashni ko'rib chiqamiz.

1 -qadam: ishlatilgan tushunchalar

Ishlatilgan tushunchalar
Ishlatilgan tushunchalar

Bu erda men ikki tomonlama bog'langan "Circular" ro'yxatini ishlatardim.

2 -qadam: Asosiy funktsiya

int main ()

{

satr nomi1, nomi2;

int n1, n2; cout << "BIRINCHI NOMNI KIRISH:"; getline (cin, ism1); cout << "Ikkinchi ismni kiriting:"; getline (cin, nomi 2);

}

Birinchidan, biz ikkita nomni bo'sh joy bilan olishimiz kerak, shuning uchun men bo'sh joyli satrni olish uchun getline () funktsiyasidan foydalanaman.

3 -qadam: Maxsus belgilarni qanday o'chirish kerak?

void emit (string va a)

{

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

{

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

aks holda (a > = 'A' va& a <= 'Z') {}

boshqa

a = '0';

}

}

Endi biz &, $, "…" kabi maxsus belgilarni olib tashlashimiz kerak. Bu funksiyadan foydalanib, biz alifbodan boshqa barcha belgilarni olib tashladik. Bu erda o'chirish o'rniga men uni "0" bilan almashtiraman.

4 -qadam: Bir xil belgilarni olib tashlash

uchun (i = 0; ism1 ! = '\ 0'; i ++)

uchun (j = 0; ism2 [j]! = '\ 0'; j ++)

agar ((ism1 == ism2 [j] || ism1 == ism2 [j] +32))

{

ism1 = '0';

ism2 [j] = '0';

tanaffus;

}

Bu olov o'yinining birinchi qadamidir, chunki biz ikkita nomdagi bir xil belgilarni olib tashlashimiz kerak. Bu kod parchasi bizga bir xil belgilarni '0' bilan almashtirishga yordam beradi va u yaxshi ishlaydi, hatto u katta va kichik harflarni o'z ichiga oladi. Break bayonoti takrorlanadigan belgilarni olib tashlamaslikka yordam beradi.

j = 0; uchun (i = 0; ism1 ! = '\ 0'; i ++)

agar (ism1 ! = '0')

j ++;

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

agar (ism2 ! = '0')

j ++;

if (j == 0) cout << "YANGI YO'Q";

Bu erda biz ikkala nomda ham mavjud bo'lgan 0 raqamlarini olib tashlaymiz. Shuning uchun, nihoyat, baribir, belgilar o'chiriladi. Keyin j bir xil belgilar olib tashlanganidan keyin ikkala ismda ham mavjud bo'lgan harflar sonini ko'paytiradi. Endi biz unda kamida bitta belgi bor yoki yo'qligini tekshirishimiz kerak. Kodni samarali qilish uchun aytishimiz kerakki, agar unda hech qanday noyob belgilar bo'lmasa, olov o'yinini o'ynash imkoniyati yo'q.

5 -qadam: ikki tomonlama bog'langan ro'yxatni yaratish

string a = "olov";

Birinchidan, "olov" ni o'z ichiga olgan global satr yarating.

typedef struktura tuguni {

char ma'lumotlari;

tugun *keyingi, *oldingi;

} tugun;

tugun *top = NULL, *temp;

Endi belgi ma'lumotlarini, keyingi manzil ko'rsatgichini va oldingi manzil ko'rsatgichini o'z ichiga olgan tuzilmani yarating.

Keyin bog'langan ro'yxatning yuqori qismini ko'rsatadigan ko'rsatgich yarating.

tugun* ins (char a) {

tugun *yangi1;

new1 = yangi tugun;

new1-> ma'lumotlar = a;

new1-> keyingi = NULL;

new1-> oldingi = NULL;

agar (yuqori == NULL)

{

yuqori = yangi1;

temp = yuqori;

}

boshqa

{

temp-> keyingi = yangi1;

new1-> oldingi = temp;

temp = yangi1;

}

tepaga qaytish;

}

So'ngra, "olov" satrini belgi bo'yicha ikki marta bog'langan ro'yxatga kiriting.

bekor tekshirish (int j) {

int count1, bayroq = 0;

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

top = ins (a );

}

6 -qadam: Olovni o'ynash kodi

Olovni o'ynash uchun kod
Olovni o'ynash uchun kod

bekor tekshirish (int j)

{

int count1, bayroq = 0;

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

top = ins (a );

tugun *cur = tepa, *prev1;

temp-> keyingi = yuqori;

top-> prev = temp;

vaqt (1)

{

hisoblash1 = 1;

vaqt (count1 <j)

{

cur = cur-> keyingi;

hisoblash1 ++;

}

tugun *temp1 = cur;

prev1 = cur-> oldingi;

cur-> oldingi-> keyingi = cur-> keyingi;

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

temp1-> keyingi = NULL;

bepul (temp1);

cur = oldingi1-> keyingi;

tugun *test = cur;

agar (test-> ma'lumotlar == test-> keyingi-> ma'lumotlar)

tanaffus;

}

}

Biz noyob belgilar soniga ko'ra "olov" qatori bo'lgan dumaloq ro'yxatni ishga tushirishimiz kerak. Keyin biz "olovda" sanoqqa to'g'ri keladigan belgini olib tashlashimiz kerak. Biz ushbu kod parchasida ikki tomonlama bog'langan ro'yxatni ishlatishni tushunishimiz kerak. Bu ma'lum bir belgini olib tashlashga katta yordam beradi. U doimiy ravishda olib tashlanadi. Bir xil belgilar qayta -qayta kelishi shartiga yetguncha.

agar (test-> ma'lumotlar == test-> keyingi-> ma'lumotlar) buzilsa;

7 -qadam: Natijani ayting

o'tish (cur-> ma'lumotlar)

{

ish "f": cout << "DO'STLAR &&";

tanaffus;

case 'l': cout << "SEVGI <3";

tanaffus;

case 'a': cout << "AFFECTION $";

tanaffus;

case 'm': cout << "NIKO:)";

tanaffus;

case 'e': cout << "Dushman:(";

tanaffus;

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

tanaffus; }

Hisobga ko'ra, boshqa barcha belgilar o'chirilgandan so'ng, oxirgi belgi qoladigan yakuniy natijani aytish uchun ushbu kalit so'zidan foydalaning.

Endi siz shunchaki ismlarni kiritish orqali olovni osongina o'ynashingiz mumkin, bu kulgili. Do'stingizning ismlarini ishlatib, bu o'yinni o'ynang va ularni g'azablantiring. Rahmat.

8 -qadam: Olov kodi

FLAMES uchun to'liq kod bu erda mavjud, github.com/naveeen684/Flames-code-using-C-/tree/master