Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Вычислить значение функции для отрицательных элементов массива и подсчитать их количество Помогите решить задачу. Дано одномерный массив Р, состоящий из 32 элементов. Вычислить значение функции для отрицательных элементов массива и подсчитать их количество. Зарание спасибо. :) https://www.cyberforum.ru/ cpp-beginners/ thread749506.html C++ Поменять элемент, стоящий перед минимальным, на максимальный (Изменить программу)
Дел
C++ Строковый алгоритм Помогите, пожалуйста, найти алгоритм (само решение писать не надо). Задача такова: Дан текст и список правил замены. Каждое правило заменяет одну или несколько букв текста на одну или несколько других букв. Требуется определить, есть ли в правилах зацикливания, и, если есть, вывести их все (или, в крайнем случае, одно любое). Если же нет, нужно произвести замены в тексте. Например: ababb ab ->... https://www.cyberforum.ru/ cpp-beginners/ thread749494.html C++ Строки. Посчитать, сколько раз входит сочетание, вставить пробел, вычеркнуть все буквы е https://www.cyberforum.ru/ cpp-beginners/ thread749491.html
1) Дано слово, посчитать, сколько раз входит в него сочетание, скажем, le; 2) Нужно вставить в слове после каждой, стоящей на нечетном месте, пробел; 3) Потом вычеркнуть из слова все буквы e, стоящие после l. 3 программы на основе 1 помогите, срочно нужно.
C++ Класс (работа с текстовым файлом)
Здравствуйте. помогите пожалуйста) есть класс: #include "stdafx.h" #include <iostream> #include <fstream> #include <stdlib.h> #include <conio.h> #include <string.h> #include <stdio.h>
C++ Циклические программы с регулярной сменой аргумента, содержащие ветвления Помогите написать программу задачи. Плиз. Вывести на печать значения, удовлетворяют условию y> 1.35 i y <2.4, и соответствующие значения аргумента. Аргумент х изменяется от 0.42 до 0.86 с шагом 0.04: Зарание спасибо.:) https://www.cyberforum.ru/ cpp-beginners/ thread749472.html
C++ Где применяется bind Можете пожалуйста привести пример, где boost::bind (или сейчас уже std::bind) необходим и без него не обойтись. Просто, понимаю как работает, но не понимаю где можно применить. Спасибо за ответы. https://www.cyberforum.ru/ cpp-beginners/ thread749466.html Бинарное дерево C++
Объясните пжлст почему не работает программа...при вводе файла пишет -842150451 /*Дан адрес P1 вершины дерева — записи типа TNode, содержащей поля Data (целого типа), Left, Right и Parent (типа PNode — указателя на TNode). Поля Left и Right указывают на дочерние вершины, а поле Parent — на родительскую вершину данной вершины (если вершина является корнем дерева, то ее поле Parent равно...
C++ Файловый ввод-вывод Всем привет. Задание такое: нужно составить программу которая рассчитывает значения полинома и выводит таблицу x-y, при этом записывает результаты в файл txt. Текстовый файл такого формата: степень полинома, далее коэффициенты в порядке от старших к младшим, далее два числа, задающих диапазон x для расчета значений полинома от -10 до 10) и точек 50-100 рассчитать, вывести в другой текстовый... https://www.cyberforum.ru/ cpp-beginners/ thread749444.html C++ Защита данных от изменения в константном методе Допустим, class test { public: void foo() const { arr = new int; // ошибка arr = 100; // все ок, но как сделать ошибку? } https://www.cyberforum.ru/ cpp-beginners/ thread749440.html
насколько это соответствует стандарту? C++
#include <iostream> class shit { private: int x; public: shit(){} shit(int p) { x = p; } void set (int* y) { x = *y; }
C++ Составить блок-схемы https://www.cyberforum.ru/ cpp-beginners/ thread749425.html
Помогите составить блок схемы по задачам С++ и проверить эту задачу, если можно=) #include "stdafx.h" #include <iostream> #include <math.h> using namespace std;
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
0

Условие if не становится истиным - C++ - Ответ 3932110

29.12.2012, 12:31. Показов 416. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Пишу свою первую программу-игру на с++ с использованием OpenGL.
Ситуация такая: необходимо сравнить координаты по x и координаты по y, и если они окажутся одновременно равными, то переменной ColorMobR присвоить значение 1.0. Так проблема в том, что когда в момент игры я игроков наезжаю на моба (по сути координаты должны совпасть, хотя кто знает..), условие не становится истинным. Если вместо условия подставить if(1), то код выполняется. не могу найти ошибку. Были предположения, что это из-за проблемы с float, так как они не всегда равны и т.п., но я не знаю. Прошу помощи. Код ниже:
Функция сравнения координат:
C++
1
2
3
4
5
/* Пересечение игрока и моба */
void GamerOnMob(){
    if(fabs(gamer_x-mob_x) < 0.01 && fabs(gamer_y - mob_y) < 0.01){
                    ColorMobR = 1.0;
                }
Весь код игры:
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
#include <time.h>
#include <Windows.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include <cstdio>
#include <cmath>
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"opengl32.lib")
#pragma comment (lib, "glaux.lib")
int dir;
float gamer_x=0, gamer_y=0, gamer_z=0, mob_x=0.03, mob_y=0.03, mob_z=0.03, ColorMobR=0.0, ColorMobG=0.0, ColorMobB=0.0;
GLuint gamingtxt;
 
