Mục lục:
- Bước 1: Các khái niệm được sử dụng
- Bước 2: Chức năng chính
- Bước 3: Làm thế nào để bỏ qua các ký tự đặc biệt?
- Bước 4: Xóa các ký tự giống nhau
- Bước 5: Tạo danh sách liên kết đôi thông tư
- Bước 6: Mã để chơi ngọn lửa
- Bước 7: Cho biết kết quả
- Bước 8: Mã cho ngọn lửa
Video: FLAMES Sử dụng C ++: 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Xin chào các bạn, Tất cả chúng ta đều biết về trò chơi ngọn lửa. Lol, Đó là một trong những trò chơi vui nhộn nhất đã làm cho tuổi thơ của chúng ta hạnh phúc hơn. Trong hướng dẫn này, chúng ta sẽ xem cách viết mã một chương trình ngọn lửa bằng ngôn ngữ C ++.
Bước 1: Các khái niệm được sử dụng
Ở đây tôi đã sử dụng danh sách liên kết kép của Thông tư.
Bước 2: Chức năng chính
int main ()
{
string name1, name2;
int n1, n2; cout << "NHẬP TÊN:"; getline (cin, name1); cout << "NHẬP TÊN THỨ HAI:"; getline (cin, name2);
}
Đầu tiên, chúng ta cần lấy hai tên có dấu cách vì vậy tôi sử dụng hàm getline () để lấy chuỗi có dấu cách.
Bước 3: Làm thế nào để bỏ qua các ký tự đặc biệt?
void phát ra (chuỗi & a)
{
for (int i = 0; a ! = '\ 0'; i ++)
{
if (a > = 'a' && a <= 'z') {}
else if (a > = 'A' && a <= 'Z') {}
khác
a = '0';
}
}
Bây giờ, chúng ta cần xóa các ký tự đặc biệt như &, $, ''… vv. Bằng cách sử dụng chức năng này, chúng tôi đã loại bỏ tất cả các ký tự không phải là bảng chữ cái. Ở đây, thay vì loại bỏ, tôi thay thế nó bằng '0'.
Bước 4: Xóa các ký tự giống nhau
for (i = 0; name1 ! = '\ 0'; i ++)
for (j = 0; name2 [j]! = '\ 0'; j ++)
if ((name1 == name2 [j] || name1 == name2 [j] +32))
{
name1 = '0';
name2 [j] = '0';
nghỉ;
}
Đây là bước đầu tiên của trò chơi ngọn lửa, đó là chúng ta cần loại bỏ các ký tự giống nhau có trong hai tên. Đoạn mã này giúp chúng tôi thay thế các ký tự giống nhau bằng '0' và nó cũng hoạt động tốt ngay cả khi nó chứa cả chữ hoa và chữ thường. Câu lệnh break giúp chúng ta tránh việc loại bỏ các ký tự lặp lại.
j = 0; for (i = 0; name1 ! = '\ 0'; i ++)
if (name1 ! = '0')
j ++;
for (i = 0; name2 ! = '\ 0'; i ++)
if (name2 ! = '0')
j ++;
if (j == 0) cout << "NO FLAMES";
Ở đây, chúng tôi xóa tất cả các số '0 có trong cả hai tên. Do đó, cuối cùng, tất cả các ký tự giống nhau đều bị loại bỏ. Sau đó, j được tăng lên rằng nó là số lượng các chữ cái có trong cả hai tên sau khi loại bỏ các ký tự giống nhau. Bây giờ chúng ta cần kiểm tra xem nó có chứa ít nhất một ký tự hay không. Để làm cho mã hiệu quả, chúng ta cần nói rằng không có khả năng chơi trò chơi ngọn lửa nếu nó không chứa ký tự duy nhất.
Bước 5: Tạo danh sách liên kết đôi thông tư
string a = "ngọn lửa";
Đầu tiên, tạo một chuỗi toàn cầu có chứa "ngọn lửa".
nút cấu trúc typedef {
dữ liệu char;
nút * tiếp theo, * trước;
}nút;
nút * top = NULL, * temp;
Bây giờ, hãy tạo một cấu trúc chứa dữ liệu ký tự, con trỏ địa chỉ tiếp theo và con trỏ địa chỉ trước đó.
Sau đó, tạo một con trỏ trỏ đến đầu danh sách được liên kết.
nút * in (char a) {
nút * new1;
new1 = nút mới;
new1-> data = a;
new1-> next = NULL;
new1-> prev = NULL;
if (top == NULL)
{
top = new1;
temp = đầu;
}
khác
{
temp-> next = new1;
new1-> prev = temp;
temp = new1;
}
trở lại đầu trang;
}
Sau đó, chèn chuỗi "ngọn lửa" vào danh sách được liên kết đôi theo chiều ký tự.
kiểm tra void (int j) {
int count1, flag = 0;
for (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
}
Bước 6: Mã để chơi ngọn lửa
kiểm tra void (int j)
{
int count1, flag = 0;
for (int i = 0; a ! = '\ 0'; i ++)
top = ins (a );
nút * cur = top, * prev1;
temp-> next = top;
top-> pres = temp;
trong khi (1)
{
đếm1 = 1;
while (count1 <j)
{
cur = cur-> tiếp theo;
đếm1 ++;
}
nút * temp1 = cur;
prev1 = cur-> prev;
cur-> prev-> next = cur-> next;
cur-> next-> prev = cur-> prev;
temp1-> tiếp theo = NULL;
miễn phí (temp1);
cur = prev1-> tiếp theo;
nút * test = cur;
if (test-> data == test-> next-> data)
nghỉ;
}
}
chúng ta cần chạy danh sách vòng tròn là chuỗi "ngọn lửa" theo số lượng các ký tự duy nhất. Sau đó, chúng ta cần loại bỏ ký tự trong "ngọn lửa" trùng với số đếm. Chúng ta nên nhận ra việc sử dụng danh sách được liên kết kép trong đoạn mã này. Nó giúp ích rất nhiều để loại bỏ một ký tự cụ thể. Nó loại bỏ liên tục. Cho đến khi nó đạt đến điều kiện là các ký tự giống nhau lặp đi lặp lại.
if (test-> data == test-> next-> data) break;
Bước 7: Cho biết kết quả
chuyển đổi (cur-> dữ liệu)
{
case 'f': cout << "FRIENDS &&";
nghỉ;
case 'l': cout << "LOVE <3";
nghỉ;
case 'a': cout << "AFFECTION $";
nghỉ;
case 'm': cout << "MARRIAGE:)";
nghỉ;
case 'e': cout << "ENEMY:(";
nghỉ;
case 's': cout << "SIBLING";
nghỉ; }
Sử dụng câu lệnh switch này để cho biết kết quả cuối cùng là ký tự cuối cùng còn lại sau khi loại bỏ tất cả các ký tự khác theo số lượng.
Bây giờ bạn có thể chơi ngọn lửa một cách dễ dàng bằng cách chỉ cần nhập tên, Thật buồn cười phải không. Chơi trò chơi này bằng cách sử dụng tên của bạn bè của bạn và làm cho họ tức giận LOL. Cảm ơn bạn.
Bước 8: Mã cho ngọn lửa
Mã hoàn chỉnh cho FLAMES hiện có tại đây, github.com/naveeen684/Flames-code-using-C-/tree/master