Форум программистов, компьютерный форум CyberForum.ru

Модель гонки черепахи и зайца (программа даже не запускается..) - C++

Восстановить пароль Регистрация
 
elvipka
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 54
28.04.2012, 19:12     Модель гонки черепахи и зайца (программа даже не запускается..) #1
условие прикреплено
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream>
#include <clocale>
#include<conio.h>
#include <STDLIB.H>
using std::srand;
using std::rand;
#include <time.h>
#include <dos.h>
using namespace std;
 
void Rabbit(int *pos);
void Turtle(int *pos);
 
int main(void)
{randomize();
 {int k_pos=0,
     l_pos=0;
 
 bool finish=false;
 
 cout<<"Press any key to start racing!";
  getch();
 
 cout<<"\n\nBAMM!!! START!\n\nRABBIT\t\tTURTLE\n";
 
    
 
 while(!finish)
 {
  Rabbit(&l_pos);
  Turtle(&k_pos);
 
  if(l_pos<0) l_pos=0;
  if(k_pos<0) k_pos=0;
 
  if(k_pos>=69)
  {
   k_pos=69;
   finish=true;
  }
 
  if(l_pos>=69)
  {
   l_pos=69;
   finish=true;
  }
 
  if(l_pos == k_pos )
   cout<<"AUCH!!!\t\t"<<k_pos<<"\n";
 
  else cout<<l_pos<<"\t\t"<<k_pos<<"\n";
 
  Sleep(300);
 }
 
 if(l_pos == k_pos)
  cout<<"Nikto ne pobedil!";
 
 else if(l_pos==69)
  cout<<"Pobedil zayats. Ex.";
 
 else
  cout<<"Pobedila cherepaxa! Ura!";
 
 cout<<"\n\nRacing has ended! Press any key, please...";
 
 getch();
}
 
void Rabbit(int *l_pos);
{
 switch(random(9))
 {
  case 0: case 1:
   break;
 
  case 2: case 3:
   *l_pos+=9;
   break;
 
  case 4:
   *l_pos-=12;
   break;
 
  case 5: case 6: case 7:
   *l_pos+=1;
   break;
 
  default:
   *l_pos-=2;
 }
}
//---------------------------------------------------------------------------
 
void Turtle(int *k_pos)
{
 switch(random(9))
 {
  case 5: case 6:
   *k_pos-=6;
   break;
 
  case 7: case 8: case 9:
   *k_pos+=1;
   break;
 
  default:
   *k_pos+=3;
 }
}
 
void f1 (int k)
{
for (int i=0;i<k;i++)
    {cout<<"*"; }
 
     for (int g=0;g<=10000000;g++)
     {
         g--;g++;
     }
     system("cls");
     //cout<<endl;
}
 
void f2 (int l)
{
for (int i=0;i<l;i++)
    {cout<<"*"; }
 
     for (int g=0;g<=10000000;g++)
     {
         g--;g++;
     }
     system("cls");
     //cout<<endl;
}
 
}
при запуске выдает ошибки:

\main.cpp||In function 'int main()':|
\main.cpp|15|error: 'randomize' was not declared in this scope|
\main.cpp|66|warning: suggest parentheses around assignment used as truth value|
\main.cpp|68|warning: suggest parentheses around assignment used as truth value|
||=== Build finished: 1 errors, 2 warnings ===|

про рандом, уже какие только библиотеки не подключала - не работают...
помогите, пожалуйста)
Миниатюры
Модель гонки черепахи и зайца (программа даже не запускается..)  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algiz
159 / 159 / 13
Регистрация: 23.02.2011
Сообщений: 347
28.04.2012, 19:21     Модель гонки черепахи и зайца (программа даже не запускается..) #2
про рандом:
C++
1
2
3
4
#include <cstdlib>
#include <time.h>
srand(time(0));// сбросить рандом
rand() % (b-a) + a;// получить случайное значение на заданном промежутке
elvipka
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 54
29.04.2012, 12:02  [ТС]     Модель гонки черепахи и зайца (программа даже не запускается..) #3
Цитата Сообщение от Algiz Посмотреть сообщение
про рандом:
C++
1
2
3
4
#include <cstdlib>
#include <time.h>
srand(time(0));// сбросить рандом
rand() % (b-a) + a;// получить случайное значение на заданном промежутке
спасибо!)
исправляю у себя.

Добавлено через 16 часов 39 минут
все равно не работает корректно...
System16v
 Аватар для System16v
3 / 3 / 0
Регистрация: 19.02.2014
Сообщений: 115
16.04.2015, 13:02     Модель гонки черепахи и зайца (программа даже не запускается..) #4
Дошел до этой задачи по книге Дейтела,может кому пригодится.Вот написал.Сложного ничего вообще не было .Меня больше убивали предыдущие задания с покером...Написать то игру в покер,то написал и все работает,только код огромный вообще получился,свыше 1000 строк.Может тут есть где решения про покер?Поиск что-то ничего не дал.Буду благодарен,просто интересно посмотреть как другие реализовали,может мой код укоротить можно было бы в два\три раза .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//---------------------------------------------------------------------------
#include <vcl.h>
#include <iostream>
#include <math>
#include <cstdlib>
 
using namespace std;
 
int main()
{
 srand(time(0));
 int const size=80;
 string ar[2][size];
 int shag=0;
 int x=0,prst,prsz;  // шаг,предыдущие позиции зайца и черепахи
 int pozz=1;        // новая позиция зайца
 int pozt=1;       // новая позиция черепахи
 cout << "-----------------------Nachinaem zabeg cherepahi i zaica!"
      << "-----------------------" << endl;
 cout << "---------------------------------------------------------"
      << "-----------------------" << endl;
 cout << "Cherepaha i zayac na ichodnie pozicii!";
 ar[0][pozt]="*";
 ar[1][pozz]="*";
 ar[0][0]="T:";
 ar[1][0]="Z:";
 for(int i=0;i<2;i++)
  {
   cout << endl;
   for(int j=0;j<75;j++)
      cout << ar[i][j] << " ";
  }
 cout << "\nVvedite 1 dlya starta(0 - zakonchit)!: ";
 cin >> shag;
 while(shag!=0)
 {
  prst=pozt;
  prsz=pozz;
  x=rand()%10+1;  // для черепахи выбираем новую позицию
  if(x>=1&&x<=5)
   pozt+=3;
  if(x>=6&&x<=7)
   pozt-=6;
  if(x>=8&&x<=10)
   pozt++;
  if(pozt<1)
   pozt=1;
 
  ar[0][prst]="";   // стираем предыдущую позицию черепахи
  ar[0][pozt]="*"; // указываем новую позицию черепахи
 
  x=rand()%10+1;  // для зайца выбираем новую позицию
  if(x>=1&&x<=2)
   pozz=pozz;
  if(x>=3&&x<=4)
   pozz+=9;
  if(x==5)
   pozz-=12;
  if(x>=6&&x<=8)
   pozz++;
  if(x>=9&&x<=10)
   pozz-=2;
  if(pozz<1)
   pozz=1;
 
  ar[1][prsz]="";  // стираем предыдущую позицию зайца
  ar[1][pozz]="*";// указываем новую позицию зайца
 
   for(int i=0;i<2;i++)
   {
    cout << endl;
    for(int j=0;j<75;j++)
      cout << ar[i][j] << " ";
   }
   cout << "\n\nTurtle - " << pozt << endl;
   cout << "Hare   - " << pozz << endl;
  if(pozz==pozt)
   cout << "\n\nOUCH!!!" << endl;
  if(pozz>=70)
   {
    cout << "\n\nHare wins!Yuch!" << endl;
    shag=0;
   }
  else if(pozt>=70)
   {
    cout << "\n\nTURTLE WIN!YAY!" << endl;
    shag=0;
   }
  else
   {
    cout <<"\nVvedite dlya prodolgeniya luboe chislo ili 0 dlya vihoda!: ";
    cin >> shag;
   }
 }
 cout << endl;
 system("pause");
 return 0;
}
Sky_el
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 3
23.07.2016, 01:42     Модель гонки черепахи и зайца (программа даже не запускается..) #5
Не судите строго, но как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstdlib>
using std::rand;
using std::srand;
#include <time.h>
#include <windows.h>
 