/*GLuint LoadBMP(const char *fmt, ...)
{
    GLuint t;
    char filename[256];
    va_list ap;
    va_start(ap, fmt);
    vsprintf_s(filename, fmt, ap);
    va_end(ap);
 
    AUX_RGBImageRec *texture = auxDIBImageLoadA(filename);
    glGenTextures(1, &t);
    glBindTexture(GL_TEXTURE_2D, t);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D, 0, 3, texture->sizeX, texture->sizeY, 0,
    GL_RGB, GL_UNSIGNED_BYTE, texture->data);
    
    return t;    
}*/
 
void display(void) { 
glClear (GL_COLOR_BUFFER_BIT);
/* Игрок */ 
glColor3f (1.0, 1.0, 1.0); 
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, gamingtxt);
glBegin(GL_POLYGON); 
glTexCoord2d(0, 0); glVertex3f (gamer_x, gamer_y, gamer_z + 0.0); 
glTexCoord2d(1, 0); glVertex3f (gamer_x + 0.03, gamer_y, gamer_z + 0.0); 
glTexCoord2d(1, 1); glVertex3f (gamer_x + 0.03, gamer_y + 0.03, gamer_z + 0.0); 
glTexCoord2d(0, 1); glVertex3f (gamer_x, gamer_y + 0.03, gamer_z + 0.0);
glEnd();
 
/* Противники */
glColor3f (ColorMobR, ColorMobG, ColorMobB); 
glBegin(GL_POLYGON); 
glVertex3f (mob_x + 0.22, mob_y + 0.22, mob_z + 0.0); 
glVertex3f (mob_x + 0.25, mob_y + 0.22, mob_z + 0.0); 
glVertex3f (mob_x + 0.25, mob_y + 0.25, mob_z + 0.0); 
glVertex3f (mob_x + 0.22, mob_y + 0.25, mob_z + 0.0);
glEnd();
glDisable(GL_TEXTURE_2D);
glutSwapBuffers();
} 
 
/* Движение мобов */
void MobMotion(){
    int RandomNumber = rand()%4;
    switch(RandomNumber)
    {
        case 0 :  mob_x-=0.01; break;
        case 1 :  mob_y+=0.01; break;
        case 2 :  mob_x+=0.01; break;        
        case 3 :  mob_y-=0.01; break;
    }
}
 
