Привет я создаю бота который сможет немного общаться с человеком. Но мне нужны еще вопросы и ответы на них. Давай начнем с еще 20 (у меня их 2). Эти вопросы должны быть такими которые человек мог бы его спросить.


using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChatBot : MonoBehaviour
{
    public InputField inputField; // Ссылка на InputField
    public Button submitButton; // Ссылка на кнопку
    public Text chatText; // Ссылка на Text для отображения диалога

    private Dictionary<string[], string> answers = new Dictionary<string[], string>(new StringArrayComparer())
    {
        { new string[] { "здр", "хай", "прив","здар" }, "Привет!" },
        { new string[] { "Как дела", "как ты", "как пожива" , "как здоровье", "как сам", "как настрое" }, "У меня всё отлично, спасибо!" },
        // Добавьте свои вопросы и ответы здесь
    };

    void Start()
    {
        submitButton.onClick.AddListener(OnSubmit);
        inputField.onEndEdit.AddListener(OnEnterPressed);
    }

    void OnSubmit()
    {
        ProcessInput();
    }

    void OnEnterPressed(string input)
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            ProcessInput();
        }
    }

    void ProcessInput()
    {
        string userQuestion = inputField.text.Trim();
        if (!string.IsNullOrEmpty(userQuestion))
        {
            // Добавляем текст пользователя в чат
            chatText.text += "Вы: " + userQuestion + "\n";

            string botResponse = GetBotResponse(userQuestion);
            chatText.text += botResponse;

            // Очистка поля ввода после отправки
            inputField.text = "";
            inputField.ActivateInputField(); // Активировать поле ввода для следующего вопроса
        }
    }

    private string GetBotResponse(string userQuestion)
    {
        // Очистка пользовательского ввода от пробелов и знаков пунктуации
        string normalizedUserQuestion = NormalizeInput(userQuestion);

        foreach (var entry in answers)
        {
            foreach (var key in entry.Key)
            {
                // Очистка ключа от пробелов и знаков пунктуации перед сравнением
                string normalizedKey = NormalizeInput(key);

                // Проверяем на полное совпадение или наличие в строке
                if (normalizedKey.Equals(normalizedUserQuestion, StringComparison.OrdinalIgnoreCase) ||
                    normalizedUserQuestion.Contains(normalizedKey))
                {
                    return "Бот: " + entry.Value + "\n";
                }
            }
        }

        // Ответ, если вопроса нет
        return "Бот: Извините, я не знаю ответа на этот вопрос.\n";
    }

    // Метод для очистки ввода от пробелов и знаков пунктуации
    private string NormalizeInput(string input)
    {
        char[] punctuations = { ' ', ',', '.', '-', '!', '?', '"', '„', '“', ':', ';' };
        string cleanedInput = input.Trim().ToLowerInvariant();
        foreach (char punctuation in punctuations)
        {
            cleanedInput = cleanedInput.Replace(punctuation.ToString(), "");
        }
        return cleanedInput;
    }

    private class StringArrayComparer : IEqualityComparer<string[]>
    {
        public bool Equals(string[] x, string[] y)
        {
            if (x.Length != y.Length) return false;

            for (int i = 0; i < x.Length; i++)
            {
                if (!x[i].Equals(y[i], StringComparison.OrdinalIgnoreCase))
                    return false;
            }
            return true;
        }

        public int GetHashCode(string[] obj)
        {
            int hash = 17;
            foreach (string str in obj)
            {
                hash = hash * 31 + (str?.ToLower().GetHashCode() ?? 0);
            }
            return hash;
        }
    }
}