コード例 #1
0
ファイル: gauss_malloc.c プロジェクト: huiliu/c.learning.hui
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;
}
コード例 #2
0
ファイル: Board.cpp プロジェクト: kaitokidi/ItsaTrap
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;
}