예제 #1
0
int main( int hola, char** file_name)
{
  CvRect rect;
  rect.x=121;rect.y=110;rect.width=814;rect.height=223;
  erCerc cerc(135,293,25);
  erEqualP equ(0);
  erSmootP p1(BLUR,7),p2(MEDIAN,5);
  erCannyP cann(355,355);
  erAdThrP adp(THRESH_BINARY,AM_MEAN,49,119,255); //** < */
  erMacroDropAnalysis mda("hump");
  mda.defineParameters(rect,cerc,p1,p2,cann,adp,equ);
  mda.doIt("hump_1.bmp");
  return(0);
};
예제 #2
0
void RevealedElem::displayBoard(sf::RenderWindow& window, sf::Font& mainScreenFont)
{
    int i, j;// variabile intermediare pentru a parcurge toate celule
    //tablei de joc

    //X , Y variabile intermediare pentru parcurgearea saltata a tablei,
    //X,si Y reprezentand  coltul stang al fiecarei celule

    sf::CircleShape cerc(cellSize/2);
    cerc.setPointCount(25);

    CText numarMine;
    numarMine.setFont(mainScreenFont);
    numarMine.setSize(fontSize);

    CText semnIntrebare;
    semnIntrebare.setFont(mainScreenFont);
    semnIntrebare.setSize(fontSize);

    sf::Texture imgBomba;
    imgBomba.loadFromFile("data/images/bomb.png");
    sf::Transform transformareImagine;
    transformareImagine.scale(5,5);
    sf::Sprite bomba;
    bomba.setTexture(imgBomba);
    bomba.setOrigin(imgBomba.getSize().x / 2, imgBomba.getSize().y / 2);
    float bombScale = remap(fontSize , 1 , bomba.getLocalBounds().width, 0, 1);
    bomba.setScale(bombScale, bombScale);

    for(int Y = startGridY, i = 1; i <= size; Y +=cellSize, i++)
    {
        for(int X = startGridX, j = 1; j <= size; X += cellSize, j++)
        {
            switch(board[i][j])
            {

            case hidden:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::White);

                semnIntrebare.setColor(sf::Color::Black);
                semnIntrebare.setPosition(sf::Vector2f(X + cellSize/2, Y + cellSize/2));//
                semnIntrebare.setString("?");
                //semnIntrebare.setSize(20);
                semnIntrebare.centerTextOrigin();


                //std::cout << X << " " << Y << std::endl;
                break;
            case empty:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color(209, 209, 209));
                //std::cout << X << " " << Y << std::endl;
                break;
            case mine:
                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::Red);
                bomba.setPosition(X + cellSize / 2, Y + cellSize / 2);
                break;
            default:

                cerc.setPosition(X, Y);
                cerc.setFillColor(sf::Color::Yellow);


                numarMine.setColor(sf::Color::Red);
                //numarMine.setSize(20);

                numarMine.setPosition(sf::Vector2f(X + cellSize/2, Y + cellSize/2));//
                std::stringstream strStream;
                strStream << board[i][j];
                std::string temp = strStream.str();
                numarMine.setString(temp.c_str());
                numarMine.centerTextOrigin();

            }
            window.draw(cerc);

            switch(board[i][j])
            {
                case empty:

                case mine:
                    window.draw(bomba);
                    break;
                case hidden:
                    semnIntrebare.draw(window);
                    break;
                default:
                    numarMine.draw(window);

            }

            // Setari temporare pentru a vedea daca pozitiile calculate
            // sunt corecte

        }
    }
    //std::cout << cellSize << std::endl;
}