Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > программа на движение


Автор: Talsy 9.2.2008, 03:03
Пишем программку на языке С. (знакомы с масисвами, ф-циями)
Суть  в том что три таракана одновременно начинают движение по горизонтали вправо с разной (допускаются случаи что иногда и с одинаковой) скоростью. Первый добежавший до правого края консоли-победитель. Все!
Три таракана есть-как их заставить двигаться вправо? Я по сути понимаю, что разницу в скорости можно задать через генератор случайных чисел в дипазоне например от1 до 4 для каждого таракашки, а вот с перемещением чего-то никак не доходит.
А как определиь победителя? Подскажите кто что может smile, я овсем чайник в программировании,плиз.

#include <iostream>
#include <windows.h>
#include <conio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;

HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
COORD c;
void Tarakan1()
{     

    SetConsoleTextAttribute(h,12);
    c.X=1;
    c.Y=3;
    SetConsoleCursorPosition (h,c);
    cout<<"=э@<\n\n";
    
}
void Tarakan2()
{     
    SetConsoleTextAttribute(h,14);
    c.X=1;
    c.Y=7;
    SetConsoleCursorPosition (h,c);
    cout<<"=э@<\n\n";
}
void Tarakan3()
{
    SetConsoleTextAttribute(h,10);
    c.X=1;
    c.Y=11;
    SetConsoleCursorPosition (h,c);
    cout<<"=э@<\n\n";
    }


З.Ы. такое количество библиотек, рассчитано еще и на то, что я пишу меню и тотализатор для забегаsmile

Автор: susanin 10.2.2008, 01:21
ну могу дать такую идею..на вскидку....создать одномерный массив-это будет дистанция...рандомно выбирать значение переменной i для двух тараканов...а далее сделать цикл типа for(int i=0;i<end;i++) ///e каждого i будет увеличиваться по разному...у кого быстрее увеличится до конца массива (end) тот и победил...

Автор: Dronchik 15.2.2008, 11:15
Talsy, во первых. Юзай тег .
По теме: 
Цитата(susanin @  10.2.2008,  01:21 Найти цитируемый пост)
создать одномерный массив-это будет дистанция...рандомно выбирать значение переменной i для двух тараканов...а далее сделать цикл типа for(int i=0;i<end;i++) ///e каждого i будет увеличиваться по разному...у кого быстрее увеличится до конца массива (end) тот и победил...

Можно создать 3 переменных, которые будут принимать значения пройденого пути каждого таракана. Тараканов можно двигать кареткой. То есть каретку ставишь перед тараканом и добавлять от 1 до 4 пробелов в зависимости от скорости. и в это же время прибавляешь к переменным число, соответствующее количеству пробелов. И когда одна из переменых превышает опустимое значение, значит один из тараканов победил. Определяешь какой оператором if. Думаю понятно объяснил. О способах управления кареткой почитай в учебниках для новичков по С++.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)