Snippets Collections
spark.conf.set("spark.databricks.io.cache.enabled", "[true | false]")
<html>
  <head>
  <body>
  <p>Whats your name?</p>
</body>
  </head>
  </html>
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5

int front = -1;
int rear = -1;
int Q[SIZE];

void enqueue();
void dequeue();
void show();

int main ()
{
    int choice;
    while (1)
    {
        printf("\nEnter 1 for enqueue\n");
        printf("Enter 2 for dequeue\n");
        printf("Enter 3 to see the Queue Elements\n");
        printf("Enter 4 to Quit\n");
        printf("\nEnter Your Choice: ");
        scanf("%d", &choice); 

        switch (choice)
        {
        case 1:
            enqueue();
            break; 
        case 2:
            dequeue();
            break;
        case 3:
            show();
            break;
        case 4:
            exit(0);
        default:
            printf("\nWrong choice\n");
        }
    }

    return 0;
}

void enqueue()
{
    int val;
    if (rear == SIZE - 1)
        printf("\nQueue is Full.");
    else
    {
        if (front == -1)
            front = 0;
        printf("\nInsert the value: ");
        scanf("%d", &val); 
        rear = rear + 1;
        Q[rear] = val;
    }
}

void dequeue()
{
    if (front == -1 || front > rear)
        printf("\nQueue Is Empty.");
    else
    {
        printf("\nDeleted Element is %d", Q[front]);
        front = front + 1;
    }
}
void show()
{
    if (front == rear == -1 || front > rear)
    {
        printf("\nQueue is Empty.");
    }
    else
    {
        for (int i = front; i <= rear; i++) 
            printf("%d\t", Q[i]);
    }
}
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <cstdlib>
#include <ctime>
#include<string>
using namespace std;
using namespace sf;
bool changing=true;
bool gameover=false;
const int resolutionX = 960;
const int resolutionY = 960;
const int boxPixelsX = 32;
const int boxPixelsY = 32;
const int gameRows = resolutionX / boxPixelsX;
const int gameColumns = resolutionY / boxPixelsY;

const int x = 0;
const int y = 1;
const int exists = 2;
int t;
bool headshot=false;




int maxcentipede=1;

void drawline(RenderWindow &window , float player[]){

VertexArray line(Lines,2);
line[0].position=Vector2f(830,830);
line[1].position=Vector2f(10,830);
line[0].color=Color::Yellow;
line[1].color=Color::Red;

window.draw(line);

}




/*void newcentipede(int j   , float givingposition2[][3],Sprite centipedetail2[][2], Sprite centipedehead2[][2]  )
{


 Sprite centipedetail2[12][2];
    Texture centipedetailtexture2;
    Texture centipedeTexture2;
  //  float positiontail[12][3];
    Sprite centipedehead2[12][2];
    float givingposition2[12][3];
    centipedeTexture2.loadFromFile("Textures/head.png");
    centipedetailtexture2.loadFromFile("Textures/body.png");
//if(givingposition[0][exists]==true)
//{

    givingposition2[0][x] = (rand() % 1000) + boxPixelsX;
    givingposition2[0][y] =(rand() % 1000) + boxPixelsY;
    givingposition2[0][exists]=true;
    centipedehead2[0].setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));
    centipedehead2[0].setPosition(givingposition2[0][x], givingposition2[0][y]);
    centipedehead2[0].setTexture(centipedeTexture2);
   // centipedehead[1][exists]=true;


    for (int i = 0; i <12; i++)
    {
        givingposition2[i][x] = givingposition2[i - 1][x] + boxPixelsX;
        givingposition2[i][y] = givingposition2[i - 1][y];
        givingposition2[i][exists]=true;
        
    }


    for (int i = 0; i < 12; i++)
    { 
	
        centipedetail2[i][1].setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));
        centipedetail2[i][1].setTexture(centipedetailtexture);}
        centipedetail2[i][1].setPosition(givingposition2[i][x], givingposition2[i][y]);
        //centipedetail[i][exists]=true;
    }




}
*/
void movecentipede(RenderWindow &window, float givingposition[12][12][3], Clock &centipedeclock, float mushroom[][3])
{
    if (centipedeclock.getElapsedTime().asMilliseconds() < 200)
        return;

    centipedeclock.restart();

    static bool left = true;

    for (int c = 0; c < maxcentipede; c++)
    {
        if (!headshot)
        {
            // Move the body segments first
            for (int i = 11; i > 0; i--)
            {
                givingposition[c][i][x] = givingposition[c][i - 1][x];
                givingposition[c][i][y] = givingposition[c][i - 1][y];
            }

            // Move the head based on the direction
            if (left)
            {
                givingposition[c][0][x] -= 32;
            }
            if(!left)
            {
                givingposition[c][0][x] += 32;
            }

            // Check if the centipede collides with the screen borders
            if (givingposition[c][0][x] < 0 || givingposition[c][0][x] >= resolutionX - boxPixelsX)
            {
                left = !left;

                // Move the entire centipede down
                for (int j = 0; j < 12; j++)
                {
                    if (givingposition[c][j][y] < 880)
                    {
                        givingposition[c][j][y] += boxPixelsY;
                    }
                }
            }
           /* else if ((givingposition[c][0][x] >= mushroom[0][x] && givingposition[c][0][x] <= mushroom[0][x] + boxPixelsX &&
                      givingposition[c][0][y] >= mushroom[0][y] && givingposition[c][0][y] <= mushroom[0][y] + boxPixelsY))
            {
                left = !left;

                // Move the entire centipede down
                for (int j = 0; j < 12; j++)
                {
                    givingposition[c][j][y] += boxPixelsY;
                    mushroom[j][exists] = false;
                }
            }*/
            else
            {
                // Check if the head collides with mushrooms
                for (int j = 1; j < 24; j++)
                {
                    if (givingposition[c][0][x] >= mushroom[j][x] && givingposition[c][0][x] <= mushroom[j][x] + boxPixelsX &&
                        givingposition[c][0][y] >= mushroom[j][y] && givingposition[c][0][y] <= mushroom[j][y] + boxPixelsY)
                    {
                        left = !left;

                        // Move the entire centipede down
                        for (int k = 0; k < 12; k++)
                        {
                            givingposition[c][k][y] += boxPixelsY;
                            mushroom[j][exists] = false;
                        }
                        break;
                    }
                }
            }
        }
    }
}






void splitCentipedeBody(RenderWindow &window, float givingposition[][12][3], int c, int j, bool left, Sprite centipedetail[][12][2], Sprite centipedehead[][2], Clock &centipedeclock, float mushroom[][3]) {
     // Body segment is hit, split into two independent segments
    for (int k = j; k < 12; k++) {
        givingposition[c][k][exists] = false;

        // Move the hit segment in the opposite direction
        if (left) {
        
        	givingposition[c+1][k][x]=givingposition[c][k][x];
        		givingposition[c+1][k][y]=givingposition[c][k][y];
        
            givingposition[c + 1][k][x] += boxPixelsX - 0.9f;
          //  movecentipede(window, givingposition, centipedeclock, mushroom);
        } if(!left) {
        	givingposition[c+1][k][exists]=true;
        		givingposition[c+1][k][x]=givingposition[c][k][x];
        		givingposition[c+1][k][x]=givingposition[c][k][x];
        	givingposition[c+1][k][exists]=true;
            givingposition[c + 1][k][x] -= boxPixelsX + 0.9f;
           // movecentipede(window, givingposition, centipedeclock, mushroom);
        }

        // Copy the head position from the previous segment to the new one
       givingposition[c + 1][0][x] = givingposition[c][k-1][x];
        givingposition[c + 1][0][y] = givingposition[c][k-1][y];

        // Ensure that you don't exceed the maximum number of segments
        if (k + 1 < 12) {
            //givingposition[c][k + 1][x] = -0.1f;
            //givingposition[c][k + 1][y] = -0.1f;
        }

        // Set the new segment at the same location and mark it as the head
      /*  givingposition[c + 1][k][exists] = true;
        givingposition[c + 1][k][x] = givingposition[c][k + 1][x];
        givingposition[c + 1][k][y] = givingposition[c][k + 1][y];

        // Create a new head at the end of the centipede
        givingposition[c + 1][11][exists] = true;
        if (left) {
            movecentipede(window, givingposition, centipedeclock, mushroom);

            givingposition[c + 1][11][x] = givingposition[c + 1][10][x] + boxPixelsX;
            givingposition[c + 1][11][y] = givingposition[c + 1][10][y];
        } else {
            movecentipede(window, givingposition, centipedeclock, mushroom);
            givingposition[c + 1][11][x] = givingposition[c + 1][10][x] - boxPixelsX;
            givingposition[c + 1][11][y] = givingposition[c + 1][10][y];
        }

        centipedehead[c + 1][2].setPosition(givingposition[c + 1][11][x], givingposition[c + 1][11][y]);

        // Update the centipede details array for the split
        for (int i = 0; i < 12; i++) {
            centipedetail[c + 1][i][1].setPosition(givingposition[c + 1][k][x], givingposition[c + 1][k][y]);
        }*/
         for(int i=0;i<12;i++){
			   
               centipedetail[c+1][i][1].setPosition(givingposition[c+1][k][x],givingposition[c+1][k][y]);
     //  window.draw(centipedetail[c+1][i][x]);
  }
    }
}

void drawPlayer(sf::RenderWindow &window, float player[], sf::Sprite &playerSprite);
void moveBullets(float bullet[][3], sf::Clock &bulletClock, float mushroom[][3], float hit[][2], float player[], int &hitMushroom);
void drawBullets(sf::RenderWindow &window, float bullets[][3], sf::Sprite bulletSprite[7][2], float hit[24][2], int &hitMushroom);
void drawmushroom(RenderWindow &window, Sprite mushroomSprite[24][2], float mushroom[24][3], float hit[24][2]);

void hitcentipede(RenderWindow &window, bool left, float bullets[][3], float givingposition[][12][3], int maxcentipede,Sprite centipedetail[][12][2] , Sprite centipedehead[][2] ,
float mushroom[12][3] , Clock &centipedeclock) {
    for (int c = 0; c < maxcentipede; c++) {
        for (int i = 0; i < 7; i++) {
            for (int j = 0; j < 12; j++) {
                if (givingposition[c][j][exists] && bullets[i][exists] &&
                    bullets[i][x] >= givingposition[c][j][x] && bullets[i][x] <= givingposition[c][j][x] + boxPixelsX &&
                    bullets[i][y] >= givingposition[c][j][y] && bullets[i][y] <= givingposition[c][j][y] + boxPixelsY) {
                    if (j == 0) {
                        // Head is hit, remove the entire centipede
                        for (int k = 0; k < 12; k++) {
                           // givingposition[c][k][exists] = false;
                            //gameover=true;
                        }
                    } 
					
				
					else {
                        // Call the function to split the body
                        splitCentipedeBody(window , givingposition, c, j, left, centipedetail , centipedehead ,
					centipedeclock, mushroom);
                        
  

                        //	maxcentipede++;
			/*	for (int k = 0; k < 12; k++) {
                            givingposition[maxcentipede ][k][exists] = true;
                            givingposition[maxcentipede ][k][x] = givingposition[maxcentipede-1][k][x] + boxPixelsX;
                            givingposition[maxcentipede ][k][y] =  givingposition[maxcentipede-1][k][y];
                        }*/
                    }
                    bullets[i][exists] = false; // Mark the bullet as hit
                    break; // Exit the loop after removing or splitting the centipede
                }
            }
        }
    }
}


void hitplayer(RenderWindow &window,float givingposition[][12][3],float player[x]){
	
	for(int i=0;i<12;i++)
	{
	

    if (givingposition[i][i][x] >= player[x] && givingposition[i][i][x] <= player[x] + boxPixelsX &&
        givingposition[i][i][y] >= player[y] && givingposition[i][i][y] <= player[y] + boxPixelsY) {
        	
        	
      gameover=true;
        // window.close(); 
		 // Close the window when the centipede hits the player
    }
}

//	player[x]=player[x]+3;
	
//	window.close();

	}
	
	




