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)); }
void SnakeGame::Tick() { if (!m_Snake.Tick(m_Field)) { m_Snake = Snake(); m_Field = Field(); } }
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 ); }
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; } }
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++; } }
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); }
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; }
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(); } } }