Я пытаюсь сделать код, который имитирует функциональность графического редактора. Пользователь должен ввести инструкцию, которая является символом, а затем параметры, которые будут иметь каждое действие.
Максимальный размер изображения составляет 250, поэтому я создал вектор из 250 символов в верхней части области видимости.
Моя стратегия состояла в том, чтобы в случае раскраски пикселя я мог просто выбрать координаты этого вектора и нужный цвет (который также представлен в виде символа) и назначить их одинаково.
Сначала код кажется нормальным. Но когда я набираю ‘L’ для функции цветного пикселя, он просто переходит в бесконечный цикл, печатая матрицу снова и снова. Что на самом деле довольно странно, учитывая, что эта функция даже не имеет цикла.
Где я скучал?
#include <iostream>
using namespace std;
int res;
char imagem[250][250];
char comando;
int m, n;
int i, j;
int x, y;
char cor;void createImage() {
cin >> m >> n;
for (i=0; i<m; i++) {
for (j=0; j<n; j++){
imagem[i][j] = 'o';
}
}
}
void cleanImage(){
for (i=0; i<m; i++) {
for (j=0; j<n; j++) {
imagem[i][j] = 'o';
}
}
}
void printImage() {
for (i=0; i<m; i++) {
for (j=0; j<n; j++) {
printf("%c", imagem[i][j]);
}
printf("\n");
}
}
void paintPixel() {
cin >> x >> y >> cor;
imagem[x][y] = cor;
}
int main(int argc, const char * argv[])
{
while (comando != 'X') {
cin >> comando;
switch(comando) {
case 'I': createImage();
case 'C': cleanImage();
case 'J': printImage();
case 'L': paintPixel();
}
}
return 0;
}
Задача ещё не решена.
Других решений пока нет …