int main()
{
	

    float hit[24][2] = {};
    int hitMushroom = -1;

    srand(time(0));
    int p = 0;

    sf::RenderWindow window(sf::VideoMode(resolutionX, resolutionY), "Centipede", sf::Style::Close | sf::Style::Titlebar);
    window.setSize(sf::Vector2u(640, 640));
    window.setPosition(sf::Vector2i(100, 0));
    sf::Music bgMusic;
    bgMusic.openFromFile("Music/field_of_hopes.ogg");
    bgMusic.play();
    bgMusic.setVolume(50);

    sf::Texture backgroundTexture;
    sf::Sprite backgroundSprite;
    backgroundTexture.loadFromFile("new.jpg");
    backgroundSprite.setTexture(backgroundTexture);
    backgroundSprite.setColor(sf::Color(255, 255, 255, 455 * 0.20));

    float player[2] = {};
    player[x] = (gameColumns / 2) * boxPixelsX;
    player[y] = (gameColumns * 3 / 4) * boxPixelsY;
    sf::Texture playerTexture;
    sf::Sprite playerSprite;
    playerTexture.loadFromFile("Textures/player.png");
    playerSprite.setTexture(playerTexture);
    playerSprite.setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));

    Texture mushroomTexture;
    Sprite mushroomSprite[24][2];
    mushroomTexture.loadFromFile("Textures/mushroom.png");
    float mushroom[24][3] = {};
    for (int i = 1; i < 24; i++)
    {
        int randomboxX = rand() % 24;
        int randomboxY = rand() % 24;

        if (mushroom[i][x] == player[x] || mushroom[i][y] == player[y])
        {
            continue;
        }
        if (hit[i][2])
            continue;
        mushroom[i][x] = randomboxX * boxPixelsX + (rand() % boxPixelsX);

        mushroom[i][y] = randomboxY * boxPixelsY + rand() % boxPixelsY;
        mushroom[i][exists] = true;
        mushroomSprite[i][x].setTexture(mushroomTexture);
        mushroomSprite[i][x].setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));
        mushroomSprite[i][x].setPosition(mushroom[i][x], mushroom[i][y]);
    }

    Sprite centipedetail[6][12][2];
    Texture centipedetailtexture;
    Texture centipedeTexture;
  //  float positiontail[12][3];
    Sprite centipedehead[3][2];
    float givingposition[12][12][3];
    centipedeTexture.loadFromFile("Textures/head.png");
    centipedetailtexture.loadFromFile("Textures/body.png");
//if(givingposition[0][exists]==true)
//{

    givingposition[0][0][x] = (rand() % 1000) + boxPixelsX;
    givingposition[0][0][y] =(rand() % 1000) + boxPixelsY;
    givingposition[0][0][exists]=true;
    
    centipedehead[0][2].setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));
    centipedehead[0][2].setPosition(givingposition[0][0][x], givingposition[0][0][y]);
    centipedehead[0][2].setTexture(centipedeTexture);
    centipedehead[1][2].setTexture(centipedeTexture);
    centipedehead[2][2].setTexture(centipedeTexture);
    centipedehead[3][2].setTexture(centipedeTexture);
   // centipedehead[1][exists]=true;
for(int c=0;c<maxcentipede;c++){

    for (int i = 0; i <12; i++)
    {
        givingposition[c][i][x] = givingposition[c][i - 1][x] + boxPixelsX;
        givingposition[c][i][y] = givingposition[c][i - 1][y];
        givingposition[c][i][exists]=true;
        
    }}
