Example #1
0
void		Core::moveDirection(void)
{
  if (_direction == DIRECTION_LEFT)
    _pos.insert(_pos.begin(), Snake(_pos[0].getPosX() - 1, _pos[0].getPosY()));
  if (_direction == DIRECTION_RIGHT)
    _pos.insert(_pos.begin(), Snake(_pos[0].getPosX() + 1, _pos[0].getPosY()));
  if (_direction == DIRECTION_UP)
    _pos.insert(_pos.begin(), Snake(_pos[0].getPosX(), _pos[0].getPosY() - 1));
  if (_direction == DIRECTION_DOWN)
    _pos.insert(_pos.begin(), Snake(_pos[0].getPosX(), _pos[0].getPosY() + 1));
}
Example #2
0
  void SnakeGame::Tick()
  {
    if (!m_Snake.Tick(m_Field))
      {
	m_Snake = Snake();
	m_Field = Field();
      }
  }
Example #3
0
void CPMotion::OnSnake()
{
    short V1 = 150;
    short V2 = 30;
    double Angle1 = pi / 8;
    double Angle2 = pi / 4;
    short Iterations = 3;
    Snake(V1, V2, Angle1, Angle2, Iterations);
}
void GameBoard::createSnakes()
{
	snakes.reserve( 8 );
	snakes[ 0 ] = Snake( 99, 76 );
	snakes[ 1 ] = Snake( 96, 55 );
	snakes[ 2 ] = Snake( 93, 74 );
	snakes[ 3 ] = Snake( 67, 53 );
	snakes[ 4 ] = Snake( 62, 43 );
	snakes[ 5 ] = Snake( 57, 15 );
	snakes[ 6 ] = Snake( 38, 6 );
	snakes[ 7 ] = Snake( 35, 13 );
}
Example #5
0
void Select( unsigned char ch )
{
			switch (ch ) {
				case 'a':
					Icicle(6,9 , 6);
					break;
				case 'b':
					Sparkler( 100,1,8 ,0);
					break;
				
				case 'c':
					Sparkler(100,1,8 ,1);
					break;
				
				case 'd':
					StripLights_DisplayClear( StripLights_LTGREEN );
					break;
				case 'e':
					StripLights_DisplayClear( StripLights_WHITE );
					break;
				case 'f':
					StripLights_DisplayClear( StripLights_BLUE );
					break;
				case 'g':
					SingleLEDPingPong(1 ,6, getColor(rand()%StripLights_COLOR_WHEEL_SIZE));
					break;
				case 'h':
					Tween1();
					break;
				case 'i':
					ColorFader(1, getColor(rand()%StripLights_COLOR_WHEEL_SIZE));
					break;
				case 'j':
					CandyCane(5, StripLights_RED, StripLights_WHITE );
					break;
				case 'k':
					Snake(5);
					break;
				case 'l':
					ColorWheel(10);
					break;
				case 'm':
					CandyCane(5, getColor(rand()%StripLights_COLOR_WHEEL_SIZE), StripLights_WHITE );
					break;
					
				case 'n':
					CandyCaneSmooth(5, (led_color)getColor(rand()%StripLights_COLOR_WHEEL_SIZE), 
									(led_color)getColor(rand()%StripLights_COLOR_WHEEL_SIZE) );
					break;

				case '0':
					CySoftwareReset();
					break;
			}
}
Example #6
0
void		Core::initSnake(const int &width, const int &height)
{
  int		i;

  i = 0;
  while (i <= SIZE_SNAKE)
    {
      _pos.push_back(Snake(width / 2, height / 2 + i));
      i++;
    }
}
Example #7
0
	Gamesession(Board & terminal, int gamespeedi) : gamespeed(gamespeedi), gameover(false), command(0)
	{
		timeout(gamespeed);

		xstart = terminal.xmax/2;
		ystart = terminal.ymax/2;

		Ekans  = Snake(ystart,xstart,RIGHT);
		pidgey = Food(terminal);


	}
