elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Consulta Chess en C en: 6 Junio 2015, 05:30 am
Hola, que tal!

Vengo desesperadamente en busca de ayuda, tengo una entrega el dia martes y hoy vinieron a cambiarme el paradigma de como venia resolviendo el ejercicio

La idea es hacer un ajedrez en consola

Código:
#include <stdio.h>
#include <stdlib.h>
typedef enum { false, true } bool;
typedef enum {BLANCO, NEGRO, NULO} Color_t;
typedef enum {PEON, TORRE, CABALLO, ALFIL, REINA, REY} Pieza_t;

typedef struct {
Color_t color_pieza;
int piezas;
char* nombre;
}Jugador;


typedef struct{
Color_t color_pieza;
Pieza_t tipo_pieza;
}Pieza;


typedef struct {
Color_t color_casillero;
Pieza* lugar_pieza;
}Casilla;

typedef Casilla** Tablero;


//Setea los datos de una pieza
Pieza nueva_pieza(Color_t color, Pieza_t tipo){
Pieza p;
p = malloc(sizeof(Pieza));
p.color_pieza = color;
p.tipo_pieza = tipo;
printf("Pieza alocada\n");
return p;
}


//Aloca memoria para todos los casilleros piezas
Tablero inicializar_tablero(){
Tablero tablero;
return tablero=(Casilla**) calloc(8, sizeof(Casilla*));
}

//Aloca memoria para una pieza, setea sus valores, y la devuelve al puntero .lugar_pieza
void set_tablero(Tablero tablero){

int peones_blancos_fila=1, peones_negros_fila=6;
int primera_fila=0, ultima_fila=7;
int i;
for(i=0;i<8;i++){
tablero[peones_blancos_fila][i].lugar_pieza = nueva_pieza(NEGRO, PEON);
}
for(i=0;i<8;i++){
tablero[peones_negros_fila][i].lugar_pieza = nueva_pieza(BLANCO, PEON);
}
//Alloca para las negras
()tablero[primera_fila][0].lugar_pieza = nueva_pieza(NEGRO, TORRE);
tablero[primera_fila][7].lugar_pieza = nueva_pieza(NEGRO, TORRE);

tablero[primera_fila][1].lugar_pieza = nueva_pieza(NEGRO, CABALLO);
tablero[primera_fila][6].lugar_pieza = nueva_pieza(NEGRO, CABALLO);

tablero[primera_fila][2].lugar_pieza = nueva_pieza(NEGRO, ALFIL);
tablero[primera_fila][5].lugar_pieza = nueva_pieza(NEGRO, ALFIL);

tablero[primera_fila][3].lugar_pieza = nueva_pieza(NEGRO, REY);
tablero[primera_fila][4].lugar_pieza = nueva_pieza(NEGRO, REINA);

//Alloca para las blancas
tablero[ultima_fila][0].lugar_pieza = nueva_pieza(BLANCO, TORRE);
tablero[ultima_fila][7].lugar_pieza = nueva_pieza(BLANCO, TORRE);

tablero[ultima_fila][1].lugar_pieza = nueva_pieza(BLANCO, CABALLO);
tablero[ultima_fila][6].lugar_pieza = nueva_pieza(BLANCO, CABALLO);

tablero[ultima_fila][2].lugar_pieza = nueva_pieza(BLANCO, ALFIL);
tablero[ultima_fila][5].lugar_pieza = nueva_pieza(BLANCO, ALFIL);

tablero[ultima_fila][3].lugar_pieza = nueva_pieza(BLANCO, REY);
tablero[ultima_fila][4].lugar_pieza = nueva_pieza(BLANCO, REINA);


}
//Retorna el valor char asociado a la pieza y color.
char caracter_pieza(Pieza p){
char car;
switch(p.tipo_pieza){
case PEON:
car = 'p';
break;
case TORRE:
car = 't';
break;
case CABALLO:
car = 'c';
break;
case ALFIL:
car = 'a';
break;
case REY:
car = 'k';
break;
case REINA:
car = 'q';
break;
}
if(p.color_pieza == NEGRO){
return toupper(car);
}
return car;

}

void imprimir_tablero_n(Tablero tablero){
int i=0,j=0;
//-----------DIBUJAR EL TABLERO----------------//
int c=0;
for (i=0;i<8;i++){
printf(" +---+---+---+---+---+---+---+---+\n");
printf("%d",c);
for (j=0;j<8;j++){
printf("| %c ", caracter_pieza(tablero[i][j].lugar_pieza));
}
c++;
printf("|");
printf("\n");
}
printf(" +---+---+---+---+---+---+---+---+\n");
printf("   h   g   f   e   d   c   b   a  \n");

}






int main(int argc, char **argv){


Tablero tab = inicializar_tablero();
set_tablero(tab);

return 0;
}

La idea es una matriz 8x8. Tengo  problemillas
1. Crear el tablero, sería alocar la memora de cada Casilla, la cual cada una va a tener un puntero que va a apuntar a una Pieza alocada posteriormente, cuando el puntero es NULL; no hay pieza en el casillero.

2. En la funcion set_tablero();  la idea es asignar cada puntero de la posición a una nueva "estructura alocada en memoria". Luego del printf el programa crashea, es decir, el resultado no es el esperado

3. Matriz a imprimir, idea



Disculpen los HORRORES de codigo, se ven, pero estoy en priori de solucionar ese esquemilla..soy estudiante ^^
2  Programación / Desarrollo Web / Duda contenido dinámico en: 19 Septiembre 2014, 05:26 am
Hola, como están?

Quisiera hacer una pregunta, el tema es así, estoy iniciándome en el desarrollo en HTML junto con CSS, actualmente estoy encaminando una pagina la cual tengo como proyecto final.

Llevo entendiendo mas o menos, como estructurar  la web de a secciones

Codigo.
Código:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" href="estilos.css">
<html>
<header>
  <title>Prueba</title>
</header>
    
<body>

<div id="top">
    <img class="logo_net"src="logo_net.png"/> <div class="logo_netd"></div>
</div>

<nav id="menu">
<ul>
    <li><a title="Ir a la pagina principal" href="principal.html">Inicio</a></li>
    <li><a title="Aquí encontrarás información referida a la web" href="principal.html">Acerca de</a></li>
    <li><a title="sección de asistencia" href="principal.html">Asistencia</a></li>
    <li><a title="Descarga de controladores" href="principal.html">Descargas</a>
        </li>
    <li><a title="ChangeLog" href="#">Log</a></li>
</ul>
</nav>
<div id="principal">
    
<div id="contenido">
</div>
    
<div id="banner_d">
</div>

</div>
    

</body>
</html>

CSS
Código:
body{
 background-color: #FF8000;  
}


#top{
height: 140;
width: 995;
background-color: yellow;
}

.logo_net{
float:left;
}

.logo_netd{
height: 140; /*altura*/
width: 250px; /*anchura*/
background-color: red;
border-radius:10px;
float: right;
}


nav{ /*para centrarlo en el medio*/
    /*Bordes redondeados*/
    -webkit-border-radius:10px;/*Para chrome y Safari*/
    -moz-border-radius:10px;/*Para Firefox*/
    border-radius:10px;/*El estandar por defecto*/
    background-image: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#CCC));/*Para chrome y Safari*/
    /*Degradados*/
    background-image: linear-gradient(top, #FFF, #CCC);/*El estandar por defecto*/
    overflow:hidden; /* overflow para ajustar el contenido a la capa*/
    padding:5px; /*anchura del relleno*/
    width:985;
}

nav ul{
    list-style:none;
    margin:0 10px 0 10px;
    padding:0;
}


nav ul li{
    /*Bordes redondeados*/
    -webkit-border-radius:5px;/*Chrome y Safari*/
    border-radius:5px;/*Estandar por defecto*/
    float:left;
    font-family:Arial, Helvetica, sans-serif;
    font-size:16px;
    font-weight:bold;
    margin-right:10px;
    text-align:center;
    /*Sombras para texto, los mismos parametros que box-shadow*/
    text-shadow: 0px 1px 0px #FFF;
}
nav ul li:hover{
    /*Degradado de fondo*/
    background-image: -webkit-gradient(linear, left top, left bottom, from(#FFF), to( #E3E3E3));/*Chrome y Safari*/
    background-image: -moz-linear-gradient(top center, #FFF, #E3E3E3);/*Firefox*/
    background-image: -o-linear-gradient(top, #FFF, #E3E3E3);/*Opera*/
    background-image: linear-gradient(top, #FFF, #E3E3E3);/*Estandar por defecto*/
    /*Sombras*/
    -webkit-box-shadow:  1px -1px 0px #999;/*Chrome y Safari*/
    -moz-box-shadow:  1px -1px 0px #999;/*Firefox*/
    -o-box-shadow:  1px -1px 0px #999;/*Opera*/
    box-shadow:  1px -1px 0px #999;/*Estandar por defecto*/
    border:1px solid #E3E3E3;
}
nav ul li a:hover {
    color:#000;
}
nav ul li a{
    color:#999;
    display:block;
    padding:6px;
    text-decoration:none;
    /*Transiciones*/
    -webkit-transition: 0.4s linear all;
    -moz-transition: 0.4s linear all;
    -o-transition: 0.4s linear all;
    transition: 0.4s linear all;
}
div#principal{
height: 600px;
width: 995px;
background-color: green;

}
div#contenido{
height: 600px;
width: 860px;
background-color: red;
border-radius:10px;
overflow: hidden;
}

div#banner_d{
height:120px;
width: 120px;
background-color: blue;
position: relative;
right: 0;
}



Mi cuestion es, quiero ubicar la caja azul, digamos, a la derecha..porque quiero que esta sea como una sección de banner, despues, la otra, es que en la caja de contenido quiero que tenga un contenido dinamico, es decir, que el usuario pueda mediante "anterior" y "siguiente" cambiar de contenido, esto para no tener que vooolver a cargar toda la web de nuevo

Como debería?

Saludos!

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines