Мне нужно проверить одну входную строку от пользователя. В конце концов это нужно будет разбить на две координаты. то есть а4 с3. И как только они являются координатами, их нужно разбить на 4 отдельных целых. a = 0 b = 1 и т. д. Они также должны соответствовать следующим условиям:
Если достигнут сигнал окончания ввода, программа завершается.
В противном случае все не алфавитно-цифровые символы удаляются из ввода.
Если остается только одна буква «Q»
Затем программа выходит.
Если то, что осталось, состоит из 4 символов, с одной буквой и одной цифрой среди первых двух символов и одной буквой и одной цифрой среди последних двух символов, и если каждая пара букв и цифр находится в допустимом диапазоне для нашей сетки
Тогда ввод приемлем.
Я полностью обдумал и разрушил свою функцию. Пожалуйста, дайте мне знать, где я могу сделать некоторые исправления.
В основном у меня возникают проблемы при переходе от одной строки к четырем символам, если и только если данные действительны. Все остальное я могу справиться.
Вот что у меня есть.
void Grid::playerMove()
{
string rawMove;
string pair1 = " ";
string pair2 = " ";
bool goodInput = false;
char maxChar = 'a';
char chary1, chary2;
int x11,x22,y11,y22;
for (int i =0; i<size; i++)
{
maxChar++;
}
while(!goodInput)
{
cout<<"What two dots would you like to connect? (Q to quit) ";
cin>>rawMove;
rawMove = reduceWords(rawMove);
if (rawMove == "Q")
{
cout<<"end game";
goodInput = false;
}
else if (rawMove.size() == 4)
{
for(int j=0;j<2;j++)
{
if (pair1[j] >='a' && pair1[j] <=maxChar)
{
chary1 = pair1[j];
}
else if(pair1[j] >=0 && pairl[j]<=size+1)
{
x1 = pair1[j];
}
}
for(int k=0;k<2;k++)
{
if (pair2[k] >='a' && pair2[k] <=maxChar)
{
chary2 = pair2[k];
}
else if(pair2[k] >=0 && pair2[k]<=size+1)
{
x2 = pair2[k];
}
}
}
if(char1 != NULL && char2 != NULL && x1 !=NULL && x2 != NULL)
{
for (int m = 0; m <= size m++)
{
if (char1 == m;)
{
x1 = m;
}
}
for (int n = 0; n <= size n++)
{
if (char2 == n)
{
x2 = n;
}
}
}
}
Конечной целью было бы иметь x1, x2, y1 и y2 с соответствующими значениями.
Имейте в виду, мне не разрешено иметь какие-либо внешние библиотеки.