Frase de la semana

El blog no debe ser un recurso vano para el ego, tiene que servir para desahogarte y para crear cosas, ya sean del gusto general o no.

‡ Alexander Strauffon ‡

Acerca de este Blog

algunos derechos reservados
Creative Commons License

Mostrando entradas con la etiqueta ejercicios. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejercicios. Mostrar todas las entradas

Tutorial : letras que rebotan

0 opiniones

Consideraciones:


para este pequeño tutorial considerare que usted sabe lo básico acerca de programación en c++ así como uso básico de objetos y usa un sistema Windows (lo se es malo pero aun no he portado todo el código a *nix)


 


paso 1:


primero haremos un objeto para la letra que rebotara y para esto necesitamos abstraerlo, es decir sacar sus propiedades y métodos mas importantes:


propiedades:

  • Carácter – aquí guardaremos la letra que rebotara por la pantalla
  • x – la coordenada en “X” que tendrá nuestro carácter
  • y – la coordenada en “Y” de nuestro carácter
  • movimiento en x – la dirección en la que se moverá nuestro carácter en el eje x
  • movimiento en y – la dirección en la que  se moverá nuestro carácter en el eje y

métodos:

aquí moveremos nuestro carácter en la pantalla, para hacerlo mas fácil lo dividiremos en tres partes


  • preparar movimiento – asignarlas direcciones de movimiento
  • obtener coordenadas  obtener las nuevas coordenadas del carácter
  • mover – finalmente mover el objeto

ahora que hemos finalizado la abstracción del objeto podemos escribir su código.


paso 2:


primero haremos la case y después definiremos sus métodos


Caracter.h.



class Caracter

{


public:


    Caracter(char letra ,int x, int y);//constructor


    ~Caracter(void);


    void mover();


private:


    void makeXY(); //otener as nuevas coordenadas del objeto


    void peparaMov();//no exceder 80 * 25 (TAMAÑO DE LA CONSOLA)


    int x;


    int y;


    bool movx;//true derecha; 
    bool movy;//true abajo;


    char letra;


};


básicamente lo que hemos echo hasta ahora es pasar al código nuestra abstracción , ahora lo que haremos será definir los métodos de nuestra clase:


Caracter.cpp :


#include "StdAfx.h"

#include "Caracter.h"


#include "posicion.h"


#include <iostream>


using namespace std;


Caracter::Caracter(char letra ,int x, int y)

{


    this->letra = letra;


    if(x<0) x=0; else if(x>79) x=79;//s el x pasado al constructor esta fuera de limites ponerlo en el limite mas cercano


    this->x = x-1;//poner un carácter atrás para avanzar y ponerlo en el lugar indicado por el usuario;


    if(y<0) y=0; else if(y>24) y=24;//si el x pasado al constructor esta fuera de limites ponerlo en el limite mas cercano



    this->y = y-1;

    this->movx = true;


    this->movy = true;


}


Caracter::~Caracter(void)//eliminar todos los datos

{


    this->letra = NULL;


    this->x = NULL;


    this->y = NULL;


    this->movx = NULL;


    this->movy = NULL;


    this->rastro = NULL;


}


void Caracter::mover()

{


    //eliminar el carácter antes de moverlo


     gotoxy(this->x,this->y);


     cout<<' ';


    
    this->makeXY();


    gotoxy(this->x,this->y);


    cout<<this->letra;


}


void Caracter::makeXY()

{


    this->peparaMov();


    if(this->movx) this->x++; else this->x--;


    if(this->movy) this->y++; else this->y--;


}


void Caracter::peparaMov()//si esta e el limite cambiamos la dirección del movimiento


{


    if(this->x==0) this->movx = true;


    else if(this->x==79) this->movx = false;


    if(this->y==0) this->movy = true;


    else if(this->y==24) this->movy = false;


}


ahora como gotoxy es de borland tenemos un problema para so usaremos este código que realiza lo mismo:


posicion.h :

#include <stdio.h>

#include <conio.h>


#include <windows.h>


void gotoxy( int column, int line )

  {


  COORD coord;


  coord.X = column;


  coord.Y = line;


  SetConsoleCursorPosition(


    GetStdHandle( STD_OUTPUT_HANDLE ),


    coord


    );


  }


int wherex()

  {


  CONSOLE_SCREEN_BUFFER_INFO csbi;


  COORD                      result;


  if (!GetConsoleScreenBufferInfo(


         GetStdHandle( STD_OUTPUT_HANDLE ),


         &csbi


         ))


    return -1;


  return result.X;


  }


int wherey()

  {


  CONSOLE_SCREEN_BUFFER_INFO csbi;


  COORD                      result;


  if (!GetConsoleScreenBufferInfo(


         GetStdHandle( STD_OUTPUT_HANDLE ),


         &csbi


         ))


    return -1;


  return result.Y;


  }


bien ahora que hemos hecho nuestro objeto, ahora lo implementaremos  en nuestro programa, pero además no será un solo carácter el que rebotara sino 3!

#include "stdafx.h"
#include "Caracter.h"
#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

    Caracter *a,*b,*c; //usamos punteros a los objetos para manejarlo mas fácilmente
    char aa,bb,cc,stop;
    int ax,ay,bx,by,cx,cy;

    cout<<"USO: CARACTER X Y, termine el programa pulsando cualquier tecla;"<<endl;//pedimos los datos de los tres caracteres y los inicializamos
    cin>>aa>>ax>>ay;
    cin>>bb>>bx>>by;
    cin>>cc>>cx>>cy;
    a = new Caracter(aa,ax,ay);
    b = new Caracter(bb,bx,by);
    c = new Caracter(cc,cx,cy);

    system(“cls”) //limpiar pantalla

    while(!_kbhit())
    {
        a->mover();//mover los objetos uno por uno
        b->mover();
        c->mover();
        Sleep(50);//hacer tiempo

    }
    delete a;//como creamos punteros, debemos de liberar la memoria donde se alojaron
    delete b;
    delete c;

    return 0;
}

y listo por esta semana es todo cualquier duda la pueden dejar en los comentarios o enviarla por mail a programacion@ka-plum.co.cc

no olviden darle me gusta! en facebook

El meme de la dulce pena

3 opiniones
pues aprovechando que la princesa (PDDP) me "invito" a este meme (por no decir me condeno jeje xD no se cre mi princesa) pues hare de las mias y condenare a otros cuatro jejeje . . . .

<meme>
instrucciones:

1.- Ve a la cuarta carpeta en tu computadora o dispositivo favorito capas de almacenar fotografias

2.- Elige la cuarta fotografía de esa carpeta

3.- Explica la fotografía

4.- Escoge a 4 almas en pena personas para que hagan lo mismo





jejeje vamos ha darle al meme xD


chale ya me va a salir lo geek-melancolico en esta foto se aprecian los elementos (cpu( procesador)(pegado con silicon ) antena in alambrica etc) de mi computadora acer aspire one( actualmente se encuentra en coma en su habitacion-cajon a prueba de humedad hastaque consiga los transplantes necesarios) junto a la computadora exactamente igual de mi mama y atras mi "centro de trabajo (post en construccion), chale como extraño esa pc, y mas por lo juegos y que la tenia bien tuneada XD
ahora los condenados . . .
1.- gooz
3.- monty
y

ustedes fueron los elegidos para continuar con este meme, no me descepcionen

</meme>
a no ma que "pro" se ve eso de arriba xD

Test y encuestas!!!

5 opiniones
ahora que mi paranoia se ha disipado casi por completo y que no tengo nada que hacer recorde las que publico gozz y junto con algunas mas que encontre por ahi .


-con cuantos noventones puedes al mismo tiempo:


How Many 90 Year Olds Could You Take in a Fight?


- cuanto tiempo puedes sobrevivir atrapado en tu casa

How Long Could You Survive Trapped In Your Own Home?

-como estan tus niveles de cafeina
The Caffeine Click Test - How Caffeinated Are You?

-cuanto tiempo puedes sobrevivir en el vacio del espacio
How long could you survive in the vacuum of space?

-que tan efectivo eres como escudo humano
-que tan adicto eres a bloggear
77%
-que tan propenso eres a comerte a tus amigos en una nevada




-como sabes para un canibal

What would you taste like to a cannibal?


-que tan adicto eres al tocino




Are you addicted to bacon?
cuanto tiempo sobrevivirias atrapado en tu refrigerador


How long could you survive trapped inside your kitchen freezer?
hay despues pongo mas xD

VideoGuia para formatear el sistema

0 opiniones
ojo esta guia no es un tutorial paso a paso, es una serie de recomendaciones para formatear tu sistema de la mejor forma y con el mínimo de perdida de información:





por favor hagan me saber cualquier comentario

el compilador me odia T_T

2 opiniones
Así es el compilador me odia, al igual que php, pero eso es otra historia, hoy estuve trabajando en un programa que pide una serie de datos y luego hace cálculos relacionados a esos datos e imprime un solo dato,
el primer problema es que aunque el debugger y el debugger paso a paso no muestran ningún error, al ejecutarlo salta una pregunta (y una introducción de datos).
y segundo se sala la maldita divicion y en lugar de efectuarla lo toma textual.

Y aparte de eso el yamipod (programa que uso para acceder ala musica de mi ipod) tiene un bug que borra las bases de datos del mencionado aparato, y me ha dejado mas de tres dias sin mi musica, y lo peor EN EL CETI, para los que no sean cetianos dirán "que escandaloso", pero mis compadres, casi hermanos, que también habitan en las dos sucursales de la pricion el ceti saben que es casi imposible sobrevivir a las horas libres (y los quince minutos de espera para declarar al profe por muerto ausente) y el ceti optimiza la ley de murphy, es decir cuando menos vas preparado para resistir aquellas horas libres no planeadas(faltas del profesor) mas de estas hay o en caso de los de informática y otras carreras que usen computadoras, siempre se va la luz cuando no has guardado el trabajo.

optimizador de la ley de murphy ceti sucursal colomos

Y recordando esto, tuve una mala experiencia con vista(como casi todo el mundo); conecte mi ipod para que me pasaran una fuente(letra para los menos freekies) y el maldito vista me despojo de mis 800 cansiones en menos de diez segundos, saben cuanto tarde en recuperarlas? hora y media.

Pero basta de quejas hoy es un agradable domingo, mejor pasarlo dormido en lugar de quejarse xD.
Blog Widget by LinkWithin