Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 19:58   #1
artyuha
 
Регистрация: 27.04.2010
Сообщений: 4
По умолчанию выполнить сброс функции?

Помогите ,завтра защита РГР((
Пишу програму - пианино..со звуками все впорядке. только осталось сделать, чтоб когда нажимаю клавишу клавиатуры заливалась определенная клавиша нарисованного пианино.
Через floodfill разобрался как заливать, а вот заливка так и остается на всё время
как сделать чтоб сбрасывалась она каждый раз в конце цикла?

Код:
#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#include <dos.h> 
 
int main(void) 
{ 
int k,i,ik=200; 
   int gdriver = DETECT, gmode, errorcode; 
   initgraph(&gdriver, &gmode, ""); 
 
   setcolor(getmaxcolor()); 
 //  floodfill(2, 2, getmaxcolor()); 
 
   line(50,50,195,50);     //linii kontura 
   line(195,50,195,150); 
   line(195,150,50,150); 
   line(50,150,50,50); 
 
   line(70,50,70,100); 
   line(70,100,80,100); 
   line(80,100,80,50); 
   line(90,50,90,100); 
   line(90,100,100,100); 
   line(100,100,100,50); 
 
   line(75,100,75,150);  //osnovnie 
   line(95,100,95,150); 
   line(115,50,115,150); 
   line(135,100,135,150); 
   line(155,100,155,150); 
   line(175,100,175,150); 
   line(195,50,195,150); 
   line(130,50,130,100); 
   line(130,100,140,100); 
   line(140,100,140,50); 
   line(150,100,150,50); 
   line(150,100,160,100); 
   line(160,50,160,100); 
   line(170,50,170,100); 
   line(170,100,180,100); 
   line(180,100,180,50); 
 
 
 
   for (i=0;i<ik;i++) 
    { 
 
     k=getch(); 
 
 
        if (k==97)  {  
                                      sound (247);  //CI 
              delay (70); 
              nosound (); 
                        //  floodfill(60, 55, getmaxcolor()); 
                                   } 
 
 
       else  if (k==115) { 
                          sound (261); //DO 
              delay (70); 
              nosound (); 
                                         } 
 
      else if (k==101) { 
                          sound (277); //DO dies 
              delay (70); 
              nosound (); 
                                       } 
 
      else   if (k==100) { 
                          sound (293); //RE 
              delay (70); 
              nosound (); 
                                         } 
 
      else  if (k==114)  { 
                          sound (311); //RE dies 
              delay (70); 
              nosound (); 
                                         } 
 
      else  if (k==102)  { 
                          sound (329); //ME 
              delay (70); 
              nosound (); 
                                         } 
 
      else  if (k==103)  { 
                          sound (349); //FA 
              delay (70); 
              nosound (); 
                                          } 
 
      else  if (k==121)   { 
                          sound (370); //FA dies 
              delay (70); 
              nosound (); 
                                          } 
 
      else  if (k==104)   { 
                          sound (391); //SOL 
              delay (70); 
              nosound (); 
                                          } 
 
      else  if (k==117)    { 
                            sound (415); //SOL dies 
              delay (70); 
              nosound (); 
                                           } 
 
      else  if (k==106)    { 
                          sound (440); //LA 
              delay (70); 
              nosound (); 
                                           } 
 
      else  if (k==105)    { 
                            sound (466); //LA dies 
              delay (70); 
              nosound (); 
                                           }    
      
      else  if (k==107)    { 
                          sound (494); //CI 
              delay (70); 
              nosound (); 
                                          } 
 
          else if (k==108)        { 
                         sound (523); //DO 
                         delay (70); 
                         nosound(); 
                                          } 
          else if (k==113)  ik=0; 
 
     } 
 
   getch(); 
   closegraph(); 
   return 0; 
}
artyuha вне форума Ответить с цитированием
Старый 27.04.2010, 20:22   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Насколько я понимаю, заливать черным (или какой там в качестве фона) цветом.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.04.2010, 20:22   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Насколько я понимаю, заливать черным (или какой там в качестве фона) цветом.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.04.2010, 20:43   #4
artyuha
 
Регистрация: 27.04.2010
Сообщений: 4
По умолчанию

тут алгоритм такой > нажимаешь клавишу, клавиша нарисованного пианино заливается зеленым или цветом, произносится звук с определ. частотой, и клавиша опять заливается исходным черным цветом..
artyuha вне форума Ответить с цитированием
Старый 27.04.2010, 21:28   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Так может быть
Код:
        if (k==97)
                {
                setcolor(3);  
                floodfill(60, 55, getmaxcolor()); 
                sound (247);  //CI 
                delay (70); 
                nosound (); 
                setcolor(1);
                floodfill(60, 55, getmaxcolor()); 
                }
?
Значения в setcolor поменять на нужные.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.04.2010, 22:30   #6
artyuha
 
Регистрация: 27.04.2010
Сообщений: 4
По умолчанию ?

не помогает, все время залит белым..
artyuha вне форума Ответить с цитированием
Старый 27.04.2010, 23:53   #7
artyuha
 
Регистрация: 27.04.2010
Сообщений: 4
По умолчанию

Не работает заливка.. она раз заливает в белый и все... setcolor не меняет цвет и высвечивается предупреждение "warning: ''errorcode" is assigned a value that is never used"
artyuha вне форума Ответить с цитированием
Старый 28.04.2010, 10:21   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
warning: ''errorcode" is assigned a value that is never used
Значит, во время выполнения setcolor произошла ошибка, ее код был записан в errorcode. Было бы неплохо посмотреть, что это за ошибка.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сброс выбраной строки в listview TaTT DoGG Общие вопросы .NET 5 02.03.2010 01:32
Сброс пароля BIOS Андрей Белый Безопасность, Шифрование 8 02.11.2009 20:23
кнопка сброс Nellas Общие вопросы Delphi 2 21.10.2009 22:19
Сброс счетчика vldand Microsoft Office Access 1 20.10.2008 18:40
MSSQL: сброс автоинкрементного поля.. Ramires SQL, базы данных 6 20.08.2008 02:58