/* Пересечение игрока и моба */
void GamerOnMob(){
    if(fabs(gamer_x-mob_x) < 0.01 && fabs(gamer_y - mob_y) < 0.01){
                    ColorMobR = 1.0;
                }
}
 
/* Ограничение перемещения размерами экрана */
void Screen(){
    if(gamer_x>0.97){
            gamer_x = 0.97;
            }
    if(gamer_x<-1){
            gamer_x = -1;
            }
    if(gamer_y>0.97){
            gamer_y = 0.97;
            }
    if(gamer_y<-1){
            gamer_y = -1;
            }
    if(mob_x>0.97){
            mob_x = 0.97;
            }
    if(mob_x<-1){
            mob_x = -1;
            }
    if(mob_y>0.97){
            mob_y = 0.97;
            }
    if(mob_y<-1){
            mob_y = -1;
            }           
}
 
/* Функция времени */
void Timer(int){
    display();
    Screen();
    GamerOnMob();
    glutTimerFunc(10, Timer, 0);
}
 
/* Функция времени мобов*/
void TimerMob(int){ 
    //MobMotion();
    glutTimerFunc(100, TimerMob, 0);
}
 
/* Функция считывания нажатия клавиш и перемещения игрока */
void KeyboardEvent(int key, int a, int b)
{   
    switch(key)
    {
        case 100 :  gamer_x-=0.01; break;
        case 101 :  gamer_y+=0.01; break;
        case 102:   gamer_x+=0.01; break;        
        case 103 :  gamer_y-=0.01; break;
    }
}
 
/* Определим параметры окна */ 
int main(int argc, char** argv) 
{ 
glutInit(&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowSize (800, 800); 
glutInitWindowPosition (100, 100); 
glutCreateWindow ("Game v0.1"); 
glClearColor (0.0,0.4,0.0,0.0); 
//gamingtxt = LoadBMP("texture.bmp");
glutDisplayFunc(display); 
glutTimerFunc(10, Timer, 0);
glutTimerFunc(100, TimerMob, 0);
glutSpecialFunc(KeyboardEvent);
glutMainLoop(); 
return 0;
}


Вернуться к обсуждению:
Условие if не становится истиным C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2012, 12:31
Готовые ответы и решения:

Записать условие: "если в списке возле 1 стоит 3, 3 становится 2"
Как на языке Пайтона будет &quot;звучать&quot;, если в списке возле 1 стоит 3, 3 становится 2?

Дано число в двоичном виде. Умножить его на 16. результат перевернуть следующим образом: нулевой разряд становится седьмым, 1-ый становится 6-ым и т
Дано число в двоичном виде. Умножить его на 16. результат перевернуть следующим образом: нулевой...

Составить программу,печатующую значение TRUE ,если указанное высказывание ,является истиным и FALSE в противном случае:
сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр!

Условные операторы. Будет ли проверено условие condition2, если первое условие condition1 ложно?
Подскажите знающие люди новичку в С++ есть условный оператор: 1) if( condition1 &amp;&amp; condition2 )...

4
29.12.2012, 12:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2012, 12:31
Помогаю со студенческими работами здесь

Условие if. Как сделать повтор выполнения if-а, если условие не удовлетворяет требованиям в данный момент
Суть вопроса такова. В процессе работы программы запускается несколько потоков. Один из них...

Условие в Delphi 2010, нужно сделать условие на TDBEDIT
Подскажите пожалуйста, у меня есть два эдита и одна кнопка, мне нужно сделать условие что при...

Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ», иначе «УСЛОВИЕ НЕ
3) Если все элементы двумерного массива положительные, то вывести сообщение «УСЛОВИЕ ВЫПОЛНЯЕТСЯ»,...

Написать λ -выражение, описывающее условие, которое проверяет список и выдает истину, если выполняется условие
Здравстуйте! Решите, пожалуйста, задачу на Lisp, не понимаю функциональный язык( А лабороторные...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru