Помогите найти ошибки

Помогите найти ошибки

Если я правильно понял, то у вас в проекте есть два файла с расширением .срр — 31.срр и 3.срр в каждом из которых определена функция main(). На это вам и указывает компилятор.
Чтобы исправить эту ошибку, удалите один из файлов или создайте новый проект.

помогите, не понимаю в чем дело

 #include <iostream>
#include <conio.h>
#include <cstdlib>
#include <windows.h>
int i = 1;
int r = 1;
int main(int argc, char** argv) 
{
    int f = 1;
    while (i < 20000000000)

 {
    if (i == 1)
    {
    if (r==1)
    {
    system("color 4");
    r++;
    }
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    i=i+1;
    if (f == 1)
    {
    if (f == 1)
    {
    Sleep(200);
    f=f+1;
    }
    else if (f == 2)
    {
    Sleep(400); 
    f=f+1;
    }
    else if (f == 3)
    {
    Sleep(600);
    f=f+1;
    }
    else if (f == 4)
    {
    Sleep(800);
    f=f-3;
    }
    system ("cls");
    }
    if (i == 2);
    {
    if (r==2)
    {
    system("color 2");
    r++;
    }
        std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    i=i+1;
    if (f == 1)
    {
    Sleep(200);
    f=f+1;
    }
    else if (f == 2)
    {
    Sleep(400); 
    f=f+1;
    }
    else if (f == 3)
    {
    Sleep(600);
    f=f+1;
    }
    else if (f == 4)
    {
    Sleep(800);
    f=f-3;
    }
    system ("cls");
    }
    if (i == 2);
    {
    if (r==3)
    {
    system("color 6");
    r++;
    }
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    std::cout<<"        ********"<< std::endl;
    i=i+1;
    if (f == 1)
    {
    Sleep(200);
    f=f+1;
    }
    else if (f == 2)
    {
    Sleep(400); 
    f=f+1;
    }
    else if (f == 3)
    {
    Sleep(600);
    f=f+1;
    }
    else if (f == 4)
    {
    Sleep(800);
    f=f-3;
    }
    system ("cls");
    }
    if (i == 4);
    {
    if (r==4)
    {
    system("color 9");
    r=r-3;
    }
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<""<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    std::cout<<"********"<< std::endl;
    i=i-3;
    if (f == 1)
    {
    Sleep(200);
    f=f+1;
    }
    else if (f == 2)
    {
    Sleep(400); 
    f=f+1;
    }
    else if (f == 3)
    {
    Sleep(600);
    f=f+1;
    }
    else if (f == 4)
    {
    Sleep(800);
    f=f-3;
    }
    system ("cls");
    }
 }
 return 0;
}

VASA, что это у вас за монстр-код. Давайте напишем так

#include <iostream>
#include <cstdlib>
#include <windows.h>

const int rounds = 4;

int main()
{
    for (int i = 0; i < rounds; i++) {

        system("color 2");

        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;

        Sleep(500);
        system("cls");

        system("color 4");

        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;

        Sleep(500);
        system("cls");

        system("color 6");

        for (int j = 0; j < 5; j++) {
            std::cout << std::endl;
        }

        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;
        std::cout << "     *****" << std::endl;

        Sleep(500);
        system("cls");

        system("color 8");

        for (int j = 0; j < 5; j++) {
            std::cout << std::endl;
        }

        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;
        std::cout << "*****" << std::endl;

        Sleep(500);
        system("cls");
    }

    return 0;
}

А так будет лучше

#include <iostream>
#include <cstdlib>
#include <windows.h>

const int rounds = 4;

int main()
{
    for (int i = 0; i < rounds; i++) {

        system("color 2");

        for (int i = 0; i < 5; i++) {
            std::cout << "*****" << std::endl;
        }

        Sleep(200);
        system("cls");

        system("color 4");

        for (int i = 0; i < 5; i++) {
            std::cout << "     *****" << std::endl;
        }

        Sleep(400);
        system("cls");

        system("color 6");

        for (int j = 0; j < 5; j++) {
            std::cout << std::endl;
        }

        for (int i = 0; i < 5; i++) {
            std::cout << "     *****" << std::endl;
        }

        Sleep(600);
        system("cls");

        system("color 8");

        for (int j = 0; j < 5; j++) {
            std::cout << std::endl;
        }

        for (int i = 0; i < 5; i++) {
            std::cout << "*****" << std::endl;
        }

        Sleep(800);
        system("cls");
    }

    return 0;
}

Или так, поинтересней, где можно менять заполнитель, ширину и высоту квадрата

#include <iostream>
#include <cstdlib>
#include <windows.h>

const char* colors[] = { "color 2", "color 4", "color 6", "color 9" };
const int milliseconds = 200;

void coord(int x, int y);
void getFill(int step, char fill);

int main()
{
    const int width = 20;
    const int height = 10;
    const char fill = '*';

    int counter = 4;
    int x, y;

    do {
        x = 0, y = 0;

        for (int j = 0; j < 2; j++) {
            system(::colors[j]);

            for (int i = 0; i < height; i++){
                coord(x, y);
                getFill(width, fill);
            }

            x += width;

            Sleep(::milliseconds * (j + 1));
            system("cls");
        }

        for (int k = 2; k < 4; k++) {
            system(::colors[k]);

            x -= width;

            coord(0, height);

            for (int i = 0; i < height; i++){
                coord(x, y);
                getFill(width, fill);
            }

            Sleep(::milliseconds * (k + 1));
            system("cls");
        }

    } while (counter--);

    return 0;
}

void coord(int x, int y)
{
    for (int j = 0; j < y; j++){
        std::cout << "\n";
    }

    for (int i = 0; i < x; i++){
        std::cout << " ";
    }
}

void getFill(int width, char fill)
{
    for (int i = 0; i < width; i++) {
        std::cout << fill;
    }

    std::cout << '\n';
}

beginner, вы меня неправильно поняли, я хотел чтобы скорость смены квадратов убывала, и дойдя до 1600 млс начинала нарастать, дойдя до 200 млс, опять начинала убывать и т.д..

VASA, я не видел, чтобы вы это пытались реализовать в вашей программе.
Попытайтесь реализовать ваш замысел взяв за основу последнюю версию моей программы и в этих местах

   for (int j = 0; j < 2; j++) {
        system(::colors[j]);

        for (int i = 0; i < height; i++){
            coord(x, y);
            getFill(width, fill);
        }

        x += width;

        Sleep(::milliseconds * (j + 1));    <-- здесь
        system("cls");
    }

    for (int k = 2; k < 4; k++) {
        system(::colors[k]);

        x -= width;

        coord(0, height);

        for (int i = 0; i < height; i++){
            coord(x, y);
            getFill(width, fill);
        }

        Sleep(::milliseconds * (k + 1));   <-- и здесь
        system("cls");
    }

организуйте проверочные условия удовлетворяющие вашему заданию.

VASA, я не видел, чтобы вы это пытались реализовать в вашей программе.

вот:

if (f == 1)
{
Sleep(200);
f=f+1;
}
else if (f == 2)
{
Sleep(400); 
f=f+1;
}
else if (f == 3)
{
Sleep(600);
f=f+1;
}
else if (f == 4)
{
Sleep(800);
f=f-3;
}

Попытайтесь реализовать ваш замысел взяв за основу последнюю версию моей программы и в этих местах
организуйте проверочные условия удовлетворяющие вашему заданию.
попробую.

beginner, вы меня неправильно поняли, я хотел чтобы скорость смены
квадратов убывала, и дойдя до 1600 млс начинала нарастать, дойдя до
200 млс, опять начинала убывать и т.д..

Я не вижу 1600 млс :/ И вообще все так сложно.

Говнокод рулит ((

VASA — нуб, ему простительно. Но от тебя, beginner, я не ожидал ((

На четвертой итерации ты наконец-то вспомнил про функции. Но почему-то в функцию определил только вывод строки. Логичнее было бы сделать функцию для отрисовки всего прямоугольника в указанной позиции и с указанными размерами. Еще можно в качестве необязательного параметра указать символ-заполнитель.

Step 2. Т.к. используются пары чисел (x, y) для указания координат и для указания размеров прямоугольника по тем же осям, логично определить хотя бы структуру (или класс) для хранения этой пары чисел. Или использовать готовую структуру данных из STL.

Step 3. При выводе прямоугольника сильно сдвинутого вправо и/или вниз, прямоугольник будет отрисовываться неправильно из-за переноса на следующую строку и/или скроллинга. Поэтому в функции нужно учитывать отсечение при выводе прямоугольника по видимой области окна консоли. Кстати при этом можно будет задавать и отрицательные координаты начала прямоугольника.

Step 4. Где-то в районе статьи про игру «Змейка» (ищи на этом сайте саму статью и смежные по тематике, а также темы на форуме) был модуль прямого управления курсором и цветом выводимых на консоль символов для винды и линуха.

VASA — нуб, ему простительно.

извините конечно, но мне 11 лет, так что я далеко не нуб.

извините конечно, но мне 11 лет, так что я далеко не нуб.

не обижайся, но такое:

if (f == 1)
{
Sleep(200);
f=f+1;
}
else if (f == 2)
{
Sleep(400); 
f=f+1;
}
else if (f == 3)
{
Sleep(600);
f=f+1;
}
else if (f == 4)
{
Sleep(800);
f=f-3;
}

мог предложить только нуб :)

Нуб — это не оскорбление, а констатация факта: нуб — «новичок». ))

А то, что тебе еще только 11 лет, вселяет надежду. Учись, и воздастся тебе за труды твои )))

beginner, раз уж вы предложили программу (вот эту):

#include <iostream>
#include <cstdlib>
#include <windows.h>

const char* colors[] = { "color 2", "color 4", "color 6", "color 9" };
const int milliseconds = 200;

void coord(int x, int y);
void getFill(int step, char fill);

int main()
{
    const int width = 20;
    const int height = 10;
    const char fill = '*';

    int counter = 4;
    int x, y;

    do {
        x = 0, y = 0;

        for (int j = 0; j < 2; j++) {
            system(::colors[j]);

            for (int i = 0; i < height; i++){
                coord(x, y);
                getFill(width, fill);
            }

            x += width;

            Sleep(::milliseconds * (j + 1));
            system("cls");
        }

        for (int k = 2; k < 4; k++) {
            system(::colors[k]);

            x -= width;

            coord(0, height);

            for (int i = 0; i < height; i++){
                coord(x, y);
                getFill(width, fill);
            }

            Sleep(::milliseconds * (k + 1));
            system("cls");
        }

    } while (counter--);

    return 0;
}

void coord(int x, int y)
{
    for (int j = 0; j < y; j++){
        std::cout << "\n";
    }

    for (int i = 0; i < x; i++){
        std::cout << " ";
    }
}

void getFill(int width, char fill)
{
    for (int i = 0; i < width; i++) {
        std::cout << fill;
    }

    std::cout << '\n';
}

то прошу её растолковать.

P.S. просто сам не могу разобраться.

Фтьiкай, судя из этого комментария ни о каких структурах, а тем более классах речь не идет, если VASA не может в моем коде разобраться (вы бы видели его код, перед тем как его отформатировал модератор). Моей задачей было попытаться, без штатного экстрасенса, разобраться с говно-кодом и попытаться на усложняющихся примерах показать возможные варианты решения задачи без управления курсором и цветом в консоли (это было бы лишнее), что, в принципе, мне удалось (единственное, не угадал, то что нужно было до 1600 млс ускорять процесс, а после достижения 200 млс — снова замедлятся, с шагом 200 млс).
А в основном вы правы ;)

beginner, я собственно все более «продвинутые» предложения и выделил под следующими шагами. А основное — это неправильное выделение части задачи для оформления в подпрограмму.

Кстати, а где подробное описалово твоей программы? То, что просил VASA.
;-)

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.