void start_playing(int *game, t_opt *options) { int remain; remain = line_left(game, options); if (options->turn == 1) while (remain != 0) { player(game, options); remain = line_left(game, options); if (remain != 0) computer(game, options); remain = line_left(game, options); if (remain != 0) aff_game(game, options); } else while (remain != 0) { computer(game, options); remain = line_left(game, options); if (remain != 0) player(game, options); remain = line_left(game, options); if (remain != 0) aff_game(game, options); } }
Primitive::Ptr Renderer::CreatePane( const sf::Vector2f& position, const sf::Vector2f& size, float border_width, const sf::Color& color, const sf::Color& border_color, int border_color_shift ) { if( border_width <= 0.f ) { return CreateRect( position, position + size, color ); } Primitive::Ptr primitive( new Primitive ); sf::Color dark_border( border_color ); sf::Color light_border( border_color ); Context::Get().GetEngine().ShiftBorderColors( light_border, dark_border, border_color_shift ); float left = position.x; float top = position.y; float right = left + size.x; float bottom = top + size.y; Primitive::Ptr rect( CreateQuad( sf::Vector2f( left + border_width, top + border_width ), sf::Vector2f( left + border_width, bottom - border_width ), sf::Vector2f( right - border_width, bottom - border_width ), sf::Vector2f( right - border_width, top + border_width ), color ) ); Primitive::Ptr line_top( CreateLine( sf::Vector2f( left, top + border_width / 2.f ), sf::Vector2f( right - border_width, top + border_width / 2.f ), light_border, border_width ) ); Primitive::Ptr line_right( CreateLine( sf::Vector2f( right - border_width / 2.f, top ), sf::Vector2f( right - border_width / 2.f, bottom - border_width ), dark_border, border_width ) ); Primitive::Ptr line_bottom( CreateLine( sf::Vector2f( right, bottom - border_width / 2.f ), sf::Vector2f( left + border_width, bottom - border_width / 2.f ), dark_border, border_width ) ); Primitive::Ptr line_left( CreateLine( sf::Vector2f( left + border_width / 2.f, bottom ), sf::Vector2f( left + border_width / 2.f, top + border_width ), light_border, border_width ) ); primitive->Add( *rect.get() ); primitive->Add( *line_top.get() ); primitive->Add( *line_right.get() ); primitive->Add( *line_bottom.get() ); primitive->Add( *line_left.get() ); std::vector<Primitive::Ptr>::iterator iter( std::find( m_primitives.begin(), m_primitives.end(), rect ) ); assert( iter != m_primitives.end() ); iter = m_primitives.erase( iter ); // rect iter = m_primitives.erase( iter ); // line_top iter = m_primitives.erase( iter ); // line_right iter = m_primitives.erase( iter ); // line_bottom m_primitives.erase( iter ); // line_left AddPrimitive( primitive ); return primitive; }