int main(int argc, char **argv) { int n; double **pFile, **e, **s; if (argc == 1) { printf("Please enter the file name which contain Matrix data!\n\nUsage: %s <filename>\n", argv[0]); exit(EXIT_FAILURE); } pFile = readMatrix(argv[1], &n, 1); #ifdef DEBUG output_A(pFile, n, n); #endif e = eliminate((const double **)pFile, n, n+1); if (!e) exit(EXIT_FAILURE); printf("RESULT...\n"); output_A(e, n, n+1); s = solve(e, n); printf("方程的解为:\n"); output_A(s, 1, n); // 求逆阵 double **T = readMatrix("gauss_inverse", &n, 0); double **M_I = matrix_I(n); output_A(T, n, n); #ifdef DEBUG_INVERSE printf("输出单位矩阵:\n"); output_A(M_I, n, n); #endif double **II = invers(T, M_I, n); revers(II, n, n); printf("输出逆阵:\n"); output_A(II, n, n); printf("测试:\n"); output_A(multi(T, II, n), n, n); return 0; }
int Board::update(std::vector<Dir> movements, float dTime) { std::cout << "strt update" << std::endl; // 0,0 0,-1 1,0 1,-1 // float delayY[] = { 0, 1*ptilesize.y/3, 0, 1*ptilesize.y/3}; // float delayX[] = { ptilesize.x/3, ptilesize.x/3, 2*ptilesize.x/3, 2*ptilesize.x/3}; // float delayY[] = { 0, 1*ptilesize.y/2, 0, 1*ptilesize.y/2}; // float delayX[] = { 0, ptilesize.x/2, 2*ptilesize.x/2, 2*ptilesize.x/2}; sf::Vector2f size ((float)(players[1]->getSpriteSize()).x, (float)(players[1]->getSpriteSize()).y); float delayX[] = { size.x/3, 2*size.x/3, size.x/3, 2*size.x/3 }; float delayY[] = { 0*size.y/4, 0*size.y/4, -1*size.y/4, -1*size.y/4 }; for(int i = 0; i < _nb_players; ++i) players[i]->move(movements[i], dTime); for(int i = 0; i < _nb_players; ++i) { sf::Vector2f pos = players[i]->getPosition(); bool diepotato = false; std::cout << "equis" << delayX[2]<<" nd "<< delayY[3]<< std::endl; // box = sf::RectangleShape(sf::Vector2f(-1*delayX[2], delayY[3])); box = sf::RectangleShape(sf::Vector2f(10,10)); box.setPosition(sf::Vector2f(pos.x, pos.y)); box.setFillColor(sf::Color::Red); std::cout << "cu" << std::endl; for(int y = 0; y < tilemap.size(); ++y){ for(int x = 0; x < tilemap[0].size(); ++x){ std::cout << tilemap[y][x]; } std::cout << std::endl; } for (int k = 0; k < 4; ++k) { // std::cout << k << "[" << (int)((pos.y+delayY[k])/tilesize.y) << ","<< (int)((pos.x+delayX[k])/tilesize.x) << "]" << std::endl; int tiletype = tilemap[(int)((pos.y+delayY[k])/tilesize.y)][((int)((pos.x+delayX[k])/tilesize.x))]; if(tiletype == -2) { players[i]->move(invers(movements[i]), dTime); players[i]->move(invers(movements[i]), dTime); diepotato = false; break; } if( tiletype >= 0) diepotato = true; } if (diepotato) players[i]->tornaInici(); if(i == 0 and pos.x >= 17*tilesize.x) { players[0]->incwins(); players[0]->tornaInici(); players[1]->tornaInici(); } if(i == 1 and pos.x == tilesize.x ) { players[1]->incwins(); players[0]->tornaInici(); players[1]->tornaInici(); } } std::cout << "end update" << std::endl; }