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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aziz_05
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 24
#1

неработает где ошибка? - C++

04.06.2013, 10:24. Просмотров 308. Ответов 3
Метки нет (Все метки)

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
#include <graphics.h> //Подключаем графическую библиотеку
#include <stdlib.h> //Библиотека содержит функцию exit
  //(см. GraphInit)
#include <stdio.h> //Библиотека содержит функцию printf
  //(см. GraphInit)
#include <conio.h> //Библиотека содержит функцию getch
 
enum Direction {LEFT, UP, RIGHT, DOWN}; 
  //Перечисляемый тип - направления движения
 
const int Width = 15; //Ширина поля в клетках
const int Height = 15; //Высота поля в клетках
const int CellSize = 30; //Размер клетки в пикселах
 
int Cell[Width][Height]={ //Задаем массив клеток поля
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
{1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1},
{1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
}; //Ноль - клетка свободна, единица - клетка занята
 
void DrawField() //Функция, рисующая поле
 {
 setcolor(WHITE); //Устанавливаем цвет линий
 rectangle(0, 0, 30 * Width, 30 * Height); //Внешняя граница поля
 for (int i = 1; i < (Width - 1); i++) 
  //Рисуем вертикальные линии сетки
  line(i * CellSize, 1, i * CellSize, Height * CellSize);
 for (i = 1; i <= (Height - 1); i++) //Горизонтальные линии
  line(1, i * CellSize, Width * CellSize, i * CellSize);
 setfillstyle(1, WHITE); //Устанавливаем стиль заливки
 for (i = 0; i < Width; i++)
  for (int j = 0; j < Height; j++)
   if (Cell[i][j] == 1) //Рисуем все занятые клетки
    bar(i * CellSize, j * CellSize, (i + 1) * CellSize, 
  (j + 1) * CellSize);
 }
 
class CharacterClass //Класс "Персонажа"
 {
 int Radius; //Радиус круга
 int X, Y; //Положение на поле
 public: 
 CharacterClass(); //Конструктор класса
 void Draw(); //Функция, рисующая "персонаж"
 void Erase(); //Функция, стирающая "персонаж"
 void Move(int Cell[Width][Height], Direction dir); 
  //Движение "персонажа". Аргументы - массив клеток поля и 
  //направление движения
 };
CharacterClass::CharacterClass()
 {
 Radius = 15;
 X = 7; Y = 0; //Устанавливаем начальные координаты -
  //на одной из свободных клеток поля
 }
void CharacterClass::Draw()
 {
 setcolor(BLUE); //Устанавливаем цвет линии окружности...
 setfillstyle(1, BLUE); //...и цвет внутренней заливки
 fillellipse((2 * X + 1) * Radius, (2 * Y + 1) * Radius, Radius, 
  Radius); //Окружность с закрашенной внутренней областью
 }
void CharacterClass::Erase()
 {
 setcolor(BLACK); //Устанавливаем цвета фона
 setfillstyle(1, BLACK);
 fillellipse((2 * X + 1) * Radius, (2 * Y + 1) * Radius, Radius, 
  Radius);
 }
void CharacterClass::Move(int Cell[Width][Height], Direction dir)
 {
 Erase(); //Перед перемещением закрашиваем текущее положение
 switch(dir) //В зависимости от направлении движения...
  { //...если клетка-цель пуста и не будет выхода за пределы поля,
  //перемещаем "персонаж"
  case LEFT: if ((X > 0) && Cell[X - 1][Y] != 1) X--; break;
  case UP: if (Y > 0 && Cell[X][Y - 1] != 1) Y--; break;
  case RIGHT: if (X < Width && Cell[X + 1][Y] != 1) X++; break;
  case DOWN: if (Y < Height && Cell[X][Y + 1] != 1) Y++; break;
  }
 Draw(); //Рисуем в новом положении
 }
 
void main()
{
GraphInit(); //Текст функции расположен по ссылке.
  //Функция инициализирует графику
 
int exitOk = 0; //Флаг, означающий выход из программы
char c; //Считываемый с клавиатуры символ
 
DrawField(); //Сначала рисуем поле
 
CharacterClass Character;
Character.Draw(); //Рисуем "персонаж"
 
while (!exitOk)
 {
 c = getch(); //Считываем с клавиатуры символ
 switch (c) //Если была нажата клавиша-стрелка,..
  { //...перемещаем "персонаж"
  case 27: exitOk = !0; //Выход по "Escape"
  case 75: Character.Move(Cell, LEFT); break;
  case 72: Character.Move(Cell, UP); break;
  case 77: Character.Move(Cell, RIGHT); break;
  case 80: Character.Move(Cell, DOWN); break;
  }
 DrawField(); //После перемещения вновь рисуем поле
 }
closegraph();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 10:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос неработает где ошибка? (C++):

неработает код где ошибка? - C++
#include&lt;iostream&gt; using namespace std; int main() { int a1,a2,a3,a4; cout&lt;&lt;&quot;viberite operatsiyu\n&quot;&lt;&lt;&quot;1-emkost...

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил) - C++
написать универсальный тип, который представляет точку на плоскости в координатах (х, у) и в полярных координатах. Написать функцию для...

Укажите где ошибка (ошибка во время выполнения программы) - C++
Здравствуйте, помогите пожалуйста найти ошибки в коде которые возникаю при выполнении программы Картинка с ошибкой внизу поста. Код: ...

Ошибка при компиляции. Где ошибка? (Работа с классом) - C++
Уважаемые форумчане! При компиляции проекта возникает ошибка &quot; undefined reference to `MeterNZiF::MeterNZiF()' &quot; на 7 строку приложения. ...

В чём ошибка.В коде там где коментарий там ошибка поучается. - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

3
anmartex
...
1706 / 1199 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
04.06.2013, 11:45 #2
Цитата Сообщение от Aziz_05 Посмотреть сообщение
Не работает, где ошибка?
Всё работает, просто в связи с тем, что вы использовали getch() (строк 111), то и ввод будет ожидаться с консоли. Я не знаю какой реализацией BGI вы пользуетесь, но вот в той реализации, которой воспользовался я, есть функция readkey. С ней всё нормально работает:
C++
1
2
      // Строка 110
      c = readkey; //Считываем с клавиатуры символ
неработает где ошибка?

Бинарник: program.7z

P.S.: шарик в красный перекрасил я, его просто не было видно.
1
Aziz_05
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 24
06.06.2013, 09:50  [ТС] #3
какая у вас программа у меня <kode bloks> на нём не работает,
0
anmartex
...
1706 / 1199 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
06.06.2013, 10:52 #4
Цитата Сообщение от Aziz_05 Посмотреть сообщение
какая у вас программа у меня <kode bloks> на нём не работает
Code::Blocks - это IDE, а вот компилятор скорее всего MinGW-GCC. Я тоже пользуюсь таким же компилятором, но вот камень преткновения -библиотека graphics.

Цитата Сообщение от anmartex Посмотреть сообщение
Я не знаю какой реализацией BGI вы пользуетесь
Я пользовался вот этой библиотекой: openbgi. Если не имеете представления как собирать её, то можете взять готовую мою. В папочку с компилятором скопируйте заголовочный файл в include, а саму библиотеку в lib.

В свойствах проекта не забудьте указать подключение библиотеки openbgi. Кроме неё ещё нужно будет указать gdi32 библиотеку, ибо openbgi базируется на ней.
1
Вложения
Тип файла: 7z openbgi.7z (15.0 Кб, 8 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 10:52
Привет! Вот еще темы с ответами:

неработает программа - C++
#include &lt;iostream&gt; using namespace std; # define n 5 int main() { int a,b ; int i,j,max,nmax; ...

неработает программа - C++
// 2.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int i, j,...

Где ошибка? - C++
Пишу всё по книге Джесса Либерти &quot;Освой самостоятельно C++ за 21 день&quot; В книге указана следующая програмка. int #include...

Где ошибка ? - C++
Это прога для вывода не экран только четных значений функции на интервале 1void main() 2{ 3 int x, y; 4 x=-10; 5 do 6 {...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
06.06.2013, 10:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru