Агуулгын хүснэгт:

C ++ ашиглан дөл: 8 алхам
C ++ ашиглан дөл: 8 алхам

Видео: C ++ ашиглан дөл: 8 алхам

Видео: C ++ ашиглан дөл: 8 алхам
Видео: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"] 2024, Арваннэгдүгээр
Anonim
C ++ ашиглан дөл
C ++ ашиглан дөл
C ++ ашиглан дөл
C ++ ашиглан дөл

Сайн уу найзуудаа, бид галын тоглоомын талаар бүгд мэднэ. Хөөе, энэ бол бидний бага насыг илүү аз жаргалтай болгосон хамгийн хөгжилтэй тоглоомуудын нэг юм. Энэхүү зааварчилгаанд бид C ++ хэлийг ашиглан галын програмыг хэрхэн кодлохыг харах болно.

Алхам 1: Ашигласан ойлголтууд

Ашигласан ойлголтууд
Ашигласан ойлголтууд

Энд би Circular давхар холбосон жагсаалтыг ашигласан.

Алхам 2: Үндсэн функц

int main ()

{

мөрийн нэр1, нэр2;

int n1, n2; cout << "НЭГДҮГЭЭР НЭРГҮҮЛЭХ:"; getline (cin, нэр1); cout << "SECOND NAME НЭР:"; getline (cin, нэр2);

}

Нэгдүгээрт, бид хоёр нэрийг зайтай авах ёстой, ингэснээр би getline () функцийг ашиглан зайтай мөрийг авах болно.

Алхам 3: Онцгой дүрүүдийг хэрхэн орхих вэ?

void emit (string & a)

{

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

{

хэрэв (a > = 'a' && a <= 'z') {}

өөр бол (a > = 'A' && a <= 'Z') {}

өөр

a = '0';

}

}

Одоо бид &, $, '' … гэх мэт тусгай тэмдэгтүүдийг устгах хэрэгтэй. Энэ функцийг ашигласнаар бид цагаан толгойн үсгээс бусад бүх тэмдэгтүүдийг устгасан. Энд устгахын оронд би үүнийг "0" -ээр сольсон.

Алхам 4: Ижил тэмдэгтүүдийг арилгах

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

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

хэрэв ((name1 == name2 [j] || name1 == name2 [j] +32))

{

name1 = '0';

нэр2 [j] = '0';

завсарлага;

}

Энэ бол галын тоглоомын эхний алхам бөгөөд бид хоёр нэрэнд байгаа ижил дүрүүдийг арилгах хэрэгтэй. Энэхүү кодын хэсэг нь ижил тэмдэгтүүдийг '0' -ээр солиход тусалдаг бөгөөд том, жижиг үсгийг агуулсан байсан ч сайн ажилладаг. Завсарлагааны мэдэгдэл нь давтагдсан дүрүүдийг устгахаас зайлсхийхэд тусалдаг.

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

хэрэв (нэр1 ! = '0')

j ++;

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

хэрэв (нэр2 ! = '0')

j ++;

хэрэв (j == 0) cout << "NO FLAMES";

Энд бид хоёулангийнх нь нэрэнд байгаа бүх 0 -ийг хасав. Тиймээс, эцэст нь тэмдэгтүүдийг бүгдийг нь хасдаг. Дараа нь j нь ижил тэмдэгтүүдийг арилгасны дараа хоёуланд нь байгаа үсгүүдийн тоо юм. Одоо бид дор хаяж нэг тэмдэгт агуулсан эсэхийг шалгах хэрэгтэй. Кодыг үр ашигтай болгохын тулд өвөрмөц дүрүүд байхгүй бол дөл тоглоом тоглох боломжгүй гэдгийг бид хэлэх ёстой.

Алхам 5: Давхар холбосон жагсаалт үүсгэх

мөр a = "дөл";

Нэгдүгээрт, "дөл" агуулсан дэлхийн хэлхээг үүсгэнэ үү.

typedef бүтцийн зангилаа {

char өгөгдөл;

зангилаа *дараагийн, *өмнөх;

} зангилаа;

зангилаа *top = NULL, *temp;

Одоо тэмдэгтийн өгөгдөл, дараагийн хаягийн заагч, өмнөх хаягийн заагчийг агуулсан бүтэц үүсгэнэ үү.

Дараа нь холбосон жагсаалтын дээд хэсэгт чиглэсэн заагч үүсгэнэ үү.

node* ins (char a) {

зангилаа *шинэ1;

new1 = шинэ зангилаа;

new1-> өгөгдөл = a;

new1-> next = NULL;

new1-> prev = NULL;

if (top == NULL)

{

top = new1;

температур = дээд;

}

өөр

{

temp-> next = new1;

new1-> prev = temp;

темп = шинэ1;

}

буцах дээд хэсэг;

}

Дараа нь "дөл" мөрийг давхар холбосон жагсаалтад дүрсийн дагуу оруулна уу.

хүчингүй шалгах (int j) {

int count1, туг = 0;

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

top = ins (a );

}

Алхам 6: Дөлийг тоглуулах код

Дөлийг тоглуулах код
Дөлийг тоглуулах код

хүчингүй шалгах (int j)

{

int count1, туг = 0;

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

top = ins (a );

зангилаа *cur = дээд, *prev1;

temp-> next = top;

top-> prev = temp;

байхад (1)

{

тоолох1 = 1;

байхад (тоо1 <j)

{

cur = cur-> дараагийн;

тоолох1 ++;

}

зангилаа *temp1 = cur;

prev1 = cur-> өмнөх;

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

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

temp1-> next = NULL;

үнэгүй (temp1);

cur = prev1-> дараагийн;

зангилаа *тест = cur;

хэрэв (тест-> өгөгдөл == тест-> дараагийн-> өгөгдөл)

завсарлага;

}

}

Бид өвөрмөц дүрүүдийн тоогоор "дөл" мөр болох дугуй жагсаалтыг ажиллуулах хэрэгтэй. Дараа нь бид тоололтой давхцаж буй "дөл" дэх дүрийг арилгах хэрэгтэй. Энэ кодын хэсэг дэх давхар холбосон жагсаалтын хэрэглээг бид ойлгох ёстой. Тодорхой дүрийг арилгахад маш их тусалдаг. Энэ нь тасралтгүй арилгадаг. Ижил тэмдэгтүүд дахин дахин ирэх нөхцөл байдалд хүрэх хүртэл.

if (test-> data == test-> next-> data) эвдэх;

Алхам 7: Үр дүнг хэлнэ үү

солих (cur-> өгөгдөл)

{

кейс 'f': cout << "FRIENDS &&";

завсарлага;

кейс 'l': cout << "LOVE <3";

завсарлага;

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

завсарлага;

кейс 'м': cout << "ГЭРЛЭХ:)";

завсарлага;

тохиолдол 'e': cout << "ДАЙСАН:(";

завсарлага;

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

завсарлага; }

Тооны дагуу бусад бүх тэмдэгтийг устгасны дараа үлдэх сүүлчийн тэмдэгт болох эцсийн үр дүнг хэлэхийн тулд энэ шилжүүлэгчийг ашиглана уу.

Одоо та зүгээр л нэрсийг оруулснаар дөлийг амархан тоглож чадна. Найзынхаа нэрийг ашиглан энэ тоглоомыг тоглож, уурлуулаарай. Баярлалаа.

Алхам 8: Галын код

FLAMES -ийн бүрэн кодыг эндээс авах боломжтой.

github.com/naveeen684/Flames-code-using-C-/tree/master