for(int c=0;c<maxcentipede;c++){

    for (int i = 0; i < 12; i++)
    { for(t=0;t<3;t++){
	
        centipedetail[t][i][1].setTextureRect(IntRect(0, 0, boxPixelsX, boxPixelsY));
        centipedetail[t][i][1].setTexture(centipedetailtexture);}
        centipedetail[t][i][1].setPosition(givingposition[c][i][x], givingposition[c][i][y]);
        //centipedetail[i][exists]=true;
    }}
    Clock centipedeclock;
    sf::Texture bulletTexture;
    sf::Sprite bulletSprite[7][2];
    bulletTexture.loadFromFile("Textures/bullet.png");
    float bullet[7][3] = {};
    for (int i = 1; i < 6; i++)
    {
        bullet[i][x] = player[x];
        bullet[i][y] = player[y] - boxPixelsY;
        bullet[0][exists] = true;
        bulletSprite[i][x].setTexture(bulletTexture);
        bulletSprite[i][x].setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    }

    sf::Clock bulletClock;
    while (window.isOpen())
    {
        sf::Event e;
        while (window.pollEvent(e))
        {
            if (e.type == sf::Event::Closed)
            {
                return 0;
            }
        }

        const float speed = 0.9f;
        for (int i = 0; i < 20; i++)
        {
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
            {
                if (player[x] + 1 < resolutionX - boxPixelsX)
                    player[x] = player[x] + 1 - speed;
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
            {
                if (player[x] - 1 >= 0)
                    player[x] = player[x] - 1 + speed;
            }
        }
        const float speed2 = 0.1f;
        moveBullets(bullet, bulletClock, mushroom, hit, player, hitMushroom);

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
        {
            if (player[y] > (resolutionY - boxPixelsY - 95))
            {

                player[y] = player[y] - 1 + speed;
            }
        }

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
        {

            if ((player[y] - 1) < (resolutionY - boxPixelsY))
            {

                player[y] = player[y] + 1 - speed;
            }
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
        {
            for (int i = 0; i < 7; ++i)
            {
                if (!bullet[i][exists])
                {
                    bullet[i][x] = player[x];
                    bullet[i][y] = player[y] - boxPixelsY;
                    bullet[i][exists] = true;
                    hitMushroom = -1; // Reset hitMushroom before firing a new bullet
                    break;
                }
            }
        }

        window.clear();
for(int c=0;c<maxcentipede;c++){


        for (int i = 0; i <12; i++)
        {
        	if(!headshot){
        	//	for(int t=0;t<12;t++){
				
			
        //	if(givingposition[i][exists]==true){
        		
			
           // for (int j = 1; j <= 2; j++)
           // {
           if(givingposition[c][i][exists]&&(!gameover)){
		   
                centipedetail[c][i][1].setPosition(givingposition[c][i][x], givingposition[c][i][y]);
                   centipedetail[c+1][i][1].setPosition(givingposition[c+1][i][x], givingposition[c+1][i][y]);
                window.draw(centipedehead[0][2]);
                window.draw(centipedetail[c][i][1]);
               //  window.draw(centipedetail[c + 1][i][1]);
              // centipedehead[1][2].setPosition(givingposition[c][11][x] , givingposition[c][11][y]);
                 // window.draw(centipedetail[c + 1][i][t]);
               // window.draw(centipedetail[c+1][i][1]);
              //  window.draw(centipedehead[1][2]);
              
            }
                centipedehead[c][2].setPosition(givingposition[c][0][x], givingposition[c][0][y]);
                
                movecentipede(window, givingposition, centipedeclock , mushroom);
            //  centipedehead[c][]
             
               hitcentipede(window,left,bullet,givingposition,maxcentipede,centipedetail , centipedehead , mushroom  , centipedeclock );
              
               
        }//}
      //  }}
	//	else
	//	centipedetail[i][1]=-1.0f;
	}
		}// window.draw(centipedehead[1][2]);

      

        window.draw(backgroundSprite);
        drawPlayer(window, player, playerSprite);
        drawBullets(window, bullet, bulletSprite, hit, hitMushroom);
        drawmushroom(window, mushroomSprite, mushroom, hit);
hitplayer(window,givingposition,player);
drawline(window,player);
if(gameover){

Font font;
font.loadFromFile("arial.ttf"); // Load the font file
Text gameOver("Game Over! Score: " ,font,30); // Fix the syntax here
gameOver.setPosition(200, resolutionY / 2);
window.draw(gameOver);
}
//splitCentipedeBody( givingposition,  c,  j,  left);
// void hitcentipede(RenderWindow &window,   left,bullet,  givingposition) ;

        window.display();
    }

    return 0;
}

void drawmushroom(RenderWindow &window, Sprite mushroomSprite[24][2], float mushroom[24][3], float hit[24][2])
{
    for (int i = 1; i < 24; i++)
    {
        for (int j = 0; j < 2; j++)
        {

            if (mushroom[i][exists] && hit[i][0] < 2){
			

                window.draw(mushroomSprite[i][j]);
            if (hit[i][0] >= 2){
			
                mushroom[i][exists] = false;
        }
    }}}
}

void drawPlayer(sf::RenderWindow &window, float player[], sf::Sprite &playerSprite)
{
    playerSprite.setPosition(player[x], player[y]);
    window.draw(playerSprite);
}

void moveBullets(float bullet[][3], sf::Clock &bulletClock, float mushroom[][3], float hit[][2], float player[], int &hitMushroom)
{
    if (bulletClock.getElapsedTime().asMilliseconds() < 20)
      // return;

    bulletClock.restart();

    for (int i = 0; i < 7; ++i)
    {
        if (bullet[i][exists])
        {
            bullet[i][y] -= 10;
            if (bullet[i][y] < -32)
            {
                bullet[i][exists] = false;
                hit[i][0] = 0;
            }
//hitMushroom=-1;
            for (int j = 1; j <= 23; ++j)
            {
                if (bullet[i][x] >= mushroom[j][x] && bullet[i][x] <= mushroom[j][x] + boxPixelsX &&
                    bullet[i][y] >= mushroom[j][y] && bullet[i][y] <= mushroom[j][y] + boxPixelsY)
                {
                    bullet[i][exists] = false;
                    hit[j][0]=hit[j][0]+1;

                    if (hit[j][0] >= 2)
                    {
                        mushroom[j][exists] = false;
                        mushroom[j][x] = -1.0f;
                        hitMushroom = 0; // Set the hit mushroom index
                      //  bullet[i][x]=-1.0f;
                      break;
                    }
                }
            }
        }
    }
 //   hitMushroom=-1;
}

void drawBullets(sf::RenderWindow &window, float bullet[7][3], sf::Sprite bulletSprite[7][2], float hit[24][2], int &hitMushroom)
{
    for (int i = 0; i < 7; ++i)
    {
        if (bullet[i][exists] && hitMushroom==-1)
        {
            bulletSprite[i][x].setPosition(bullet[i][x], bullet[i][y]);
            window.draw(bulletSprite[i][x]);

            // Check if the current hitMushroom is the same as the bullet hit
            //if (hitMushroom == i)
           //{
          //     hitMushroom = -1; // Reset hitMushroom after drawing
          //  }
        }
    }
}
    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include <SFML/Audio.hpp>
     
    using namespace std;
     
    // Initializing Dimensions.
    // resolutionX and resolutionY determine the rendering resolution.
    // Don't edit unless required. Use functions on lines 43, 44, 45 for resizing the game window.
    const int resolutionX = 960;
    const int resolutionY = 960;
    const int boxPixelsX = 32;
    const int boxPixelsY = 32;
    const int gameRows = resolutionX / boxPixelsX; // Total rows on grid
    const int gameColumns = resolutionY / boxPixelsY; // Total columns on grid
     
    // Initializing GameGrid.
    int gameGrid[gameRows][gameColumns] = {};
     
    // The following exist purely for readability.
    const int x = 0;
    const int y = 1;
    const int exists = 2;                                    //bool exists;//                       
    const int direction = 3;
    /////////////////////////////////////////////////////////////////////////////
    //                                                                         //
    // Write your functions declarations here. Some have been written for you. //
    //                                                                         //
    /////////////////////////////////////////////////////////////////////////////
     
    void drawPlayer(sf::RenderWindow& window, float player[], sf::Sprite& playerSprite);
    void movePlayer(float player[],float bullet[]);
    void moveBullet(float bullet[], sf::Clock& bulletClock);
    void drawBullet(sf::RenderWindow& window, float bullet[], sf::Sprite& bulletSprite);
    void drawShrooms(sf::RenderWindow& window, float shroom[][2], sf::Sprite& shroomSprite,int maxShrooms);
    void initializeShrooms(float shroom[][2],int maxShrooms);
    void initialize_centipede(float centipede[][4],int totalSegments);
    void drawCentipede(sf::RenderWindow& window, float centipede[12][4], sf::Sprite& centipedeSprite,const int totalSegments); 
    void move_centipede(float centipede[][4], sf::Clock& bulletClock);   //remove from sf::render..
    void bullet_shroom(float bullet[],float shroom[][2]);
    //void shroom_centipede 
    int main()
    {
    	srand(time(0));
      /*
      //centipede stuff:
      const int totalSegments = 12;
    float centipede[totalSegments][2]; // 2D array to store x and y positions of each segment
     
    // Initialize centipede positions (for example, starting from the top left)
    const int startX = 100; // Adjust as needed
    const int startY = 100; // Adjust as needed
    const int segmentGap = 20; // Gap between segments
     
    for (int i = 0; i < totalSegments; ++i) {
        centipede[i][0] = startX + i * segmentGap; // x position
        centipede[i][1] = startY; // y position (same for all segments in this example)
        
    }
                         */
     
           
     
     
     
    	// Declaring RenderWindow.
    	sf::RenderWindow window(sf::VideoMode(resolutionX, resolutionY), "Centipede", sf::Style::Close | sf::Style::Titlebar);
     
    	// Used to resize your window if it's too big or too small. Use according to your needs.
    	window.setSize(sf::Vector2u(640, 640)); // Recommended for 1366x768 (768p) displays.
    	//window.setSize(sf::Vector2u(1280, 1280)); // Recommended for 2560x1440 (1440p) displays.
    	// window.setSize(sf::Vector2u(1920, 1920)); // Recommended for 3840x2160 (4k) displays.
    	
    	// Used to position your window on every launch. Use according to your needs.
    	window.setPosition(sf::Vector2i(100, 0));
     
    	// Initializing Background Music.
    	sf::Music bgMusic;
    	bgMusic.openFromFile("Centipede_Skeleton/Music/field_of_hopes.ogg");
    	bgMusic.play();
    	bgMusic.setVolume(50);
     
    	// Initializing Background.
    	sf::Texture backgroundTexture;
    	sf::Sprite backgroundSprite;
    	backgroundTexture.loadFromFile("Centipede_Skeleton/Textures/background.png");
    	backgroundSprite.setTexture(backgroundTexture);
    	backgroundSprite.setColor(sf::Color(255, 255, 255, 200)); // Reduces Opacity to 25%
            
    	// Initializing Player and Player Sprites.
    	float player[2] = {};
    	player[x] = (gameColumns / 2) * boxPixelsX;
    	player[y] = (gameColumns * 3 / 4) * boxPixelsY;
    	sf::Texture playerTexture;
    	sf::Sprite playerSprite;
    	playerTexture.loadFromFile("Centipede_Skeleton/Textures/player.png");
    	playerSprite.setTexture(playerTexture);
    	playerSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	sf::Clock playerClock;
     
    	// Initializing Bullet and Bullet Sprites.
    	float bullet[3] = {};                              
    	                                  //bool bullet1[3];
    	bool request = false;
    	bullet[x] = player[x];
    	bullet[y] = player[y] - boxPixelsY;
    	bullet[exists] = false;
    	sf::Clock bulletClock;
    	sf::Texture bulletTexture;
    	sf::Sprite bulletSprite;
    	bulletTexture.loadFromFile("Centipede_Skeleton/Textures/bullet.png");
    	bulletSprite.setTexture(bulletTexture);
    	bulletSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	//initializing centipede
    	const int totalSegments = 12;
    	float centipede[100][4];
    	
    	//centipede[x] = (gameColumns / 2) * boxPixelsX;           //the position from where centipede will start its journey x-co-ordinate//
    	//centipede[y] = (gameColumns * 3 / 4) * boxPixelsY;         //the position from where centipede will start its journey y-co-ordinate//
    	//centipede[1][exists] = false;
    	for(int i=0;i<totalSegments;i++){
     
    	centipede[i][exists] = true;
    	
    	
    	                                 }
    	               
    	sf::Texture centipedeTexture;
    	sf::Sprite centipedeSprite;
    	centipedeTexture.loadFromFile("Centipede_Skeleton/Textures/c_body_left_walk.png");
    	centipedeSprite.setTexture(centipedeTexture);
    	centipedeSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	sf::Clock centipedeClock;
    	initialize_centipede(centipede,totalSegments);
    	
    	
    	//initializing shrooms:
    	const int maxShrooms = 18;
    	float shroom[maxShrooms][2] = {};
            
    	sf::Texture shroomTexture;
    	sf::Sprite shroomSprite;
    	shroomTexture.loadFromFile("Centipede_Skeleton/Textures/mushroom.png");
    	shroomSprite.setTexture(shroomTexture);
    	shroomSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
          
            initializeShrooms(shroom,maxShrooms);           //calling shroom's function to initialize position;
    	while(window.isOpen()) {
     
    		///////////////////////////////////////////////////////////////
    		//                                                           //
    		// Call Your Functions Here. Some have been written for you. //
    		// Be vary of the order you call them, SFML draws in order.  //
    		//                                                           //
    		///////////////////////////////////////////////////////////////
     
    		window.draw(backgroundSprite);
    		
    		drawPlayer(window, player, playerSprite);
    		movePlayer(player,bullet);
    		/*shootBullet(bullet,request);
    		if(request){
    		bullet[exists] = true;
    		request = false;          
    		    }                       */  
    		
    		if (bullet[exists] == true) {
    			moveBullet(bullet, bulletClock);
    			drawBullet(window, bullet, bulletSprite);
    			bullet_shroom(bullet,shroom);
    		}
    		
    		
    		drawShrooms(window,shroom,shroomSprite,maxShrooms);
    		
    		
    		
    		drawCentipede(window, centipede, centipedeSprite,totalSegments);
    		move_centipede(centipede,centipedeClock);
    		
    		
    		
               sf::Event e;
    		while (window.pollEvent(e)) {
    			if (e.type == sf::Event::Closed) {
    				return 0;
    			}
    		
    		}		
    		window.display();
    		window.clear();
    	}
    	 
    	
    	
     }
     
    ////////////////////////////////////////////////////////////////////////////
    //                                                                        //
    // Write your functions definitions here. Some have been written for you. //
    //                                                                        //
    ////////////////////////////////////////////////////////////////////////////
     
    void drawPlayer(sf::RenderWindow& window, float player[], sf::Sprite& playerSprite) {
    	playerSprite.setPosition(player[x], player[y]); 
    	window.draw(playerSprite);
    }
     
     
     
     
    void drawBullet(sf::RenderWindow& window, float bullet[], sf::Sprite& bulletSprite) {
    	bulletSprite.setPosition(bullet[x], bullet[y]);
    	window.draw(bulletSprite);
    	
        }
     
     
     
     
     
                     
                           
     
     
     
    void moveBullet(float bullet[], sf::Clock& bulletClock) {
     float bullet_speed = 10.0f;
            
        
     	if (bulletClock.getElapsedTime().asMilliseconds() < 10)
    		return;
            
    	bulletClock.restart(); 
    	bullet[y] += -32;	 
    	if (bullet[y] < -32)    
           {  bullet[exists] = false; }
    		
                                                   }  
                                                   
     
     
           
                                                   
                                                   
     
     
    void drawShrooms(sf::RenderWindow& window, float shroom[][2], sf::Sprite& shroomSprite,int maxShrooms){
         
         for(int i=0;i<maxShrooms;i++){
                              
                             if(shroom[i][exists] == true){    
                              
                              shroomSprite.setPosition(shroom[i][x],shroom[i][y]);
                              window.draw(shroomSprite);                            
                                                                                      } 
                                                         }                                 
                      } 
     
    void initializeShrooms(float shroom[][2],int maxShrooms){
                                                                                                    
                                                                                                   
         for(int i=0;i<maxShrooms;i++){
                              shroom[i][x] =     rand()%gameRows * boxPixelsX; 
                              shroom[i][y] =     rand()%gameColumns * boxPixelsY;            
                              shroom[i][exists] = true;                                      }
                                                                            }
                                                                                                                                                                   
    void movePlayer(float player[],float bullet[]) {
        float movementSpeed = 5.0f;
        int bottomLimit = resolutionY - (6 * boxPixelsY); // Calculate the bottom limit
        
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && player[y] > bottomLimit) {
            player[y] -= movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::S) && player[y] < resolutionY - boxPixelsY) {
            player[y] += movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::D) && player[x] < resolutionX - boxPixelsX) {
            player[x] += movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::A) && player[x] > 0) {
            player[x] -= movementSpeed + 3;
        }
        
        if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space) && bullet[exists]==false){
        
        bullet[exists] = true;
        bullet[x] = player[x];
        bullet[y] = player[y] - boxPixelsY;
        
    }
        }
     
    void initialize_centipede(float centipede[][4],int totalSegments){
         
        
             for(int j=0;j<totalSegments;j++){
         centipede[j][x] = boxPixelsX*j;
          centipede[j][y] = boxPixelsY; 
         centipede[j][exists] = true;
         centipede[j][direction] = 1;              //1 for right and 0 for left;
         
         
     
                                                 }
                                              
                 
                                                           }   
     
    void drawCentipede(sf::RenderWindow& window, float centipede[12][4], sf::Sprite& centipedeSprite,const int totalSegments) {
        const int segmentWidth = boxPixelsX; // Width of each centipede segment
        const int segmentHeight = boxPixelsY; // Height of each centipede segment
     
        for (int i = 0; i < totalSegments; ++i) {
            if(centipede[i][exists]){
            centipedeSprite.setPosition(centipede[i][x], centipede[i][y]);
            window.draw(centipedeSprite);
            }
        }
    }
     

 
   void move_centipede(float centipede[][4], sf::Clock& centipedeClock) {
    int totalSegments = 12;
 
    if (centipedeClock.getElapsedTime().asMilliseconds() < 5)
        return;
 
    centipedeClock.restart();
 
    bool reachedBottomRight = true;
 
    for (int j = 0; j < totalSegments; j++) {
        if (centipede[j][direction] == 1) { // Moving right
            if (centipede[j][x] < 928) {
                centipede[j][x] += 32;
                if (centipede[j][y] != 928) {
                    reachedBottomRight = false;
                }
            } else {
                centipede[j][direction] = 0; // Change direction to down
                centipede[j][y] += 32;      // Move down a row
            }
        } else { // Moving left
            if (centipede[j][x] > 0) {
                centipede[j][x] -= 32;
                if (centipede[j][y] != 928) {
                    reachedBottomRight = false;
                }
            } else {
                centipede[j][direction] = 1; // Change direction to down
                centipede[j][y] += 32;      // Move down a row
            }
        }
    }
    
    for (int j = 0; j < totalSegments; j++){
 if (centipede[j][y] == 928 && centipede[j][x] == 928){
 reachedBottomRight = true;}
 else{reachedBottomRight = false;}
    if (reachedBottomRight) {
        // Move to the 6th row above the bottom
         {
            centipede[j][y] = 928 - (6 * boxPixelsY);
        }
    }
}

}

void bullet_shroom(float bullet[], float shroom[][2]) {
    float bulletX = bullet[x];
    float bulletY = bullet[y];

    for (int i = 0; i < 18; i++) {
        float shroomX = shroom[i][x];
        float shroomY = shroom[i][y];

        // Define a range around the mushroom position for collision detection
        float collisionRange = 16.0f; // Adjust this value as needed

        // Check if bullet position is within the range of a mushroom
        if (bulletX >= shroomX - collisionRange && bulletX <= shroomX + collisionRange &&
            bulletY >= shroomY - collisionRange && bulletY <= shroomY + collisionRange) {
            bullet[exists] = false;
            shroom[i][exists] = false;
            break; // Exit loop after handling collision with one mushroom
        }
    }
}
    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include <SFML/Audio.hpp>
     
    using namespace std;
     
    // Initializing Dimensions.
    // resolutionX and resolutionY determine the rendering resolution.
    // Don't edit unless required. Use functions on lines 43, 44, 45 for resizing the game window.
    const int resolutionX = 960;
    const int resolutionY = 960;
    const int boxPixelsX = 32;
    const int boxPixelsY = 32;
    const int gameRows = resolutionX / boxPixelsX; // Total rows on grid
    const int gameColumns = resolutionY / boxPixelsY; // Total columns on grid
     
    // Initializing GameGrid.
    int gameGrid[gameRows][gameColumns] = {};
     
    // The following exist purely for readability.
    const int x = 0;
    const int y = 1;
    const int exists = 2;                                    //bool exists;//                       
    const int direction = 3;
    /////////////////////////////////////////////////////////////////////////////
    //                                                                         //
    // Write your functions declarations here. Some have been written for you. //
    //                                                                         //
    /////////////////////////////////////////////////////////////////////////////
     
    void drawPlayer(sf::RenderWindow& window, float player[], sf::Sprite& playerSprite);
    void movePlayer(float player[],float bullet[]);
    void moveBullet(float bullet[], sf::Clock& bulletClock);
    void drawBullet(sf::RenderWindow& window, float bullet[], sf::Sprite& bulletSprite);
    void drawShrooms(sf::RenderWindow& window, float shroom[][2], sf::Sprite& shroomSprite,int maxShrooms);
    void initializeShrooms(int shroom[][2],int maxShrooms);
    void initialize_centipede(float centipede[][4],int totalSegments);
    void drawCentipede(sf::RenderWindow& window, float centipede[12][4], sf::Sprite& centipedeSprite,const int totalSegments); 
    void move_centipede(float centipede[][4], sf::Clock& bulletClock,sf::RenderWindow& window, int shroom[][2], sf::Sprite& shroomSprite,int maxShrooms);   //remove from sf::render..
    //void shroom_centipede 
    int main()
    {
    	srand(time(0));
      /*
      //centipede stuff:
      const int totalSegments = 12;
    float centipede[totalSegments][2]; // 2D array to store x and y positions of each segment
     
    // Initialize centipede positions (for example, starting from the top left)
    const int startX = 100; // Adjust as needed
    const int startY = 100; // Adjust as needed
    const int segmentGap = 20; // Gap between segments
     
    for (int i = 0; i < totalSegments; ++i) {
        centipede[i][0] = startX + i * segmentGap; // x position
        centipede[i][1] = startY; // y position (same for all segments in this example)
        
    }
                         */
     
           
     
     
     
    	// Declaring RenderWindow.
    	sf::RenderWindow window(sf::VideoMode(resolutionX, resolutionY), "Centipede", sf::Style::Close | sf::Style::Titlebar);
     
    	// Used to resize your window if it's too big or too small. Use according to your needs.
    	window.setSize(sf::Vector2u(640, 640)); // Recommended for 1366x768 (768p) displays.
    	//window.setSize(sf::Vector2u(1280, 1280)); // Recommended for 2560x1440 (1440p) displays.
    	// window.setSize(sf::Vector2u(1920, 1920)); // Recommended for 3840x2160 (4k) displays.
    	
    	// Used to position your window on every launch. Use according to your needs.
    	window.setPosition(sf::Vector2i(100, 0));
     
    	// Initializing Background Music.
    	sf::Music bgMusic;
    	bgMusic.openFromFile("Centipede_Skeleton/Music/field_of_hopes.ogg");
    	bgMusic.play();
    	bgMusic.setVolume(50);
     
    	// Initializing Background.
    	sf::Texture backgroundTexture;
    	sf::Sprite backgroundSprite;
    	backgroundTexture.loadFromFile("Centipede_Skeleton/Textures/background.png");
    	backgroundSprite.setTexture(backgroundTexture);
    	backgroundSprite.setColor(sf::Color(255, 255, 255, 200)); // Reduces Opacity to 25%
            
    	// Initializing Player and Player Sprites.
    	float player[2] = {};
    	player[x] = (gameColumns / 2) * boxPixelsX;
    	player[y] = (gameColumns * 3 / 4) * boxPixelsY;
    	sf::Texture playerTexture;
    	sf::Sprite playerSprite;
    	playerTexture.loadFromFile("Centipede_Skeleton/Textures/player.png");
    	playerSprite.setTexture(playerTexture);
    	playerSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	sf::Clock playerClock;
     
    	// Initializing Bullet and Bullet Sprites.
    	float bullet[3] = {};                              
    	                                  //bool bullet1[3];
    	bool request = false;
    	bullet[x] = player[x];
    	bullet[y] = player[y] - boxPixelsY;
    	bullet[exists] = false;
    	sf::Clock bulletClock;
    	sf::Texture bulletTexture;
    	sf::Sprite bulletSprite;
    	bulletTexture.loadFromFile("Centipede_Skeleton/Textures/bullet.png");
    	bulletSprite.setTexture(bulletTexture);
    	bulletSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	//initializing centipede
    	const int totalSegments = 12;
    	float centipede[100][4];
    	
    	//centipede[x] = (gameColumns / 2) * boxPixelsX;           //the position from where centipede will start its journey x-co-ordinate//
    	//centipede[y] = (gameColumns * 3 / 4) * boxPixelsY;         //the position from where centipede will start its journey y-co-ordinate//
    	//centipede[1][exists] = false;
    	for(int i=0;i<totalSegments;i++){
     
    	centipede[i][exists] = true;
    	
    	
    	                                 }
    	               
    	sf::Texture centipedeTexture;
    	sf::Sprite centipedeSprite;
    	centipedeTexture.loadFromFile("Centipede_Skeleton/Textures/c_body_left_walk.png");
    	centipedeSprite.setTexture(centipedeTexture);
    	centipedeSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
    	
    	sf::Clock centipedeClock;
    	initialize_centipede(centipede,totalSegments);
    	
    	
    	//initializing shrooms:
    	const int maxShrooms = 18;
    	float shroom[maxShrooms][2] = {};
            
    	sf::Texture shroomTexture;
    	sf::Sprite shroomSprite;
    	shroomTexture.loadFromFile("Centipede_Skeleton/Textures/mushroom.png");
    	shroomSprite.setTexture(shroomTexture);
    	shroomSprite.setTextureRect(sf::IntRect(0, 0, boxPixelsX, boxPixelsY));
          
            initializeShrooms(shroom,maxShrooms);           //calling shroom's function to initialize position;
    	while(window.isOpen()) {
     
    		///////////////////////////////////////////////////////////////
    		//                                                           //
    		// Call Your Functions Here. Some have been written for you. //
    		// Be vary of the order you call them, SFML draws in order.  //
    		//                                                           //
    		///////////////////////////////////////////////////////////////
     
    		window.draw(backgroundSprite);
    		
    		drawPlayer(window, player, playerSprite);
    		movePlayer(player,bullet);
    		/*shootBullet(bullet,request);
    		if(request){
    		bullet[exists] = true;
    		request = false;          
    		    }                       */  
    		
    		if (bullet[exists] == true) {
    			moveBullet(bullet, bulletClock);
    			drawBullet(window, bullet, bulletSprite);
    			
    		}
    		
    		
    		drawShrooms(window,shroom,shroomSprite,maxShrooms);
    		
    		
    		
    		//drawCentipede(window, centipede, centipedeSprite,totalSegments);
    		move_centipede(centipede,centipedeClock,window,shroom, shroomSprite,maxShrooms);
    		
    		
    		
               sf::Event e;
    		while (window.pollEvent(e)) {
    			if (e.type == sf::Event::Closed) {
    				return 0;
    			}
    		
    		}		
    		window.display();
    		window.clear();
    	}
    	 
    	
    	
     }
     
    ////////////////////////////////////////////////////////////////////////////
    //                                                                        //
    // Write your functions definitions here. Some have been written for you. //
    //                                                                        //
    ////////////////////////////////////////////////////////////////////////////
     
    void drawPlayer(sf::RenderWindow& window, float player[], sf::Sprite& playerSprite) {
    	playerSprite.setPosition(player[x], player[y]); 
    	window.draw(playerSprite);
    }
     
     
     
     
    void drawBullet(sf::RenderWindow& window, float bullet[], sf::Sprite& bulletSprite) {
    	bulletSprite.setPosition(bullet[x], bullet[y]);
    	window.draw(bulletSprite);
    	
        }
     
     
     
     
     
                     
                           
     
     
     
    void moveBullet(float bullet[], sf::Clock& bulletClock) {
     float bullet_speed = 10.0f;
            
        
     	if (bulletClock.getElapsedTime().asMilliseconds() < 10)
    		return;
            
    	bulletClock.restart(); 
    	bullet[y] += -32;	 
    	if (bullet[y] < -32)    
           {  bullet[exists] = false; }
    		
                                                   }  
                                                   
     
     
           
                                                   
                                                   
     
     
    void drawShrooms(sf::RenderWindow& window, float shroom[][2], sf::Sprite& shroomSprite,int maxShrooms){
         
         for(int i=0;i<maxShrooms;i++){
                              
                              
                              
                              shroomSprite.setPosition(shroom[i][x],shroom[i][y]);
                              window.draw(shroomSprite);                            
                                                                                      } 
                                                                                          
                      } 
     
    void initializeShrooms(float shroom[][2],int maxShrooms){
                                                                                                    
                                                                                                   
         for(int i=0;i<maxShrooms;i++){
                              shroom[i][x] =     rand()%gameRows * boxPixelsX; 
                              shroom[i][y] =     rand()%gameColumns * boxPixelsY;            
                                                                    }
                                                                            }
                                                                                                                                                                   
    void movePlayer(float player[],float bullet[]) {
        float movementSpeed = 5.0f;
        int bottomLimit = resolutionY - (6 * boxPixelsY); // Calculate the bottom limit
        
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && player[y] > bottomLimit) {
            player[y] -= movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::S) && player[y] < resolutionY - boxPixelsY) {
            player[y] += movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::D) && player[x] < resolutionX - boxPixelsX) {
            player[x] += movementSpeed + 3;
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::A) && player[x] > 0) {
            player[x] -= movementSpeed + 3;
        }
        
        if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space) && bullet[exists]==false){
        
        bullet[exists] = true;
        bullet[x] = player[x];
        bullet[y] = player[y] - boxPixelsY;
        
    }
        }
     
    void initialize_centipede(float centipede[][4],int totalSegments){
         
        
             for(int j=0;j<totalSegments;j++){
         centipede[j][x] = boxPixelsX*j;
          centipede[j][y] = boxPixelsY; 
         centipede[j][exists] = true;
         centipede[j][direction] = 1;              //1 for right and 0 for left;
         
         
     
                                                 }
                                              
                 
                                                           }   
     
    void move_centipede(float centipede[][4], sf::Clock& centipedeClock, sf::RenderWindow& window, float shroom[][2], sf::Sprite& shroomSprite, int maxShrooms) {
    int totalSegments = 12;

    if (centipedeClock.getElapsedTime().asMilliseconds() < 5)
        return;

    centipedeClock.restart();

    bool reachedBottomRight = true;

    for (int j = 0; j < totalSegments; j++) {
        if (centipede[j][direction] == 1) { // Moving right
            if (centipede[j][x] < 928) {
                centipede[j][x] += 32;
                if (centipede[j][y] != 928) {
                    reachedBottomRight = false;
                }
            } else {
                centipede[j][direction] = 0; // Change direction to down
                centipede[j][y] += 32;      // Move down a row
            }
        } else { // Moving left
            if (centipede[j][x] > 0) {
                centipede[j][x] -= 32;
                if (centipede[j][y] != 928) {
                    reachedBottomRight = false;
                }
            } else {
                centipede[j][direction] = 1; // Change direction to down
                centipede[j][y] += 32;      // Move down a row
            }
        }
    }

    for (int j = 0; j < totalSegments; j++) {
        if (centipede[j][y] == 928 && centipede[j][x] == 928) {
            reachedBottomRight = true;
        } else {
            reachedBottomRight = false;
        }
        if (reachedBottomRight) {
            // Move to the 6th row above the bottom
            centipede[j][y] = 928 - (6 * boxPixelsY);
        }
    }

    // Shroom and centipede collision
    for (int i = 0; i < maxShrooms; i++) {
        for (int j = 0; j < totalSegments; j++) {
            if (shroom[i][x] == centipede[j][x] && shroom[i][y] == centipede[j][y]) {
                centipede[j][y] += 32;
            }
        }
    }

    // Draw shrooms after the collision check
    drawShrooms(window, shroom, shroomSprite, maxShrooms);
}
<script>
document.addEventListener('alpine:init', () => {
    Alpine.store('notifications', {
        items: [],
        notify(message) {
            this.items.push(message)
        }
    })
})
</script>
}
.widget.skin28 .widgetBody {
position: relative;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}

