Решил написать бот с системой кармы, которая меняется в зависимости от решений юзера, и столкнулся с проблемой:после первого вопроса переменная будто присваивается 0. Помогите пожалуйста.
#include <iostream>
#include <Windows.h>
int ans;
using namespace std;
void firstQST()
{
setlocale(LC_ALL, "Russian");
while (ans != 1 or ans != 2) {
cin >> ans;
if (ans == 2) {
cout << "Братка:)" << endl;
break;
}
if (ans == 1) {
cout << "Ну что ж, начнём:(" << endl;
break;
}
if (ans != 1 and ans != 2) { cout << "Используй только цифры 1 и 2 для ответа." << endl; }
}
}
void secondQST()
{
setlocale(LC_ALL, "Russian");
while (ans != 1 or ans != 2) {
cin >> ans;
if (ans == 2) {
cout << "Я тут решаю, о чём мы будем говорить" << endl;
break;
}
if (ans == 1) {
cout << "Правильный выбор ;)" << endl;
break;
}
if (ans != 1 and ans != 2) { cout << "Используй только цифры 1 и 2 для ответа." << endl; }
}
}
int main()
{
setlocale(LC_ALL, "Russian");
int karma = 0; //Карма(тут всё понятно)
int LATENCY_TIME = 500; //Задержка вывода текста
int test;
cout << "Следующие несколько минут тебе предстоит общение с ботом, который понимает только 2 варианта ответа." << endl; // Инструкция
Sleep(LATENCY_TIME);
cout << "Используй только цифры 1 и 2 для ответа." << endl;
Sleep(LATENCY_TIME);
cout << "По оканчании общения бот решит давать ли тебе доступ к *ЗАСЕКРЕЧЕНО*" << endl;
Sleep(LATENCY_TIME);
cout << "P.S. Бот не несёт цели оскорбить кого-либо. " << endl;
Sleep(LATENCY_TIME);
cout << "Ты готов начать?" << endl;
cout << "1.Да. 2.Нет." << endl;
cin >> ans;
if (ans != 1) {
while (ans != 1) {
cout << "Когда захочешь начать, нажми '1'" << endl;
cin >> ans;
}
}
cout << "Ас саляму алейкум" << endl; // 1 Вопрос
cout << "1.Привет 2.Ва алейкум ас-салам" << endl;
firstQST();
if (ans == 2) { karma ++;}
if (ans != 2) { karma --;}
cout << karma << endl;
cout << "О чём хочешь поговорить?" << endl; // 2 Вопрос
cout << "1.О том, о чём хочешь ты 2.Свой вариант" << endl;
if (ans == 1) { karma ++; }
if (ans != 1 and ans != 2) { karma --; }
secondQST();
cout << karma << endl;
return 0;
}