void printArr(int[2][70], const int);
 
int main()
{
    srand((unsigned)time(NULL));
    const int size = 70;
    int arr[2][size], T_pos=0, H_pos=0, new_posT, new_posH, step_T, step_H;
    // заполняем массив начальными значениями. Черепаха и заяц стоят в нулевых ячейках
    for (int i = 0; i<2; i++)
        for (int j = 0; j<size; j++)
            if (j == 0)
                arr[i][j] = 1;
            else
                arr[i][j] = 0;
    cout << "BANG !!!!!\nAND THE'RE OFF !!!!" << endl;
    do {
        // генерируем случайное число  определения шага для черепахи от 1 до 10.
        new_posT = rand() % 10 + 1;
        //определяем шаг черепахи, учитывая шанс.
        switch (new_posT)
        {
        case 1: case 2: case 3: case 4: case 5: step_T = 3; break;
        case 6: case 7: step_T = -6; break;
        case 8: case 9: case 10: step_T = 1; break;
        }
        // генерируем случайное число  определения шага для зайца от 1 до 10.
        new_posH = rand() % 10 + 1;
        //определяем шаг зайца, учитывая шанс.
        switch (new_posH)
        {
        case 1: case 2: step_H = 0; break;
        case 3: case 4: step_H = 9; break;
        case 5: step_H = -12; break;
        case 6: case 7: case 8: step_H = 1; break;
        case 10: step_H = -2; break;
        }
 
        for (int i = 0; i < 2; i++)
            for (int j = 0; j < size; j++)
            {
                if (i == 0 && j == T_pos)
                {
                    arr[i][j] = 0; // обнуляем предыдущую позицию черепахи
                    if (step_T < 0 && j < (-1)*step_T) // если обратный ход выходит за 0
                    {
                        arr[i][0] = 1;
                        T_pos = 0;
                        i++;
                    }
                    else
                    {
                        arr[i][j + step_T] = 1;
                        T_pos = j + step_T;
                        i++;
                    }
                }
                if (i == 1 && j == H_pos)
                {
                    arr[i][j] = 0; // обнуляем предыдущую позицию зайца
                    if (step_H < 0 && j < (-1)*step_H) // если обратный ход выходит за 0
                    {
                        arr[i][0] = 1;
                        H_pos = 0;
                        i++;
                    }
                    else
                    {
                        arr[i][j + step_H] = 1;
                        H_pos = j + step_H;
                        i++;
                    }
                }
            }
        Sleep(1000);
        printArr(arr, size);
        if (H_pos == T_pos)
            cout << "OUCH!!!" << endl;
        cout << endl;
        if (H_pos >= 70)
        {
            cout << "Hare wins!!!" << endl;
            return 0;
        }
        else
            if(T_pos >=70)
            {
                cout << "Tortise wins!!!" << endl;
                return 0;
            }
    } while (true);
}
 
 
void printArr(int arr[2][70], const int size)
{
    for (int i = 0; i<2; i++)
    {
        cout << (i == 0 ? "T: " : "H: ");
        for (int j = 0; j<size; j++)
            cout << (arr[i][j]==1 ? "*" : " ");
        cout << endl;
    }
}
MansMI
Нарушитель
1047 / 844 / 205
Регистрация: 08.01.2012
Сообщений: 3,032
23.07.2016, 06:49     Модель гонки черепахи и зайца (программа даже не запускается..) #6
мда, тема то от 12-го года
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void main(int argc,char* argv[])
{
    setlocale(LC_ALL,"Rus");
    int pd[][5][2]=
    {{{0,49},{50,69},{70,99},{0,  0},{0, 0}},
     {{0,19},{20,39},{40,49},{50,79},{80,99}}};
    int dx[][5]={{3,-6,1,0,0},{0,9,-12,1,2}};
    int x[]={1,1};
    string mv[][5]=
    {{"Бысрое ползанье X=","Скольжение X=","Медленное ползанье X=","",""},
     {"Сон X=","Большой прыжок X=","Сильное скольжение X=","Маленький прыжок X=","Маленькое скольжение X="}
    };
 
    srand(unsigned(time(0)));
    do
        for(int i=0; i<2; i++)
        {
            int p=rand()%100;
            int j;
            for(j=0; j<3+i*2; j++)
                if(p>=pd[i][j][0] && p<=pd[i][j][1]) break;
            x[i]+=dx[i][j];
            if(x[i]<1) x[i]=1;
            if(x[i]>70) x[i]=70;
            cout<<(i?"Заяц:":"\nЧерепаха:")<<mv[i][j]<<x[i]<<endl;
        }
    while(x[0]<70 && x[1]<70);
    system("pause");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2016, 21:35     Модель гонки черепахи и зайца (программа даже не запускается..)
Еще ссылки по теме:

Программа на C++, которая переводит цветовую модель RGB в модель HSV C++
Программа в vs не запускается; в dev запускается, но зависает C++
C++ Вылетает программа, не успеваю даже посмотреть что написано

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Liss29
 Аватар для Liss29
20 / 9 / 2
Регистрация: 18.11.2012
Сообщений: 402
Завершенные тесты: 1
28.11.2016, 21:35     Модель гонки черепахи и зайца (программа даже не запускается..) #7
Пожалуй и я свои пять копеек вставлю)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <dos.h>
#include <windows.h>
 
struct TORTOISE
{
    int tval;
    int tStep;
    bool tFlag;
    char simbol;
};
 
struct HEAR
{
    int hval;
    int hStep;
    bool hFlag;
    char simbol;
};
 
enum COLOR
{
    BLACK = 0,
    BLUE = 1,
    GREEN = 2,
    RED = 4,
    MAGENTA = 5,
    BROWN = 6,
    LIGHTGRAY = 7,
    DARKGRAY = 8,
    LIGHTBLUE = 9,
    LIGHTGREEN = 10,
    LIGHTCYAN = 11,
    LIGHTRED = 12,
    LIGHTMAGENTA = 13,
    YELLOW = 14,
    WHITE = 15,
    BLINK = 128
};
void gotoxy(int x, int y);
void clrscr();
void textcolor(COLOR color);
void coord(int x, int y);
void coordinats(int x, int y, char simbol);
void tstStep(TORTOISE *t, HEAR *h);
void hStep(HEAR *h);
void tStep(TORTOISE *t);
 
using namespace std;
int main()
{
    TORTOISE tortil;
    HEAR hear;
    tortil.tval = 1;
    tortil.tFlag = false;
    tortil.simbol = 'T';
    
    hear.hval = 1;
    hear.hFlag = false;
    hear.simbol = 'H';
    textcolor(YELLOW);
    gotoxy(0, 30);
    cout << "BANG !!!!!\n";
    gotoxy(1, 25);
    cout << "AND THE'RE OFF !!!!!\n";
    gotoxy(4, tortil.tval);
    coordinats(4, tortil.tval, tortil.simbol);
    gotoxy(3, hear.hval);
    coordinats(3, hear.hval, hear.simbol);
    //======================================================
    for(;;)
    {
        SleepEx(1000, 0);
        tStep(&tortil);
        hStep(&hear);
        tstStep(&tortil, &hear);
        if(tortil.tFlag || hear.hFlag)
        {
            break;
        }
        else 
        {
            continue;
        }
    }
    gotoxy(24, 20);
    cout << "GAME OVER! thank you for playing!" << endl;
    system("Pause");
    return 0;
    //======================================================
}
 
void textcolor(COLOR color)
{
    HANDLE hcol;
    hcol = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hcol, color);
}
void clrscr()
{
    HANDLE hOut;
    COORD start = {0, 2};
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO info;
    GetConsoleScreenBufferInfo(hOut, &info);
    
    FillConsoleOutputCharacter(hOut, ' ', info.dwSize.X*info.dwSize.Y, start, NULL);
    SetConsoleCursorPosition(hOut, start);
}
 
void gotoxy(int x, int y)
{
    HANDLE hConsole;
    COORD cursorLoc;
    cursorLoc.X = y;
    cursorLoc.Y = x;
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsole, cursorLoc);
}
 
void coordinats(int x, int y, char simbol)
{
    if(simbol == 'T')
        textcolor(GREEN);
    else 
        textcolor(BROWN);
    gotoxy(x, y);
    cout << simbol;
}
 
void coord(int x, int y)
{
    char array[] = "OUCH !!!";
    textcolor(RED);
    gotoxy(x, y);
    for(int i = 0; i < 9; i++)
    {   
        cout << array[i];
    }
    textcolor(WHITE);
}
 
void tStep(TORTOISE *t)
{
    t->tStep = 1 + rand() % 10;
    if(t->tStep >= 1 && t->tStep <= 5)
    {
        t->tval += 3;
    }
    if(t->tStep >= 6 && t->tStep <= 7)
    {
        t->tval -= 6;
    }
    if(t->tStep >= 8 && t->tStep <= 10)
    {
        t->tval += 1;
    }
}
void hStep(HEAR *h)
{
    h->hStep = 1 + rand() % 10;
    if(h->hStep >= 1 && h->hStep <= 2)
    {
        h->hval += 0;
    }
    if(h->hStep >= 3 && h->hStep <= 4)
    {
        h->hval += 9;
    }
    if(h->hStep == 5)
    {
        h->hval -= 12;
    }
    if(h->hStep >= 6 && h->hStep <= 8)
    {
        h->hval += 1;
    }
    if(h->hStep >= 9 && h->hStep <= 10)
    {
        h->hval -= 2;
    }
}
 
void tstStep(TORTOISE *t, HEAR *h)
{
    clrscr();
    if(t->tval >= 70 && h->hval >= 70)
    {
        gotoxy(5, 30);
        textcolor(RED);
        cout << "THE RACE ENDED IN A DRAW" << endl;
        t->tFlag = true;
        h->hFlag = true;
    }
    else if(t->tval >= 70 && h->hval < 70)
    {
        gotoxy(5, 30);
        textcolor(GREEN);
        cout << "TORTOISE WINS!!! YAY!!" << endl;
        t->tFlag = true;
    }
    else if(t->tval < 70 && h->hval >= 70)
    {
        gotoxy(5, 30);
        textcolor(WHITE);
        cout << "HARE WINS. YUCH\n";
        h->hFlag = true;
    }
    /*???? ??? ????????? ???????? ????? ?????? 1*/
    else if(t->tval < 1)
    {
        t->tval = 1;
        coordinats(4, t->tval, t->simbol);
        coordinats(3, h->hval, h->simbol);
    }
    else if(h->hval < 1)
    {
        h->hval = 1;
        coordinats(3, h->hval, h->simbol);
        coordinats(4, t->tval, t->simbol);
    }
    /*?????? ? ???? ???????*/
    else if(t->tval == h->hval)
    {
        coord(4, t->tval);
    }
    else
    {
        coordinats(3, h->hval, h->simbol);
        coordinats(4, t->tval, t->simbol);
    }
}
Добавлено через 22 минуты
MansMIЧто это у тебя за массив такой мудрённый pd[][][]; координаты ? А dx[][] это корректировка позиции животных?
Yandex
Объявления
28.11.2016, 21:35     Модель гонки черепахи и зайца (программа даже не запускается..)
Ответ Создать тему
Опции темы

Текущее время: 09:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru