Esempio n. 1
0
void main()
{
	set();
	while (1)
	{
		if (!chkReverse()) break;
		marking();
		draw();
		if (turn == WHITE) //input_u();
			input_key();
		else input_c();
		if (chk_end()) break;
		chturn();
	}
	victory();
}
Esempio n. 2
0
static U_CHAR adapt_mesh(MESH *mesh, ADAPT_STAT *adapt)
{
    FUNCNAME("adapt_mesh");
    U_CHAR   flag = 0;
    U_CHAR   mark_flag;
    int      n_elements, iadmin;
    clock_t  first = clock();

    TEST_EXIT(adapt, "no ADAPT_STAT\n");

    if (adapt->marking)
        mark_flag = adapt->marking(mesh, adapt);
    else
        mark_flag = marking(mesh, adapt);

    if ((!adapt->coarsen_allowed))
        mark_flag &= MESH_REFINED;                    /* use refine mark only */

    if (adapt->build_before_refine)
        adapt->build_before_refine(mesh, mark_flag);

    n_elements = mesh->n_elements;

    if (mark_flag & MESH_REFINED)
        flag = refine(mesh);

    if (flag & MESH_REFINED)
    {
        n_elements = mesh->n_elements - n_elements;
        INFO(adapt->info,8,
             "%d element%s refined, giving %d element%s\n",
             n_elements, n_elements > 1 ? "s" : "",
             mesh->n_elements, mesh->n_elements > 1 ? "s" : "");
        for (iadmin = 0; iadmin < mesh->n_dof_admin; iadmin++)
            INFO(adapt->info,7,"%d DOFs of admin <%s>\n",
                 mesh->dof_admin[iadmin]->used_count,
                 NAME(mesh->dof_admin[iadmin]));
    }
    else
        INFO(adapt->info,8,"no element refined\n");


    if (adapt->build_before_coarsen)
        adapt->build_before_coarsen(mesh, mark_flag);

    n_elements = mesh->n_elements;

    if (mark_flag & MESH_COARSENED)
        flag |= coarsen(mesh);

    if (flag & MESH_COARSENED)
    {
        n_elements -= mesh->n_elements;
        INFO(adapt->info,8,
             "%d element%s coarsened, giving %d element%s\n",
             n_elements, n_elements > 1 ? "s" : "",
             mesh->n_elements, mesh->n_elements > 1 ? "s" : "");
        for (iadmin = 0; iadmin < mesh->n_dof_admin; iadmin++)
            INFO(adapt->info,7,"%d DOFs of dof_admin <%s>\n",
                 mesh->dof_admin[iadmin]->used_count,
                 NAME(mesh->dof_admin[iadmin]));
    }
    else
        INFO(adapt->info,8,"no element coarsened\n");


    if (adapt->build_after_coarsen)
        adapt->build_after_coarsen(mesh, flag);

    INFO(adapt->info,6,"adapting mesh and build needed %.5lg seconds\n",
         TIME_USED(first,clock()));

    return(flag);
}
Esempio n. 3
0
string Vehicle::key() {
    string s_key(1, marking());
    return s_key + ": " + name();
}