Example #8
0
void Game::initSnakes(std::string mapPath)
{
    snakes.push_back(Snake(this));
    snakes.push_back(Snake(this, true));

    std::ifstream input(mapPath.c_str());
    int lineCount = 0;
    int x = 0;
    int y = 0;
    // Get the heads
    for(std::string line ; getline(input, line) ; lineCount++)
    {
        switch (lineCount) {
        case 0:
        case 1:
            break;
        default:
            y = lineCount - 2;
            for(int x = 0 ; x < line.size() ; x++)
            {
                switch (line[x]) {
                case 'h':
                    snakes[0].addBodyPart(x, y);
                    break;
                case 'a':
                    snakes[1].addBodyPart(x, y);
                    break;
                default:
                    break;
                }
            }
            break;
        }
    }
    // Get the bodies
    std::ifstream input2(mapPath.c_str());
    for(std::string line ; getline(input2, line) ; lineCount++)
    {
        switch (lineCount) {
        case 0:
        case 1:
            break;
        default:
            y = lineCount - 2;
            for(int x = 0 ; x < line.size() ; x++)
            {
                switch (line[x]) {
                case 'b':
                    snakes[0].addBodyPart(x, y);
                    break;
                case 'i':
                    snakes[1].addBodyPart(x, y);
                    break;
                default:
                    break;
                }
            }
            break;
        }
    }
}
int main(int argc, char** argv)
{
	
	
	Settings settings=Settings();	
	std::vector<Snake> players;
	sf::Text scores;
	
	Flag flags[2]={Flag(sf::Color::Blue,sf::Vector2f(XRES-50,YRES/2)),Flag(sf::Color::Red,sf::Vector2f(50,YRES/2))};
	
	flags[0].setFillColor(sf::Color::Blue);
	flags[1].setFillColor(sf::Color::Red);
	
	
	scores.setPosition(0,0);
	scores.setColor(sf::Color::White);
	players.push_back(Snake(5,0,sf::Vector2f(15,15),new Turner(settings.controlls[0])));
	players.push_back(Snake(5,-3.1428,sf::Vector2f(XRES-15,YRES-45),new Turner(settings.controlls[1])));

	
	std::srand(time(NULL));
	
	sf::RectangleShape food(sf::Vector2f(20,20));
	food.setPosition(sf::Vector2f(15*(std::rand()%(XRES/15)),15*(std::rand()%(YRES/15))));
	food.setFillColor(sf::Color::Green);
	
	int difficulty=40;
	
	
	
	sf::RenderWindow win(sf::VideoMode(XRES,YRES,32),"Snake");
	win.setFramerateLimit(difficulty);
	sf::Event mainloop;
	
	while (win.isOpen()) {
		win.clear();
		
		
		for (int i=0;i<players.size();i++)
		{
			bool eaten=false;
			players[i].turn();
			eaten= eaten || players[i].try_eat(food);
		
			if (eaten) {
				food.setPosition(sf::Vector2f(15*(std::rand()%(XRES/15))+5,15*(std::rand()%(YRES/15))+5));
			};
		}
		win.draw(food);
		std::string scorestr="";
		
		
		for (int i=0;i<players.size();i++) {
			win.draw(players[i]);
			for (int y=0;y<2;y++) {
				if (players[i].collide(flags[y])) {
					if (i!=y) {
						if (players[i].isCarrying()) {
							  flags[y].reset();
							  players[i].drop();
							  players[i].score++;
							  
						};
					
				}
				else players[i].carry(flags[y]);
				};
				win.draw(flags[y]);
			};
			
			
			//scorestr+="P"+std::to_string(players[i].id+1)+": "+std::to_string(players[i].score)+"\n";
		};
		scores.setString(scorestr);
		win.draw(scores);
		
		
		while (win.pollEvent(mainloop)) {
			
			if (mainloop.type==sf::Event::Closed) win.close();
			
			if (mainloop.type==sf::Event::KeyPressed) {
				
				
				switch (mainloop.key.code) {
					case sf::Keyboard::Key::Add  : {TURN_SPEED+=0.05;break;}
					case sf::Keyboard::Key::Subtract   : {TURN_SPEED-=0.05;break;}
					default: break;
				};
				
				
			};
		};
		
		win.display();
		for (int i=0;i<players.size();i++) players[i].move(players);
		
	};
		
	return 0;
}
Example #10
0
void					SFML::init(size_t width, size_t height)
{
	width *= 10;
	height *= 10;
	x = width;
	y = height;
	sf::RenderWindow	window(sf::VideoMode(width, height), "Nibbler!");
	sf::RectangleShape	shape(sf::Vector2f((width - 100), (height - 100)));
	sf::Text			text;
	sf::Text			atext;
	sf::Text			food;
	sf::Text			snake;
	sf::Font			font;
	sf::SoundBuffer		soundBuffer;
	sf::Sound			sound;
	sf::Event			Event;

	std::ostringstream ss;


	std::list<Snake> snakes;
	std::list<Snake>::iterator it;
	snakes.push_front(Snake((x / 2) + 1, (y / 2)));
	int xSnake = 2;
	int ySnake = 2;
	// if(key == 1)
	// 	ySnake--;
	// else if(key == 2)
	// 	xSnake++;
	// else if(key == 3)
	// 	ySnake++;
	// else if(key == 4)
	// 	xSnake--;
	snakes.push_front(Snake(xSnake, ySnake));


	shape.setFillColor(sf::Color(0, 0, 0));
	shape.setOutlineThickness(5);
	shape.setOutlineColor(sf::Color(250, 150, 100));
	shape.move(50, 50);

	if (!font.loadFromFile("libs/fonts/arial.ttf"))
	{
		throw std::exception();
	}
	text.setFont(font);

	text.setString("Score: ");
	text.setCharacterSize(15);
	text.setColor(sf::Color::Green);
	text.setStyle(sf::Text::Bold);
	text.move(50, (height - 30));

	if (!soundBuffer.loadFromFile("libs/sounds/sound.wav"))
	{
		throw std::exception();
	}

	sound.setBuffer(soundBuffer);
	// sound.pause();
	sound.play();
	generateFood();
	food.setFont(font);

	food.setString("X");
	food.setCharacterSize(15);
	food.setColor(sf::Color::Green);
	food.setStyle(sf::Text::Bold);
	food.move(food_x, food_y);


	snake.setFont(font);
	snake.setString("o");
	snake.setCharacterSize(15);
	snake.setColor(sf::Color::Green);
	snake.setStyle(sf::Text::Bold);
	snake.move(food_x, food_y);
	while (window.isOpen())
	{
		while (window.pollEvent(Event))
		{
			if (Event.type == sf::Event::Closed)
				window.close();

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
				window.close();


			counter++;
			ss << counter;
			atext.setFont(font);
			atext.setCharacterSize(15);
			atext.setColor(sf::Color::Green);
			atext.setStyle(sf::Text::Bold);
			atext.setString(ss.str());
			atext.move(110, (height - 30));

			window.clear();
			window.draw(shape);
			window.draw(text);
			window.draw(atext);
			window.draw(food);
			for(it = snakes.begin(); it != snakes.end(); it++)
			{
				snake.move((*it).getY(),(*it).getX());
				window.draw(snake);
			}
			window.display();
		}
	}
}