.widget.skin28 .widgetBody iframe,
.widget.skin28 .widgetBody object,
.widget.skin28 .widgetBody embed {
position: absolute;
bottom: 50%;
left: 50%;
width: 100%;
height: 100%;
max-height: 410px !important;
transform: translate(-50%, 50%);

إذا كان متغير البيئة $XDG_CONFIG_HOMEموجودًا، فسيتم وضع nvmالملفات هناك.

يمكنك إضافة --no-useإلى نهاية البرنامج النصي أعلاه (... nvm.sh --no-use) لتأجيل استخدامه nvmحتى تقوم useبذلك يدويًا.

يمكنك تخصيص مصدر التثبيت والدليل والملف الشخصي والإصدار باستخدام المتغيرات NVM_SOURCEو NVM_DIRو PROFILEو و NODE_VERSION. على سبيل المثال : curl ... | NVM_DIR="path/to/nvm". تأكد من أن NVM_DIRلا يحتوي على شرطة مائلة زائدة.

يمكن أن يستخدم المثبت gitأو curlأو wgetللتنزيل nvm، أيهما متاح.

يمكنك توجيه المثبت بعدم تعديل تكوين Shell الخاص بك (على سبيل المثال، إذا كنت قد حصلت بالفعل على عمليات إكمال عبر مكون إضافي zsh nvm ) عن طريق الإعداد PROFILE=/dev/nullقبل تشغيل install.shالبرنامج النصي. فيما يلي مثال لأمر من سطر واحد للقيام بذلك:PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash'

استكشاف الأخطاء وإصلاحها على نظام التشغيل Linux
على نظام التشغيل Linux، بعد تشغيل البرنامج النصي للتثبيت، إذا لم تتلق nvm: command not foundأي تعليقات من جهازك الطرفي أو لم ترها بعد الكتابة command -v nvm، فما عليك سوى إغلاق جهازك الطرفي الحالي، وفتح جهاز طرفي جديد، ثم حاول التحقق مرة أخرى. وبدلاً من ذلك، يمكنك تشغيل الأوامر التالية للأصداف المختلفة في سطر الأوامر:

باش :source ~/.bashrc

زش :source ~/.zshrc

شلن كيني :. ~/.profile

يجب أن يلتقط هؤلاء nvmالأمر.

استكشاف الأخطاء وإصلاحها على نظام التشغيل MacOS
منذ OS X 10.9، /usr/bin/gitتم إعداده مسبقًا بواسطة أدوات سطر أوامر Xcode، مما يعني أنه لا يمكننا اكتشاف ما إذا كان Git مثبتًا أم لا بشكل صحيح. تحتاج إلى تثبيت أدوات سطر أوامر Xcode يدويًا قبل تشغيل البرنامج النصي للتثبيت، وإلا فسوف يفشل. (انظر #1782 )

إذا حصلت nvm: command not foundعلى بعد تشغيل البرنامج النصي للتثبيت، فقد يكون أحد الأسباب التالية هو السبب:

منذ نظام التشغيل macOS 10.15، الغلاف الافتراضي هو zshوسيبحث nvm .zshrcعن التحديث، ولم يتم تثبيت أي شيء افتراضيًا. أنشئ واحدًا باستخدام touch ~/.zshrcالبرنامج النصي للتثبيت وقم بتشغيله مرة أخرى.

إذا كنت تستخدم bash، الصدفة الافتراضية السابقة، فقد لا يكون لدى نظامك .bash_profileملفات .bashrcحيث تم إعداد الأمر. قم بإنشاء واحد منهم باستخدام البرنامج النصي للتثبيت touch ~/.bash_profileأو قم بتشغيله مرة أخرى. touch ~/.bashrcثم قم بتشغيل . ~/.bash_profileأو . ~/.bashrcلالتقاط nvmالأمر.

لقد استخدمته من قبل bash، ولكنك قمت zshبتثبيته. تحتاج إلى إضافة هذه السطور يدويًا إلى ~/.zshrcملفات . ~/.zshrc.

قد تحتاج إلى إعادة تشغيل مثيلك الطرفي أو تشغيل . ~/.nvm/nvm.sh. ستؤدي إعادة تشغيل جهازك الطرفي/فتح علامة تبويب/نافذة جديدة، أو تشغيل الأمر المصدر إلى تحميل الأمر والتكوين الجديد.

إذا لم يساعدك ما سبق، فقد تحتاج إلى إعادة تشغيل مثيلك الطرفي. حاول فتح علامة تبويب/نافذة جديدة في جهازك ثم أعد المحاولة.

إذا لم يحل ما ورد أعلاه المشكلة، فيمكنك تجربة ما يلي:

إذا كنت تستخدم bash، فمن المحتمل أن .bash_profile(أو ~/.profile) لا يصدر مصدرك ~/.bashrcبشكل صحيح. يمكنك إصلاح ذلك عن طريق الإضافة source ~/<your_profile_file>إليه أو اتباع الخطوة التالية أدناه.

حاول إضافة المقتطف من قسم التثبيت ، الذي يبحث عن دليل nvm الصحيح ويقوم بتحميل nvm، إلى ملفك الشخصي المعتاد ( ~/.bash_profileأو ~/.zshrcأو ~/.profileأو ~/.bashrc).

لمزيد من المعلومات حول هذه المشكلة والحلول الممكنة، يرجى الرجوع هنا

ملاحظة: بالنسبة لأجهزة Mac المزودة بشريحة M1، بدأت العقدة في تقديم حزم Arm64 Arch darwin منذ الإصدار 16.0.0 والدعم التجريبي لـarm64 عند التجميع من المصدر منذ الإصدار 14.17.0. إذا كنت تواجه مشكلات في تثبيت العقدة باستخدام nvm، فقد ترغب في التحديث إلى أحد هذه الإصدارات أو الإصدارات الأحدث.

غير مقبول
يمكنك استخدام المهمة:

- name: Install nvm
  ansible.builtin.shell: >
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  args:
    creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
 Save
التحقق من التثبيت
للتحقق من تثبيت nvm، قم بما يلي:

command -v nvm
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
void def(struct Node* root,vector<int>&ans,int k);
vector<int> Kdistance(struct Node *root, int k)
{
  vector<int>ans;
  def(root,ans,k);
  return ans;
}
void def(struct Node* root,vector<int>&ans,int k)
{
    if(!root)
    return;
    if(k==0)
    ans.push_back(root->data);
    def(root->left,ans,k-1);
    def(root->right,ans,k-1);
}
 bool solve(Node* root,int mini,int maxi)
    {
        if(!root)
        return true;
        if(root->data>mini and root->data<maxi)
        {
            bool lefti=solve(root->left,mini,root->data);
            bool righti=solve(root->right,root->data,maxi);
             if(lefti and righti)
        return true;
        }
       return false;
    }
    bool isBST(Node* root) 
    {
        return solve(root,INT_MIN,INT_MAX);
    }
abstract class BankAccount {
    public abstract void deposit(double amount);
    public abstract void withdraw(double amount);
    
    private String accountNumber;
    private double balance;
    
    public BankAccount(String accountNumber, double balance) {
        this.accountNumber = accountNumber;
        this.balance = balance;
    }

    public String getAccountNumber() {
        return accountNumber;
    }

    public double getBalance() {
        return balance;
    }

    protected void setBalance(double balance) {
        this.balance = balance;
    }

    
}
class SavingsAccount extends BankAccount {
    public SavingsAccount(String accountNumber, double balance) {
        super(accountNumber, balance);
    }

    @Override
    public void deposit(double amount) {
        setBalance(getBalance() + amount);
        System.out.println("Deposit of $" + amount + " successful. Current balance: $" + getBalance());
    }

    @Override
    public void withdraw(double amount) {
        if (getBalance() >= amount) {
            setBalance(getBalance() - amount);
            System.out.println("Withdrawal of $" + amount + " successful. Current balance: $" + getBalance());
        } else {
            System.out.println("Insufficient funds. Withdrawal failed.");
        }
    }
}
class CurrentAccount extends BankAccount {
    public CurrentAccount(String accountNumber, double balance) {
        super(accountNumber, balance);
    }

    @Override
    public void deposit(double amount) {
        setBalance(getBalance() + amount);
        System.out.println("Deposit of $" + amount + " successful. Current balance: $" + getBalance());
    }

    @Override
    public void withdraw(double amount) {
        if (getBalance() >= amount) {
            setBalance(getBalance() - amount);
            System.out.println("Withdrawal of $" + amount + " successful. Current balance: $" + getBalance());
        } else {
            System.out.println("Insufficient funds. Withdrawal failed.");
        }
    }
}

public class Main {
    public static void main(String[] args) {
		double ibal,damt,wamt;
        ibal = 1000.00;
        SavingsAccount savingsAccount = new SavingsAccount("SA001", ibal);
		System.out.println("Savings A/c: Initial Balace: $"+ibal);
		damt = 500.00;
        savingsAccount.deposit(damt);
		wamt = 250.00;
        savingsAccount.withdraw(wamt);
		wamt = 1600.00;
		System.out.println("\nTry to withdraw: $"+wamt);
        savingsAccount.withdraw(wamt);

        System.out.println();
        ibal = 5000.00;
        CurrentAccount currentAccount = new CurrentAccount("CA001", ibal);
		System.out.println("Current A/c: Initial Balace: $"+ibal);
		damt = 2500.00;
        currentAccount.deposit(1000.0);
		wamt = 1250.00;
        currentAccount.withdraw(3000.0);
		wamt = 6000.00;
		System.out.println("\nTry to withdraw: $"+wamt);
        savingsAccount.withdraw(wamt);		
    }
}
abstract class Shape {
    abstract double calculateArea();
    abstract double calculatePerimeter();
}

class Circle extends Shape {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    @Override
    double calculateArea() {
        return Math.PI * radius * radius;
    }

    @Override
    double calculatePerimeter() {
        return 2 * Math.PI * radius;
    }
}

class Triangle extends Shape {
    private double side1, side2, side3;

    public Triangle(double side1, double side2, double side3) {
        this.side1 = side1;
        this.side2 = side2;
        this.side3 = side3;
    }

    @Override
    double calculateArea() {
        double s = (side1 + side2 + side3) / 2; // Semi-perimeter
        return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
    }

    @Override
    double calculatePerimeter() {
        return side1 + side2 + side3;
    }
}

public class Main {
    public static void main(String[] args) {
        //double circleRadius = 4.0;
        Circle circle = new Circle(7);

       // double triangleSide1 = 3.0, triangleSide2 = 4.0, triangleSide3 = 5.0;
        Triangle triangle = new Triangle(3,4,5);

       // System.out.println("Radius of the Circle: " + circleRadius);
        System.out.println("Area of the Circle: " + circle.calculateArea());
        System.out.println("Perimeter of the Circle: " + circle.calculatePerimeter());

        //System.out.println("\nSides of the Triangle are: " + triangleSide1 + ", " + triangleSide2 + ", " + triangleSide3);
        System.out.println("Area of the Triangle: " + triangle.calculateArea());
        System.out.println("Perimeter of the Triangle: " + triangle.calculatePerimeter());
    }
}
ClassicEditor
            .create(document.querySelector('#kuran'))
            .then(editor => {
                function updatePhoneScreen() {

                    let kuranText = editor.getData();

                    console.log('kuranText:', kuranText);

                    let customTextContainer = document.getElementById('customTextContainer');

                    customTextContainer.innerHTML = kuranText;

                    console.log('customTextContainer:', customTextContainer);
                }
                editor.model.document.on('change:data', updatePhoneScreen);

                updatePhoneScreen();
            })
            .catch(error => {
                console.error('CK Editor yüklenirken bir hata oluştu:', error);
            });
https://lp.freelance.nl/verzekeren

window.onload = function() {

    var buttons = document.querySelectorAll('.btn-wrp .hs-cta-embed');
    if (buttons.length > 0) {
        var wrapper = document.createElement('div');
        wrapper.className = 'button-wrapper';
        buttons[0].parentNode.insertBefore(wrapper, buttons[0]);
        buttons.forEach(function(button) {
            wrapper.appendChild(button);
        });
    }

    //     ===========

    (function () {
        const paragraphs = document.querySelectorAll('.section .btn-wrp p');

        // Loop through the paragraphs
        if (paragraphs.length > 0){
            for (let i = 0; i < paragraphs.length; i++) {
                const currentP = paragraphs[i];
                const nextP = paragraphs[i + 1];

                // Check if the current p has a span with "hs-cta-wrapper" class and the next p has an anchor tag
                if (currentP.querySelector('span.hs-cta-wrapper') && nextP.querySelector('a')) {

                    console.log(currentP.querySelector('span.hs-cta-wrapper'))
                    console.log(nextP.querySelector('a'))

                    // Create a new div element
                    const newDiv = document.createElement('div');

                    // Clone the currentP and append it to the new div
                    newDiv.appendChild(currentP.cloneNode(true));

                    // Append the next p to the new div
                    newDiv.appendChild(nextP);

                    // Replace the current p with the new div
                    currentP.parentNode.replaceChild(newDiv, currentP);
                }
            }
        }
    })();

};
   long long int convertEvenBitToZero(long long int n) 
    {
        return n&0xaaaaaaaa;
    }
string reverseString(string s)
{
   unordered_map<char,int>mp;
    string ans="";
    for(int i=s.length()-1 ; i>=0 ; i--)
    {
        mp[s[i]]++;
        if((mp[s[i]]==1)&&(s[i]!=' '))
        {
            ans+=s[i];
        }
    }
    return ans;
}
 pair<int, int> get(int a, int b)
    {
        a=a+b;
        b=a-b;
        a=a-b;
        return{a,b};
    }
add_action( 'sp_wpspro_before_product_thumbnail', 'wdr_woocommerce_sale_flash_custom');

function wdr_woocommerce_sale_flash_custom($posts){
	global $post; global $product;
	echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale wdr-onsale">' . esc_html__( 'Sale!', 'woocommerce' ) . '</span>', $post, $product ); 
}
# Assume -9999 is a missing data flag
df.replace(-9999, np.NaN)
# Alternatively, perform this when creating the dataframe:
pd.read_csv("https://www.atmos.albany.edu/products/metarCSV/world_metar_latest.csv", sep='\s+',na_values=['9999.00','-9999.0'])
<!DOCTYPE html>
<html lang="en-UK">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>How To Translate KM</title>

    <!-- Style to hide the Google logo and adjust font size -->
    <style>
        .goog-logo-link {
            display: none !important;
        }
        .goog-te-gadget {
            color: transparent !important;
        }
        body {
            font-size: 14px;
        }
        h1, h2, ol {
            margin-bottom: 10px;
        }
        ol li {
            margin-bottom: 5px;
        }
    </style>
</head>
<body>

<p><strong>Use the Google Translate button below this instruction to translate it to your native language.</strong></p>

<h1>How To Translate KM</h1>

<p>There are two methods to read KM in your native language:</p>

<h2>Method 1</h2>
<ol>
    <li>Make sure you open the KM link with Google Chrome since this is a Google site that uses Google Translate.</li>
    <li>Look for an empty space (where there are no words, letters, or content) and right-click in it.</li>
    <li>In the popup, select ‘Translate to English’ (select it even if you don’t see English, but you see another language).</li>
    <li>In the popup, click on the three vertical dots ⋮ and select ‘Choose another language’.</li>
    <li>Scroll to find your language, click on it, and click ‘Translate’.</li>
</ol>

<h2>Method 2</h2>
<ol>
    <li>Make sure you open the KM link with Google Chrome since this is a Google site that uses Google Translate.</li>
    <li>Click on the three vertical dots ⋮ at the top that are to the extreme right of the Google Chrome search box after your account avatar (depending on your device) and follow items 4 and 5 in method 1.</li>
</ol>

<div id="google_translate_element"></div>

<script type="text/javascript">
    function googleTranslateElementInit() {
        new google.translate.TranslateElement({ pageLanguage: 'en' }, 'google_translate_element');
    }
</script>

<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

</body>
</html>
        function success({coords}) {
            const latitude = coords.latitude;   // 위도
            const longitude = coords.longitude; // 경도
            
            location.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`;

            navigator.geolocation.getCurrentPosition(함수이름);
/*-----------remove dashboard menu globaly-------------------*/

add_action('admin_menu', 'plt_hide_woocommerce_menus', 71);
function plt_hide_woocommerce_menus() {
    global $submenu , $menu;
    //remove_menu_page( 'themes.php' );     //Appearance
    remove_menu_page( 'plugins.php' );    //Plugins
    remove_menu_page( 'users.php' );      //Users
}


/*-----------Admin panel by user menu show-------------------*/

function remove_gf_menu_page() {
    $current_user = wp_get_current_user();
    if ($current_user && $current_user->user_login === 'Atmos@vl') {
        remove_menu_page( 'index.php' );
        remove_menu_page( 'edit-comments.php' );
        remove_menu_page( 'options-general.php' );
        remove_menu_page( 'themes.php' );
        remove_menu_page( 'plugins.php' );
        remove_menu_page( 'users.php' );
        remove_menu_page( 'tools.php' );
        remove_menu_page( 'edit.php?post_type=woodmart_sidebar' );
        remove_menu_page( 'edit.php?post_type=portfolio' );
        remove_menu_page( 'edit.php?post_type=woodmart_layout' );
        remove_menu_page( 'vc-general' );
        remove_menu_page( 'getwooplugins' );
        remove_menu_page( 'xts_theme_settings' );
        remove_menu_page( 'xts_dashboard' );
        remove_action('admin_footer', 'wp_admin_footer');
        remove_action('wp_footer', 'wp_generator');
        remove_filter('update_footer', 'core_update_footer');
        add_filter('admin_footer_text', '__return_empty_string');
    }
}
add_action('admin_menu', 'remove_gf_menu_page', 9999 );
public interface AccountRepository extends JpaRepository<Account, Integer> { 
    long countByUsername(String username);
    long countByPermission(Permission permission); 
    long countByPermissionAndCreatedOnGreaterThan(Permission permission, Timestamp ts)
}
Copy
step1-node -v to see the version of nodejs
step2-npx create-react-app nisthaapp
step3-cd nisthaapp
step4-npm run start
step5-delete those files which are not in work
setuptest.js in src,reportwebvitals in src,logo.svg in src,apptest in src,app.css in src
step6-go in index.js and remove delete files from include section
step7-same for app.js
step8-new app.js

function App() {
  return (
   <div>
    <h1>
      chai or react
    </h1>
    </div>
  );
}

export default App;


jo bhi project hum npx create-react-app se bnate h vo bhut jyada bulky hote h.isliye ab hum vite use krte h.vite ek bundler h
step1-npm create vite@latest
step2-set configuration 
step3-cd projectname
step4-iss process mai node modules nhi hote isliye alag se install krne pdenge
command-npm i
step5-delete those files which are not in work
step6-go in index.js and remove delete files from include section
step7-same for app.js
step8-new app.js
def getKey(keysize):

    key = os.urandom(keysize)
    return key

def getIV(blocksize):

    iv = os.urandom(blocksize)
    return iv
#include <stdio.h>
#define MAX 6
int Q[MAX];
int front, rear;
void insertQ()
{
    int data;
    if(rear==MAX) {
        printf("\nLinear Queue is Full: we cannot add an element.");
    }
    else{
        printf("Enter Data: ");
        scanf("\n%d", & data );
        Q[rear] = data;
        rear++;
    }
}
void deleteQ()
{
    if(rear==front){
        printf("Queue is Empty. we cannot delete an element.");
    }
    else {
        printf("\nDeleted Element is %d ", Q[front]);
        front++;
    }
}

void displayQ()
{
    int i;
    if(front==rear) {
        printf("\nQueue is Empty. we dont Have any element yet!");
    }
    else {
        printf("\nElements in the Queue is : ");
        for(int i = front; i<rear; i++){
            printf("%d ", Q[i]);
        }
    }
}

int menu()
{
    int choice;
    //clrscr();
    printf("\nQueus Operation using Array: ");
    printf("\n 1. insert Element.");
    printf("\n 2. Delete Element.");
    printf("\n 3. Display Elements.");
    printf("\n 4. Quit.");
    
    printf("\n\nEnter Your Choice: ");
    scanf("%d", & choice);
    return choice;
}

int main() {
   int choice;
   do
   {
       choice = menu();
       switch(choice) 
       {
           case 1: insertQ(); break;
           case 2: deleteQ(); break;
           case 3: displayQ(); break;
       }
       //getchoice();
   }
   while(1);

    //return 0;
}

//OUTPUT:
Queus Operation using Array: 
1. insert Element.
2. Delete Element.
3. Display Elements.
4. Quit.

Enter Your Choice: 1
Enter Data: 50
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Enter Data: 60
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Enter Data: 70
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 50 60 70 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Enter Data: 80
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 50 60 70 80 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 2
Deleted Element is 50 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 60 70 80 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Enter Data: 20
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Enter Data: 30
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Linear Queue is Full: we cannot add an element.
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 60 70 80 20 30 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Linear Queue is Full: we cannot add an element.
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 60 70 80 20 30 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 2
Deleted Element is 60 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 3
Elements in the Queue is : 70 80 20 30 
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 1
Linear Queue is Full: we cannot add an element.
Queus Operation using Array: 
 1. insert Element.
 2. Delete Element.
 3. Display Elements.
 4. Quit.

Enter Your Choice: 
{
    ip: "174.116.192.7",
    is_eu: false,
    city: "Moncton",
    region: "New Brunswick",
    region_code: "NB",
    region_type: "province",
    country_name: "Canada",
    country_code: "CA",
    continent_name: "North America",
    continent_code: "NA",
    latitude: 46.096500396728516,
    longitude: -64.80069732666016,
    postal: "E1C",
    calling_code: "1",
    flag: "https://ipdata.co/flags/ca.png",
    emoji_flag: "🇨🇦",
    emoji_unicode: "U+1F1E8 U+1F1E6",
    asn: {
        asn: "AS812",
        name: "Rogers Communications Canada Inc",
        domain: "rogers.com",
        route: "174.116.128.0/17",
        type: "business"
    },
    company: {
        name: "Rogers Communications Canada Inc",
        domain: "rogers.com",
        network: "174.116.128.0/17",
        type: "business"
    },
    languages: [
        {
            name: "English",
            native: "English",
            code: "en"
        },
        {
            name: "French",
            native: "Français",
            code: "fr"
        }
    ],
    currency: {
        name: "Canadian Dollar",
        code: "CAD",
        symbol: "CA$",
        native: "$",
        plural: "Canadian dollars"
    },
    time_zone: {
        name: "America/Moncton",
        abbr: "AST",
        offset: "-0400",
        is_dst: false,
        current_time: "2023-11-30T18:46:57-04:00"
    },
    threat: {
        is_tor: false,
        is_vpn: false,
        is_icloud_relay: false,
        is_proxy: false,
        is_datacenter: false,
        is_anonymous: false,
        is_known_attacker: false,
        is_known_abuser: false,
        is_threat: false,
        is_bogon: false,
        blocklists: [],
        scores: {
            vpn_score: 0,
            proxy_score: 0,
            threat_score: 67,
            trust_score: 78
        }
    }
}
num = 15
flag = 0
for i in range(2,num):
  if num%i==0:
    flag = 1
    break
if flag == 1:
  print('Not Prime')
else:
  print("Prime")
int main()
{
    int year;

    year=2000;

    if(year % 400 == 0)
        cout << year << " is a Leap Year";
        
    else if(year % 4 == 0  && year % 100 != 0)
        cout << year << " is a Leap Year";
        
    else
        cout << year << " is not a Leap Year";
    
    return 0;
}
una imagen es el empaquetador que contiene las dependencias el codigo y es lo que se comparte

un container son capas tras capas de imagenes

existen tres tipos de virtualizaciones en las VM virtualmachine
1.- para virtualizacion
en la paravirtualizacion intenta entregar la mayor cantidad de acceso del sistema anfitrion de su hardware a los cientes en el contenedor

2.- virtualizacion parcial
donde algunos componentes del hardware se virtualizan para en sistema operativo cliente

3.- virtualizacion completa:
donde absolutamente todos los componentes o hardware que esta utilizando el sistema operativo cliente son virtualizados de esta manera los sistemas operativos cliente no acceden en los absoluto al hardware

para todos los casos anteriores docker va a ser absolutamente superior y va a utilizar el kernel del sistema opetativo anfitrion y esto se traduce en rendimiento, los contenedores de docker parten casi que instantaneamente, obteniendo un rendimiento muy superior a todas las alternativas mencionadas anteriormente fin de la teoria


docker desktop es una maquina virtual se encuentra optimizada
corre linux
ejecuta containers
permite acceder al sistema de archivos y tambien a la red(interna y externa)

docker desktop no es una unica herramienta viene con otras herramientas que nos sirven para trabajar con nuestras imagenes y tambien con nuestros containers dentro de estas herramientes tenemos 

docker compose, docker cli ademas de otras herramientas

puede correr de manera nativa en windows con la herramienta WSL2(windows subsystem for linux)


existe una alternativa de instalacion para windows,linux y mac

para windows una sola opcion solamente es descargarlo y presionar siguiente siguiente siguente y listo

para mac existen dos alternatinas pulsar la de la derecha en la pagina web de docker

para linux docker ya tiene paquetes de instalacion pre compilados dependiendo de la version de linux que estes utilizando utiliza la alternativa que mas te funcione

que es dockerHUB: es un repositorio de imagenes o contenedores disponibles para comenzar a trabajar oficiales para utilizar

proceso para instalarlo
* docker images : devuelve un listado completo de todas las imagenes que hallamos descargado en nuestra maquina
donde repositorio te muestra el nombre de la imagen que se halla descargado, cada repositorio puede tener una o mas etiquetas con la version de la imagen

para descargar una imagen tenemos dos alternativas con el siguiente comando
1.-descargar la version que nosotros queremos
2.- no especificar nada esto va a descargar la ultima version de la imagen que queramos descargar
ejemplo:
* docker pull node

este comando te descargara cada una de las capas que componen la imagen de manera que si tenemos que descargar otra imagen y sus capas ya han sido descargadas por otro imagen las capas ya descargadas anteriormente ya no se volveran a descargar de esta manera de aprovecha espacio y tambien las distintas imagenes para optimizar un poco mas el espacio que estas van a utilizar en el disco duro

para descargar una version especifica de una imagen
* docker pull node:18

la imagen id es la misma que las otras versiones relativamente similares lo que cambia es la etiqueta de la version

para descargar la imagende mysql 
en mac se debe colocar 
* docker pull --platform linux/x86_64 mysql

normal es 

* docker pull mysql

tambien podemos indicar una version

* docker pull mysql:numeroversion

para eliminar una imagen en ejecucion el comando es

* docker image rm nombredelaimagen

la imagen de docker pull no necesita tantas configuraciones

Despues de descargar una imagen se procede a crear un contenedor

* docker create mongo (forma corta)

* docker container create mongo (forma larga) 

nos devuelve un id del contenedor (este id nos sirve para crear un contenedor)
el comando para ejecutar un contenedor es:

* docker start idContenedor (donde idcontenedor es el codigo id largo del contenedor) esto nos devuelve el id del contenedor nuevamente

* docker ps : este comando es como docker iamges pero se usa para ver los contenedores creados, cuando se crea un contenedor se le agrega un nombre de manera arbitraria al contenedor y ese nombre se puede usar en lugar del idcortocontenedor para eliminar el contenedor

* docker ps -a para ver todos los contenedores incluso los que no se estan ejecutando

para detener el contenedor se debe usar el comando

* docker stop idcortocontenedor

para asignar un nombre a un contenedor:

* docker create --name nombreContenedor esto nos devuelve el idlargo del contenedor indicando que ya se ha creado el contenedor

y como ya le hemos asignado un nombre al contenedor podemos iniciarlo con:

* Docker start nombreContenedorAsignado

para poder guardar datos dentro de un contenedor se debe mapear el puerto local al puerto del contenedor:

* docker create -p27017:27017 --name nombreContenedor nombreImagenBase donde lo que esta antes del : es el puerto de la maquina nuestra la maquina local y lo que esta despues del : es el puerto interno del contenedor, siempre asignale un puerto a cada contenedor creado por que si dejas que docker asigne un puerto los va a asignar por encima del puerto 50mil

con el comando 
docker logs nombreContenedor  puedes ver todos los logs que este nos muestra y tambien puedes verlo con

* docker logs --follow nombreContenedor la diferencia es que este se queda escuchando y mostrando los logs en tiempo real

el comando docker run hace tres cosas 
1.-descarga la imagen
2.-crea el contenedor
3.-inicia el contenedor

* ejemplo docker run mongo
docker run mongo

los siguientes dos comandos devulven el id del contenedor creado
docker run -d mongo este nos asigna un nombre arbitrariamente por docker
docker run --name nombreContenedor -p27017:27017 -d imagenbase este comando nos permite crear un contenedor mas personalizado

luego para ver el contenedor usa el comando 
* docker ps

configuracion del archivo dockerfile
tomar una aplicacion de docker un meterla dentro de un container
el archivo dockerfile no puede tener otro nombre se tiene que llamar dockerfile, este archivo se utiliza para que nosotros podamos construir nuestros containers, aqui nosotros vamos a escribir las instrucciones que necesita nuestro contenedor para poder crearse,m todas las imagenes que nosotros creemos siempre se tienen que basar en alguna otra imagen

ejemplo
* FROM node:etiquetaversion

RUN mkdir -p /home/app --esto es donde vamos a meter el codigo fuente de nuestra aplicacion, esta ruta no es una ruta fisita en nuestra maquina sino que es una ruta en el contenedor 

COPY . /home/app

EXPOSE 3000 ruta donde se va a ejecutar la aplicacion

CMD ["node","/home/app/index.js"]

ahora vamos a aprender a crear redes en docker

* docker ls : lista todas las redes existentes

* docker network create mired : este comando creara una nueva red dentro de docker este nos devolvera el id de la red creada

* docker network rm mired este comando elimina la red creada anteriormente

el siguiente comando recibe dos argumentos (nombreDadoPorMI,rutanodenosencontramos ) y se utiliza para construir contenedores en base a un archivo dockerfile

* docker build -t miapp:etiquetaversiondadapormi .

*docker create -P27017:27017 --name monguito --network mired -e MONGO_INITDB_ROOT_USERNAME=nico -e MONGO_INIT_DB_ROOT_PASSWORD=password mongo

ahora para colocar el contenedor de la aplicacion que nosotros acabamos de colocar dentro de una imagen

*docker create -p3000 --name chanchito --network mired miapp:1

*luego escribir docker ps -a

luego de hacer esto debemos arrancar los dos contenedores que creamos y que estan dentro de una misma red
sudo docker start monguito
sudo docker start chanchito

resumen de pasos para poder crear contenedores y tambien conectarlos
descargar la imagen
crear una red
crear el contenedor
	asignar puertos 
    asignar un nombre
    variables de entorno
    especificar la red
    indicar la imagen:consuetiqueta
todo esto por cada contenedor

para automatizar todo los pasos anteriores existe la herramienta docker compose
para esto debemos crear y editar un archivo con extension.yml

la estructura de este archivo es la siguiente
version:"3.9"
services:
	chanchito:
		build: .
        ports:
			-"3000:3000"
		links:
			-monguito
	monguito:
		imagen:mongo
        	ports:"27017:27017"
		environment:
			- MONGO_INITDB_ROOT_USERNAME=nico
			- MONGO_INITDB_ROOT_PASSWORD=password

ahora para ejecutar un archivo docker yml o docker compose se utiliza el siguiente comando:
docker compose up

luego verificas las imagenes creadadas con 

*docker images

con el comando 
docker compose down que es lo contrario de docker compose up, para eliminartodo lo que se creo anteriormente con docker compose up

para trabajar con volumenes vamos al final del archivo compose 
version:"3.9"
services:
	chanchito:
		build: .
        ports:
			-"3000:3000"
		links:
			-monguito
	monguito:
		imagen:mongo
        	ports:"27017:27017"
		environment:
			- MONGO_INITDB_ROOT_USERNAME=nico
			- MONGO_INITDB_ROOT_PASSWORD=password
		volumes:
			-mongo-data:/data/db
            # mysql -> var/lib/mysql
            # postgres -> var/lib/postgresql/data
volumes:
	mongo_data:

para crear multiples ambientes de desarrollo mientras estamos trabajando con docker
primero debemos crear un archivo con extension.dev ejemplo dockerfile.yml ya que el archivo que teniamos anterior mente quizas queramos usarlo para produccion ejemplo dockerfile.dev la estructura este este archivo es parecida al archivo dockerfile anterior con algunas diferencias

FROM node:18

RUN npm i -g nodemon
RUN mkdir -p /home/app

WORKDIR /home/app

EXPOSE 3000

CMD ["nodemon","index.js"]

ademas de este archivo demos crear un archivo compose para desarrollo tambien al cual llamaremos docker-compose-dev.yml con la siguiente estructura
version:"3.9"
services:
	chanchito:
		build: 
        context: .
        dockerfile:dockerfile.dev
        ports:
			-"3000:3000"
		links:
			-monguito
		volumes: 
			- .:/home/app
	monguito:
		imagen:mongo
        	ports:"27017:27017"
		environment:
			- MONGO_INITDB_ROOT_USERNAME=nico
			- MONGO_INITDB_ROOT_PASSWORD=password
		volumes:
			-mongo-data:/data/db
            # mysql -> var/lib/mysql
            # postgres -> var/lib/postgresql/data
volumes:
	mongo_data:

para provar el archivo que acabamos de construir utilizamos el siguiente comando, un archivo docker compose completamente customisado que no sea docker-compose.yml

docker compose -f docker-compose-dev.yml up
d = []             

for i in range(19): 
    d.append([]) 
    for j in range(19): 
        d[i].append(0)

n = int(input("돌 숫자: "))
for i in range(n):
    x, y = map(int,input().split())
    d[x][y] = 1 


for i in range (0,19): 
    for j in range (0,19): 
        print(d[i][j], end =' ') 
    print()
$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
"range": {
    "creationDate": {
      "gte": "2022-09-01",
      "lte": "2023-12-01"
    },
    "lastModificationDate": {
      "gte": "2022-09-01",
      "lte": "2023-12-01"
    },
    "fileSize": {
      "gte": 0,
      "lte": 8
    }
  }
<a href="https://takemyclasshelp.com/">Pay Someone to Take My Online Class</a> – they make it seamless. Need help with accounting and math exams? Flawless execution – "<a href="https://takemyclasshelp.com/take-my-online-exam-for-me/take-my-online-accounting-exam-for-me/">Take My Accounting Exam For Me</a>" and "<a href="https://takemyclasshelp.com/take-my-online-math-class-for-me/">Take My Maths Exam For Me</a>." Highly recommend stress-free online learning support.
background-image: linear-gradient(90deg, #020024 0%, #090979 35%, #00d4ff 100%);
{
    ip: "174.116.192.7",
    is_eu: false,
    city: "Moncton",
    region: "New Brunswick",
    region_code: "NB",
    region_type: "province",
    country_name: "Canada",
    country_code: "CA",
    continent_name: "North America",
    continent_code: "NA",
    latitude: 46.096500396728516,
    longitude: -64.80069732666016,
    postal: "E1C",
    calling_code: "1",
    flag: "https://ipdata.co/flags/ca.png",
    emoji_flag: "🇨🇦",
    emoji_unicode: "U+1F1E8 U+1F1E6",
    asn: {
        asn: "AS812",
        name: "Rogers Communications Canada Inc",
        domain: "rogers.com",
        route: "174.116.128.0/17",
        type: "business"
    },
    company: {
        name: "Rogers Communications Canada Inc",
        domain: "rogers.com",
        network: "174.116.128.0/17",
        type: "business"
    },
    languages: [
        {
            name: "English",
            native: "English",
            code: "en"
        },
        {
            name: "French",
            native: "Français",
            code: "fr"
        }
    ],
    currency: {
        name: "Canadian Dollar",
        code: "CAD",
        symbol: "CA$",
        native: "$",
        plural: "Canadian dollars"
    },
    time_zone: {
        name: "America/Moncton",
        abbr: "AST",
        offset: "-0400",
        is_dst: false,
        current_time: "2023-11-30T11:33:07-04:00"
    },
    threat: {
        is_tor: false,
        is_vpn: false,
        is_icloud_relay: false,
        is_proxy: false,
        is_datacenter: false,
        is_anonymous: false,
        is_known_attacker: false,
        is_known_abuser: false,
        is_threat: false,
        is_bogon: false,
        blocklists: [],
        scores: {
            vpn_score: 0,
            proxy_score: 0,
            threat_score: 67,
            trust_score: 78
        }
    }
}
star

Fri Dec 01 2023 21:01:53 GMT+0000 (Coordinated Universal Time) https://learn.microsoft.com/en-us/azure/databricks/optimizations/disk-cache

@knguyencookie

star

Fri Dec 01 2023 20:56:51 GMT+0000 (Coordinated Universal Time) www.like.com/hacking.is.fun

@hack10155

star

Fri Dec 01 2023 17:09:59 GMT+0000 (Coordinated Universal Time)

@Sknow

star

Fri Dec 01 2023 16:32:43 GMT+0000 (Coordinated Universal Time)

@Mohamedshariif #java

star

Fri Dec 01 2023 15:51:05 GMT+0000 (Coordinated Universal Time)

@yolobotoffender

star

Fri Dec 01 2023 14:30:07 GMT+0000 (Coordinated Universal Time)

@yolobotoffender

star

Fri Dec 01 2023 13:27:17 GMT+0000 (Coordinated Universal Time)

@yolobotoffender

star

Fri Dec 01 2023 13:22:32 GMT+0000 (Coordinated Universal Time)

@AlexP #js #alpinejs

star

Fri Dec 01 2023 13:21:47 GMT+0000 (Coordinated Universal Time) https://www.cityofbowie.org/DesignCenter/Themes/Index

@Cody_Gant

star

Fri Dec 01 2023 12:56:30 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/dapp-development-company

@jonathandaveiam #dappdevelopment #dapps

star

Fri Dec 01 2023 12:43:16 GMT+0000 (Coordinated Universal Time) https://github.com/nvm-sh/nvm

@Vexel_CM

star

Fri Dec 01 2023 12:42:51 GMT+0000 (Coordinated Universal Time) https://github.com/nvm-sh/nvm

@Vexel_CM

star

Fri Dec 01 2023 12:17:31 GMT+0000 (Coordinated Universal Time) https://www.geeksforgeeks.org/problems/k-distance-from-root/1?page=3&company=Samsung&difficulty=School,Basic,Easy&sortBy=latest

@nistha_jnn #c++

star

Fri Dec 01 2023 11:55:43 GMT+0000 (Coordinated Universal Time) https://www.geeksforgeeks.org/problems/check-for-bst/1?page=3&company=Samsung&difficulty=School,Basic,Easy&sortBy=latest

@nistha_jnn #c++

star

Fri Dec 01 2023 11:19:53 GMT+0000 (Coordinated Universal Time)

@arshadalam007 #undefined

star

Fri Dec 01 2023 10:28:42 GMT+0000 (Coordinated Universal Time)

@arshadalam007 #undefined

star

Fri Dec 01 2023 08:51:49 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/77583862/extract-ckeditor-text-to-a-new-div-javascript

@hurlee

star

Fri Dec 01 2023 08:30:33 GMT+0000 (Coordinated Universal Time)

@sagarmaurya19

star

Fri Dec 01 2023 06:11:41 GMT+0000 (Coordinated Universal Time) https://www.geeksforgeeks.org/problems/change-all-even-bits-in-a-number-to-03253/1?page=1&company=Samsung&sortBy=difficulty

@nistha_jnn #c++

star

Fri Dec 01 2023 05:54:49 GMT+0000 (Coordinated Universal Time) https://www.geeksforgeeks.org/problems/string-reversalunpublished-for-now5324/1?page=1&company=Samsung&sortBy=difficulty

@nistha_jnn #c++

star

Fri Dec 01 2023 05:27:45 GMT+0000 (Coordinated Universal Time) https://www.geeksforgeeks.org/problems/swap-two-numbers3844/1?page=1&company=Samsung&sortBy=difficulty

@nistha_jnn #c++

star

Fri Dec 01 2023 04:05:06 GMT+0000 (Coordinated Universal Time) https://secure.helpscout.net/conversation/2321596270/22706/

@Pulak

star

Fri Dec 01 2023 03:42:21 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/34794067/how-to-set-a-cell-to-nan-in-a-pandas-dataframe

@ktyle #python #pandas

star

Fri Dec 01 2023 01:56:06 GMT+0000 (Coordinated Universal Time)

@pastor

star

Fri Dec 01 2023 00:50:56 GMT+0000 (Coordinated Universal Time) https://7942yongdae.tistory.com/150

@wheedo

star

Thu Nov 30 2023 23:37:24 GMT+0000 (Coordinated Universal Time)

@Muhammad_Waqar

star

Thu Nov 30 2023 20:53:02 GMT+0000 (Coordinated Universal Time) https://www.baeldung.com/spring-data-jpa-row-count#using-the-jpa-repository

@faresmh

star

Thu Nov 30 2023 19:50:30 GMT+0000 (Coordinated Universal Time)

@nistha_jnn #react.js

star

Thu Nov 30 2023 19:45:38 GMT+0000 (Coordinated Universal Time) https://www.thesecuritybuddy.com/cryptography-and-python/how-to-encrypt-and-decrypt-an-image-using-python/

@hagarmaher

star

Thu Nov 30 2023 19:26:58 GMT+0000 (Coordinated Universal Time)

@Mohamedshariif #java

star

Thu Nov 30 2023 18:48:41 GMT+0000 (Coordinated Universal Time) https://ipdata.co/?ref

@etg1

star

Thu Nov 30 2023 18:32:04 GMT+0000 (Coordinated Universal Time) https://www.chegg.com/homework-help/questions-and-answers/personal-librarv-management-svstem-60-marks-avid-readers-keeping-track-personal-library-ch-q120557643

@alryashi3

star

Thu Nov 30 2023 18:01:32 GMT+0000 (Coordinated Universal Time) https://prepinsta.com/python-program/program-to-check-if-the-given-number-is-prime-or-not/

@nistha_jnn

star

Thu Nov 30 2023 17:55:01 GMT+0000 (Coordinated Universal Time) https://prepinsta.com/cpp-program/cpp-program-to-check-whether-a-year-is-a-leap-year-or-not/

@nistha_jnn #c++

star

Thu Nov 30 2023 14:49:15 GMT+0000 (Coordinated Universal Time) https://www.youtube.com/watch?v=4Dko5W96WHg

@jrg_300i #php #poo #mvc #jquery #postgresql

star

Thu Nov 30 2023 14:23:59 GMT+0000 (Coordinated Universal Time) https://s1mcoding.tistory.com/16

@sykbs70

star

Thu Nov 30 2023 13:54:18 GMT+0000 (Coordinated Universal Time)

@jrg_300i #php #poo #mvc #jquery #postgresql

star

Thu Nov 30 2023 13:45:44 GMT+0000 (Coordinated Universal Time)

@diegoj

star

Thu Nov 30 2023 13:30:44 GMT+0000 (Coordinated Universal Time) https://homeworkprovider.com/accounting-homework-doer/

@Homework #accountinghomework doer #accountinghomework help

star

Thu Nov 30 2023 13:28:37 GMT+0000 (Coordinated Universal Time) https://takemyclasshelp.com/take-my-online-exam-for-me/take-my-online-accounting-exam-for-me/

@johniyer

star

Thu Nov 30 2023 13:27:17 GMT+0000 (Coordinated Universal Time) https://takemyclasshelp.com/take-my-online-exam-for-me/take-my-online-math-exam-for-me/

@johniyer

star

Thu Nov 30 2023 13:23:59 GMT+0000 (Coordinated Universal Time) https://takemyclasshelp.com/

@johniyer

star

Thu Nov 30 2023 13:23:09 GMT+0000 (Coordinated Universal Time)

@johniyer

star

Thu Nov 30 2023 13:18:14 GMT+0000 (Coordinated Universal Time) https://homeworkprovider.com/

@Homework #homeworkdoers #homeworkhelp

star

Thu Nov 30 2023 12:55:56 GMT+0000 (Coordinated Universal Time) https://cssgradient.io/

@zaryabmalik

star

Thu Nov 30 2023 11:48:15 GMT+0000 (Coordinated Universal Time) https://boostmyclass.com/take-my-online-class/

@BoostMyClass ##onlineclasstaker ##onlineexamtaker

star

Thu Nov 30 2023 11:46:13 GMT+0000 (Coordinated Universal Time) https://boostmyclass.com/take-my-online-exam/

@BoostMyClass ##onlineclasstaker ##onlineexamtaker

star

Thu Nov 30 2023 11:45:00 GMT+0000 (Coordinated Universal Time) https://ipdata.co/?ref

@etg1

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension