int main(int argc, char * argv[]) { srand((unsigned)time(NULL)); for (int i = 0; i < PIECES_SIZE; i++) { Piece piece = { .pieceID = i, .x_Location = rand()%SCREEN_WIDTH, .y_Location = rand()%SCREEN_HEIGHT, .size = PIECE_LENGTH}; pieces[i] = piece; } MakeConnections(); glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(SCREEN_WIDTH, SCREEN_HEIGHT); glutInitWindowPosition((1920-SCREEN_WIDTH)/2, 0); glutCreateWindow("Jigsaw"); glutDisplayFunc(Render); glutMouseFunc(MouseListener); glutPassiveMotionFunc(MousePosition); glutKeyboardFunc(KeyboardListener); glutReshapeFunc(WindowResize); glClearColor(1.0, 1.0, 1.0, 0.0); glColor3f(0.0f, 0.0f, 0.0f); glPointSize(1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); gluOrtho2D(0, SCREEN_WIDTH, 0, SCREEN_HEIGHT); glutMainLoop(); return 0; }
//Осторожно -- Ростыль // (__)_(__) // | | // | | // | | // | | // \I/ QLoozer::QLoozer(QWidget *parent) : QMainWindow(parent), ui(new Ui::QLoozer) { ui->setupUi(this); ui->studentsTableWidget->setShowGrid(true); ui->studentsTableWidget->setColumnCount(4); ui->studentsTableWidget->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch); ui->studentsTableWidget->setColumnWidth(0,14); ui->studentsTableWidget->setColumnWidth(2,42); ui->studentsTableWidget->setColumnWidth(3,32); headerList << tr("n") << tr("Names") << tr("Bonus") << tr("Stat"); ui->studentsTableWidget->setHorizontalHeaderLabels(headerList); MakeConnections(); QLoozerLuaAPI lAPI; // QObject::connect(QLoozerLuaAPI::getInstance(),SIGNAL(SendLooserInfo(QString,int,int)),this,SLOT(AddStudentRow(QString,int,int))); }
void MakeConnections( lua_State* L, CUtlVector<Border*> &borders, Node *node ) { if( !node ) return; static const unsigned char f_no = 0x01; static const unsigned char f_ne = 0x02; static const unsigned char f_ea = 0x04; static const unsigned char f_se = 0x08; static const unsigned char f_so = 0x10; static const unsigned char f_sw = 0x20; static const unsigned char f_we = 0x40; static const unsigned char f_nw = 0x80; unsigned char borderflags = 0; int empire = (int)(node->GetScoreF()); if( empire <= 0 ) return; if( IsTerritory(node, NORTH , empire) ) borderflags |= f_no; if( IsTerritory(node, NORTHEAST , empire) ) borderflags |= f_ne; if( IsTerritory(node, EAST , empire) ) borderflags |= f_ea; if( IsTerritory(node, SOUTHEAST , empire) ) borderflags |= f_se; if( IsTerritory(node, SOUTH , empire) ) borderflags |= f_so; if( IsTerritory(node, SOUTHWEST , empire) ) borderflags |= f_sw; if( IsTerritory(node, WEST , empire) ) borderflags |= f_we; if( IsTerritory(node, NORTHWEST , empire) ) borderflags |= f_nw; //flip the bits borderflags = ~borderflags; //NOTE: all connections must be clockwise around the territory ///////////////// 90 deg corners if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we | f_nw)) == (f_se | f_so | f_we | f_nw) ) { CONNECT( EAST, NORTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we | f_nw)) == (f_ne | f_ea | f_so | f_sw) ) { CONNECT( NORTH, WEST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we | f_nw)) == (f_no | f_ea | f_se | f_nw) ) { CONNECT( WEST, SOUTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_sw | f_we)) == (f_no | f_ne | f_sw | f_we) ) { CONNECT( SOUTH, EAST ); } /////////////////// bend - bend (STRAIGHT) else if( (borderflags & (f_no | f_ea | f_se | f_so | f_we | f_nw)) == (f_no | f_ea) ) { CONNECT( NORTHWEST, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_no | f_we) ) { CONNECT( SOUTHWEST, NORTHEAST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_we | f_nw)) == (f_so | f_we) ) { CONNECT( SOUTHEAST, NORTHWEST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_ea | f_so) ) { CONNECT( NORTHEAST, SOUTHWEST ); } /////////////////// bend - bend (CONCAVE) else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_no | f_ea | f_we) ) { CONNECT( SOUTHWEST, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_no | f_so | f_we) ) { CONNECT( SOUTHEAST, NORTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_ea | f_so | f_we) ) { CONNECT( NORTHEAST, NORTHWEST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_no | f_ea | f_so) ) { CONNECT( NORTHWEST, SOUTHWEST ); } /////////////////// straight - straight (STRAIGHT) else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_ne | f_ea | f_se) ) { CONNECT( NORTH, SOUTH ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_se | f_so | f_sw) ) { CONNECT( EAST, WEST ); } else if( (borderflags & (f_no | f_we | f_so | f_sw | f_we | f_nw)) == (f_sw | f_we | f_nw) ) { CONNECT( SOUTH, NORTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_no | f_ne | f_nw) ) { CONNECT( WEST, EAST ); } ////////////////// else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_no | f_ne) ) { CONNECT( NORTHWEST, EAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_ne | f_ea) ) { CONNECT( NORTH, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_ea | f_se) ) { CONNECT( NORTHEAST, SOUTH ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_se | f_so) ) { CONNECT( EAST, SOUTHWEST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_so | f_sw) ) { CONNECT( SOUTHEAST, WEST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_sw | f_we) ) { CONNECT( SOUTH, NORTHWEST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_we | f_nw) ) { CONNECT( SOUTHWEST, NORTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_no | f_nw) ) { CONNECT( WEST, NORTHEAST ); } ////////////////////////// straight - bend (CONCAVE) else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_ne | f_ea | f_so) ) { CONNECT( NORTH, SOUTHWEST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_no | f_ea | f_nw) ) { CONNECT( WEST, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_no | f_sw | f_we) ) { CONNECT( SOUTH, NORTHEAST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_we | f_nw)) == (f_se | f_so | f_we) ) { CONNECT( EAST, NORTHWEST ); } ////////////////////////// bend - straight (CONCAVE) else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_no | f_ne | f_we) ) { CONNECT( SOUTHWEST, EAST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_we | f_nw)) == (f_so | f_we | f_nw) ) { CONNECT( SOUTHEAST, NORTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_sw | f_we)) == (f_ea | f_so | f_sw) ) { CONNECT( NORTHEAST, WEST ); } else if( (borderflags & (f_no | f_ea | f_se | f_so | f_we | f_nw)) == (f_no | f_ea | f_se) ) { CONNECT( NORTHWEST, SOUTH ); } /////////////////// bend - bend (CONVEX) else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_so) ) { CONNECT( SOUTHEAST, SOUTHWEST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_ea) ) { CONNECT( NORTHEAST, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_no) ) { CONNECT( NORTHWEST, NORTHEAST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_we) ) { CONNECT( SOUTHWEST, NORTHWEST ); } /////////////////// bend - straight (TRIANGLE) else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_no | f_ea | f_se | f_we) ) { CONNECT( SOUTHWEST, SOUTH ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_no | f_ne | f_so | f_we) ) { CONNECT( SOUTHEAST, EAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_ea | f_so | f_we | f_nw) ) { CONNECT( NORTHEAST, NORTH ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_no | f_ea | f_so | f_sw) ) { CONNECT( NORTHWEST, WEST ); } /////////////////// straight - bend (TRIANGLE) else if( (borderflags & (f_no | f_ea | f_se | f_so | f_sw | f_we)) == (f_no | f_ea | f_sw | f_we) ) { CONNECT( SOUTH, SOUTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_se | f_so | f_we)) == (f_no | f_se | f_so | f_we) ) { CONNECT( EAST, NORTHEAST ); } else if( (borderflags & (f_no | f_ne | f_ea | f_so | f_we | f_nw)) == (f_ne | f_ea | f_so | f_we) ) { CONNECT( NORTH, NORTHWEST ); } else if( (borderflags & (f_no | f_ea | f_so | f_sw | f_we | f_nw)) == (f_no | f_ea | f_so | f_nw) ) { CONNECT( WEST, SOUTHWEST ); } ////////////////// RARE SUPER CASE else if( (borderflags & (f_no | f_ea | f_so | f_we )) == (f_no | f_so) ) { node->SetStatus( NULL, 0, 0 ); MakeConnections( L, borders, node->GetConnectedNode( NORTHEAST ) ); MakeConnections( L, borders, node->GetConnectedNode( EAST ) ); MakeConnections( L, borders, node->GetConnectedNode( SOUTHEAST ) ); MakeConnections( L, borders, node->GetConnectedNode( SOUTHWEST ) ); MakeConnections( L, borders, node->GetConnectedNode( WEST ) ); MakeConnections( L, borders, node->GetConnectedNode( NORTHWEST ) ); } else if( (borderflags & (f_no | f_ea | f_so | f_we )) == (f_ea | f_we) ) { node->SetStatus( NULL, 0, 0 ); MakeConnections( L, borders, node->GetConnectedNode( NORTHEAST ) ); MakeConnections( L, borders, node->GetConnectedNode( NORTH ) ); MakeConnections( L, borders, node->GetConnectedNode( SOUTHEAST ) ); MakeConnections( L, borders, node->GetConnectedNode( SOUTHWEST ) ); MakeConnections( L, borders, node->GetConnectedNode( SOUTH ) ); MakeConnections( L, borders, node->GetConnectedNode( NORTHWEST ) ); } }
FlyLinks::FlyLinks(QLabel *parent): QObject(parent),m_pObjLabel(parent),m_prevTreeItem(NULL){ m_pObjPopup = new QTreeWidget(parent); MakeConnections(); MakePopupVisible(false); }