Upcoming SlideShare
×

Quasi - Practicas de Programacion en C

293 views
192 views

Published on

Published in: Education
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
293
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
3
0
Likes
1
Embeds 0
No embeds

No notes for slide

Quasi - Practicas de Programacion en C

3. 3. case 2:{addanimal(2);break;} case 3:{searchani();break;} case 4:{seefiles(1);break;} case 5:{seefiles(2);break;} case 6:{seefiles(3);break;} case *:{break;} default:{clrscr();printf("nIntroduce una opci¢n valida.");getch();} } } while (opc!=*);}void addanimal(int x){cleanbuffers();if(x==1){ printf("nTipo de animal: ");gets(animal.tipo); printf("nNombre del animal: ");gets(animal.name); printf("nNombre del due¤o: ");gets(animal.perso); openclosef("w+",1); fwrite(&animal,sizeof(animal),1,fap);printf("ia lo hizo");getch(); openclosef("c",1); } if(x==2){ printf("nTipo de animal: ");gets(animal.tipo); printf("nNombre del animal: ");gets(animal.name); printf("nNombre del due¤o: ");gets(animal.perso); openclosef("w+",2); fwrite(&animal,sizeof(animal),1,fae); openclosef("c",2); }}void searchani() {char strani1[50],strani2[50];printf("nProcesando busqueda...");openclosef("r",1);openclosef("r",2);openclosef("w",3);clrscr();while(feof(fap)==0){ rewind(fae); strcpy(strani1,"NULL");strcpy(strani2,strani1); if(fread(&animal,sizeof(animal),1,fap)){strcpy(strani1,animal.name);} while(feof(fae)==0){ if(fread(&animal,sizeof(animal),1,fae)){strcpy(strani2,animal.name);} if((strcmp(strani1,strani2)==0)&&(strcmp(strani1,"NULL")!=0)){ printf("nAnimal: %s ~ Nombre: %s ~ Amo:%s",animal.tipo,animal.name,animal.perso); fprintf(fanimal,"nAnimal: %s ~ Nombre: %s ~ Amo:%s",animal.tipo,animal.name,animal.perso);
4. 4. openclosef("c+",0); break; } else{printf("nFin de la busqueda");getch();return;} } }getch();openclosef("c+",0);}void cleanbuffers(){fflush(stdin);fflush(stdout);}void seefiles(int x){ char strfileread[15]; if(x==1){strcpy(strfileread,"a-p.txt");} if(x==2){strcpy(strfileread,"a-e.txt");} if(x==3){system("more a-r.txt");printf("nFin del listado");getch();return;} fanimal=fopen(strfileread,"r"); while(feof(fanimal)==0) { if(fread(&animal,sizeof(animal),1,fanimal)){printf("nAnimal: %s ~ Nombre: %s ~Amo: %s",animal.tipo,animal.name,animal.perso);} } printf("nFin del listado"); openclosef("c",3); getch();}void openclosef(char c[2],int x){ char opc[2]; if(strcmp(c,"r")==0){strcpy(opc,"r");} if(strcmp(c,"w+")==0){strcpy(opc,"w+");} if(strcmp(c,"w")==0){strcpy(opc,"w");} if(strcmp(c,"c")==0){printf("aquinta el error");getch();strcpy(opc,"c");} if(strcmp(c,"c+")==0){fclose(fap);fclose(fae);fclose(fanimal);return;} if(x==1){printf("dentro fap %s",opc);fap=fopen("a-p.txt",opc);} if(x==2){fae=fopen("a-e.txt",opc);} if(x==3){fanimal=fopen("a-r.txt",opc);}}void getocfnull(){ openclosef("r",1);openclosef("r",2);openclosef("r",3); if (fap==NULL||fae==NULL||fanimal==NULL){ printf("nAlgun fichero no existe en su directorio."); printf("nPresione una tecla para crearlo y continuar con el programa"); openclosef("w",1); openclosef("w",2); openclosef("w",3); } openclosef("c+",0); getch();
6. 6. cprintf("ÌÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¹³³"); printf("n"); cprintf(" º ¸2001 by Quasi ³ quasi@wanadoo.es º³³ "); printf("n"); cprintf(" º www.ircorion.cjb.net ³ inet@wanadoo.es º³³ "); printf("n"); cprintf(" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÁÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÁÙ "); printf("nnnnnn"); system("CLS"); _setcursortype(2);getch(); exit(0);}
7. 7. Programacion en C: Juego del RATON.Descripción: Realizar un juego que se basa en un raton que seencuentra en una isla. Esta isla esta rodeada de agua, y solo posedos puentes. Al raton puede sucederle 3 cosas: 1. Que se muera de hambre 2. Que se salve por el puente 3. Que se ahogueLos movimientos del ratón serán generados aleatoriamente, aligual que los posicionamientos de los dos puentes que debe haber.La isla por lo general será de un tamaño prefijado por el usuario.Aportación especial: Muestreo por pantalla de imágenes.Mediante el algoritmo usado se cargan y leen en buffers imágenesen formato PCX y BMP.Para ello me he servido de una librería especializada en larealización de graficos y juegos para C, especial para elcompilador DJGPP (allegro.h), los ejemplos que aporta la propialibrería me han servido de mucha ayuda.Objetivo de la practica: Tratamiento de arrays o matricesbidimensionales.Ejecutable: raton.exeCódigo C: raton.c
8. 8. #include <stdio.h> //libreria estandar stout-stdin#include <stdlib.h>#include "allegro.h" //libreria para modo grafico#include <dos.h>void play(); //juegovoid cleanisla(); //limpia los caracteres grabados en islavoid addp(); //algoritmo para a¤adir puentesvoid movie(int x); //funcion de posicionamiento del ratonvoid seeisla(); //visualiza/muestra por stdout la islavoid final(int x); //declara el tipo de final de juegovoid verimgraton(int w); //muestra por stdout imgsint securep2(int x, int y); //algoritmo declarativo de un puentevoid about(); //creditos, about...char isla[21][21]; //mapa de islaint islaf,islac; //dimensiones de islaint posrx,posry; //posiciones del ratonint nmovie; //numero de movimientos antes de morir de hambremain () { //funcion principalplay(); //comenzando el juego}void play(){ int x,y,p1,p2,center,pos,nmovie2; //declarando var necesarias cleanisla(); //eliminando caracteres de isla for(x=0;x<=3;x++){verimgraton(x);} //imgs load-game verimgraton(4); do { printf("nDimensi¢n de la isla (10,15,20)?: "); //estableciendo dimensiones scanf("%d",&islac); printf("nMovimientos del raton (20, 40, 80)?: "); scanf("%d",&nmovie); }while(islac>20||islac<5||nmovie<1); //anti manos largas ;) islaf=(islac+(islac/2)); for(x=0;x<=islac;x++){isla[0][x]=±;} //rellenando isla for(x=0;x<=islac;x++){isla[islac][x]=±;} for(x=0;x<=islac;x++){isla[x][0]=±;} for(x=0;x<=islac;x++){isla[x][islac]=±;} center=islac/2;
9. 9. posrx=posry=center; isla[center][center]=¾; //estableciendo posicion central del raton seeisla(); //mostrando isla _setcursortype(0); addp(); //a¤adiendo puentes printf("nIsla generada"); printf("nDurante el transcurso del juego no pulse niguna telca."); printf("nPresione una tecla para comenzar...");getch(); for(x=nmovie;x>0;x--){movie(x);} //realizando movimientos clrscr(); final(3); //raton murio de hambre, finalizando...}void cleanisla() { int x,y; for(x=0;x<=20;x++){ //recorriendo isla y eliminando caracteres printf("n"); for(y=0;y<=20;y++){isla[x][y]= ;} }}void addp() { int p0,p,x,y; for(y=0;y<=1;y++){ //hacer numero de puentes... x=1; while(x!=0){ //mientras no sean generados... srandom(time(1)); //semilla temporal _aleatoriedad p0=random()%4; //decidiendo lado para puente p=random()%islac; //decidiendo casilla para puente if((p0==0)&&(securep2(0,p)!=1)){isla[0][p]=Û;x--;} //viendo si ia hay if((p0==1)&&(securep2(islac,p)!=1)){isla[islac][p]=Û;x--;} if((p0==2)&&(securep2(p,0)!=1)){isla[p][0]=Û;x--;} if((p0==3)&&(securep2(p,islaf)!=1)){isla[p][islac]=Û;x--;} } }}int securep2(int x, int y){ if (isla[x][y]==Û){return 1;} //examinando si ya existe puente else {return 0;}}void movie(int x){ int num; srandom(time(0)); num=random()%4; //deciendo direccion de movimiento isla[posrx][posry]= ; if(num==0){ posrx--; } //realizando movimientos... if(num==1){ posrx++; } if(num==2){ posry--; }
11. 11. the_imagen y con una resolucion marcada con la paleta "the_pallete"*/ blit(the_image,screen,0,0,(SCREEN_W-the_image->w)/2,(SCREEN_H-the_image->h)/2,the_image->w,the_image->h); destroy_bitmap(the_image); //liberando buffers destruyendo vars y punteros readkey(); //img estatica hasta pulsar una tecla... allegro_exit(); //cerrando modo en funcion de allegro}void about() { char c; clrscr(); _setcursortype(0); //haciendo desaparecer el cursor textcolor(11); //cambiando modo texto el color printf("nnnnnnnn"); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ");printf("n"); cprintf(" ÉÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»Ã¿ "); printf("n"); cprintf(" º ²²²±±±°°° RaToN Game by Quasi °°°±±±²²² º³³ "); printf("n"); cprintf("ÌÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¹³³"); printf("n"); cprintf(" º ¸2001 by Quasi ³ quasi@wanadoo.es º³³ "); printf("n"); cprintf(" º www.ircorion.cjb.net ³ inet@wanadoo.es º³³ "); printf("n"); cprintf(" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÁÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÁÙ "); printf("nnnnnn"); c=getchar(); c=getchar(); system("CLS"); _setcursortype(2); //volviendo a reparecer el cursor exit(0); //facilitando salida sin error}