Versión Completa : Foro Oficial De C++
Págs. :
1
2
3
4
5
6
7
[
8]
VIRUTERO_5
noviembre 16, 2008, 08:50
Tambien hay una cabera que se llama time.h (http://www.tuaulaonline.somee.com/), buscalo abajo donde dice cabeceras... y de la sección códigos fuente baja el que dice final C, ahi veras como se usa ;)
SuerteX :)
The RockeR
noviembre 16, 2008, 09:33
Tambien hay una cabera que se llama time.h (http://www.tuaulaonline.somee.com/), buscalo abajo donde dice cabeceras... y de la sección códigos fuente baja el que dice final C, ahi veras como se usa ;)
SuerteX :)
bueno dejame ver ya que el sleep no me funciono, estoy usando el dev c++ y por el momento programando en modo consola:) y ahora que veo tambien dominicano! grax hermano
sairus black
noviembre 16, 2008, 12:51
La verdad para controlar tiempo io usaba la intruccion delay(ms); ms es un valor en milisegundos....esta instrucción se halla en la libreria dos.h de los compiladores para windows.....en fin si no te sirve esto tendras que recurrir a una rutina de clock...ya saben tf-ti = lim...se llama a la hora del sistema y se evalua en un while hasta que la hora tomada mas el limite sea igual a la hora del sistema...es una :M: asi que mejor quedense con el delay...PAZ Y SUERTE.
UAC_Likibuay
noviembre 16, 2008, 01:49
bueno dejame ver ya que el sleep no me funciono, estoy usando el dev c++ y por el momento programando en modo consola:) y ahora que veo tambien dominicano! grax hermano
por q no t funciono el sleep???
The RockeR
noviembre 16, 2008, 03:25
por q no t funciono el sleep???
no se... creo que es el compilador
la sintaxis seria
sleep(5000); \\5 segundos
cout<<"ejemplo";
VIRUTERO_5
noviembre 16, 2008, 09:21
no se... creo que es el compilador
la sintaxis seria
sleep(5000); \\5 segundos
cout<<"ejemplo";
Mmmm.... no recuerdo si delay funciona en windows XP, ahora tengo vista :S ....
A ver man, eres de PR o Santo Dgo? :rolleyes:
SuerteX :)
UAC_Likibuay
noviembre 17, 2008, 08:48
no se... creo que es el compilador
la sintaxis seria
sleep(5000); \\5 segundos
cout<<"ejemplo";
y si usaste la libreria del sleep ?
por q ese ejemplo le funciono a una persona hace pocos dias.
The RockeR
noviembre 17, 2008, 01:17
Mmmm.... no recuerdo si delay funciona en windows XP, ahora tengo vista :S ....
A ver man, eres de PR o Santo Dgo? :rolleyes:
SuerteX :)
orgulloso de ser dominicano!!:cool:
__________________________________________________ ______________________________________
hablando del tema, ya me funciono el sleep! solo tuve que poner "Sleep" y no "sleep". Al parecer eso solo pasa en windows y por ahora estoy sin PC (para comprar otro maquinon) mientras tanto estoy en una portatil prestada y sin derecho a formatear:(
sairus black
noviembre 17, 2008, 04:40
orgulloso de ser dominicano!!:cool:
__________________________________________________ ______________________________________
hablando del tema, ya me funciono el sleep! solo tuve que poner "Sleep" y no "sleep". Al parecer eso solo pasa en windows y por ahora estoy sin PC (para comprar otro maquinon) mientras tanto estoy en una portatil prestada y sin derecho a formatear:(
Yo ando en proyectos de comprar desktop pero tan muy caros....jeje oye eso de Sleep me suena muy raro que compilador usas...?
The RockeR
noviembre 17, 2008, 05:24
Yo ando en proyectos de comprar desktop pero tan muy caros....jeje oye eso de Sleep me suena muy raro que compilador usas...?
mi compilador es el dev-c++ 4
VIRUTERO_5
noviembre 17, 2008, 08:03
orgulloso de ser dominicano!!:cool:
__________________________________________________ ______________________________________
hablando del tema, ya me funciono el sleep! solo tuve que poner "Sleep" y no "sleep". Al parecer eso solo pasa en windows y por ahora estoy sin PC (para comprar otro maquinon) mientras tanto estoy en una portatil prestada y sin derecho a formatear:(
Uyyy man, hasta compueblanos somos :D
SuerteX ;)
(elsita)
noviembre 19, 2008, 12:59
Ya llego por quien preguntaban jijijijij,,,,hola chicos quien dijo que las nenas no podiamos , ps aqui estamos solo ganancias !!! con una necesidad , quien sabe de algún programa fácil de utilizar para crear diagramas de flujo????.....help me plz
UAC_Likibuay
noviembre 19, 2008, 01:30
Ya llego por quien preguntaban jijijijij,,,,hola chicos quien dijo que las nenas no podiamos , ps aqui estamos solo ganancias !!! con una necesidad , quien sabe de algún programa fácil de utilizar para crear diagramas de flujo????.....help me plz
mmmm... yo t lo mando el link por MP
ya q no es free...
saludos..
también esta la sección de programas en win, donde hay mas gente y te pueden ayudar mejor..
Aplicaciones para Windows. (http://www.laneros.com/forumdisplay.php?f=111&order=desc)
(elsita)
noviembre 19, 2008, 02:06
mmmm... yo t lo mando el link por MP
ya q no es free...
saludos..
también esta la sección de programas en win, donde hay mas gente y te pueden ayudar mejor..
Aplicaciones para Windows. (http://www.laneros.com/forumdisplay.php?f=111&order=desc)
Andale chico chispudo osea inteligente pues , a donde me lo enviaras ??? Mira aprovechando tenes msn?? pues a veces tengo que esperar a que vean el mensaje aqui para tener una respuesta mejor te lo pregunto directo jejejejeje weno si podes me lo envias sep
UAC_Likibuay
noviembre 19, 2008, 02:44
Andale chico chispudo osea inteligente pues , a donde me lo enviaras ??? Mira aprovechando tenes msn?? pues a veces tengo que esperar a que vean el mensaje aqui para tener una respuesta mejor te lo pregunto directo jejejejeje weno si podes me lo envias sep
jejeje gracias por lo de chispudo!
te envié el link en mensaje privado.
el correo... likibuay(arroba)hotmail.com
nos leemos.
The RockeR
noviembre 19, 2008, 07:04
bueno alguien sabe alguna guia para programacion grafica? con el winbgim hago muchas cosas: escribir, dibujar pero no se como hacer los botones ni los textBox :S
gracias a este foro toy programando c++ a los 14!!! hasta yo me doy miedo a mi mismo
maraña7
noviembre 20, 2008, 01:58
buen0o bros alguien me puede decir como hacer un programa que calcule el factorial de un numero estaria muy agradecido:reir:
VIRUTERO_5
noviembre 20, 2008, 06:56
buen0o bros alguien me puede decir como hacer un programa que calcule el factorial de un numero estaria muy agradecido:reir:
No tiene que gritar :cansado: .....
En la pagina 35 creo que hay uno ;)
bueno alguien sabe alguna guia para programacion grafica? con el winbgim hago muchas cosas: escribir, dibujar pero no se como hacer los botones ni los textBox :S
gracias a este foro toy programando c++ a los 14!!! hasta yo me doy miedo a mi mismo
Este cursito de WinAPI (http://winapi.conclase.net/curso/index.php)te puede ayudar bastante ;)
SuerteX :)
|ZeR0|
noviembre 20, 2008, 10:06
el de la factorial no es tan dificil.. por fin veo algo que puedo hacer xD.
Volviendo al tema del buscaminas, pues ya tengo casi todo pensado, me ha dado es pereza ponerme a echar codigo :p :P.
Tengo es dos pequeña duda, en eso si soy completamente ignorante, ya que es algo opcional en el proyecto, pero yo quiero hacerlo.
Necesito que se imprima en pantalla el tiempo que lleva el usuario jugando, pero no se como :s. He leido algo acerca de sleep pero no se como usarlo :p
La otra cosa es que se guarden unas estadisticas en en forma de usuario/tiempo en un archivo.
UAC_Likibuay
noviembre 20, 2008, 12:12
Necesito que se imprima en pantalla el tiempo que lleva el usuario jugando, pero no se como :s. He leido algo acerca de sleep pero no se como usarlo :p
La otra cosa es que se guarden unas estadísticas en en forma de usuario/tiempo en un archivo.
Zero.. ahora mismo se me ocurre.. utilizando la hora de inicio e ir restado con la actual... también el sleep pero mmm... no se me ocurre como usarla.
con lo de las estadisticas en archivos planos...
http://www.conclase.net/c/ficheros/index.php
http://www.programacionenc.net/modules.php?name=Tutoriales&d_op=vertuto&lid=46
:cool:
factorial de un numero
http://www.conclase.net/c/fuentes.php?tema=5
Bienvenido x estos lados.. Maraña7
Buscar en San Google is Thx
|ZeR0|
noviembre 20, 2008, 12:22
muchas gracias viejo. Apenas tenga tiempo agarro y me deboro esos documentos.
UAC_Likibuay
noviembre 20, 2008, 12:23
muchas gracias viejo. Apenas tenga tiempo agarro y me deboro esos documentos.
listo , dele.. es buena info..
por si las moscas, el buscar en google no era con ud.
saludos!
VIRUTERO_5
noviembre 20, 2008, 03:39
|ZeR0|, busca la cabereca llamada time.h que postee atras, con ella todas la fecha y hora inicial del sistema y asi podras trabajar con ellas ;)
SuerteX :)
UAC_Likibuay
noviembre 20, 2008, 06:21
Fecha y hora
#include <time.h>
http://www.zator.es/Cpp/E9_1.htm
con ejemplos... excelente... nunca tuve la oportunidad de utilizar esa libreria.
muy interesante..
éxitos.
Steph..!
noviembre 21, 2008, 02:23
Hola, tengo un problema al desarrollar el juego del gato con arreglos bidimensionales, se que debo declarar un arrego 3x3, y al parecer declarar un funcion que reciba como parametro el arreglo y que me regreso si es verdaderoe l comparar los renglones columnas y diagonales para podr dcir quein gano e imprimir la amtriz pero no m sale :s
VIRUTERO_5
noviembre 21, 2008, 06:41
El man CEGO que andaba buscando como hacer un archivo autoejecutable.... me llego a la mente uno que se ejecute con el evento refresh de la ventana... a ver como funciona..
SuerteX :)
UAC_Likibuay
noviembre 21, 2008, 08:19
Hola, tengo un problema al desarrollar el juego del gato con arreglos bidimensionales, se que debo declarar un arrego 3x3, y al parecer declarar un funcion que reciba como parametro el arreglo y que me regreso si es verdaderoe l comparar los renglones columnas y diagonales para podr dcir quein gano e imprimir la amtriz pero no m sale :s
y q es lo q no t sale?
muestra el código a ver si podemos encontrar el error.:rolleyes:
:: Mr Cego ::
noviembre 21, 2008, 08:25
El man CEGO que andaba buscando como hacer un archivo autoejecutable.... me llego a la mente uno que se ejecute con el evento refresh de la ventana... a ver como funciona..
SuerteX :)
man, ni idea, me regala un modelo?
salu2.
xjuanch0x
noviembre 21, 2008, 09:23
Man para que se autoejecute puedes cargarlo en el resgitro de inicio de windows y cada ves que reicinicie se copiara o ejecutara o lo que quieras...solo para windows
xjuanch0x
noviembre 21, 2008, 09:29
y ahora si es con el evento Refresh, estaria tu programa amarrado a que el usuario abra dicha ventana, recuerda que el evento Refresh es cuando hay cambios en la ventana y si no esta abierta por logica no abra cambios y tampoco evento refresh, asi que tu ejecutable quedaria como eso un ejecutable y no autoejecutable....tendrias que buscar otra forma mas efectiva...suerte :)
|ZeR0|
noviembre 21, 2008, 10:44
uy esta muy buena esa pagina.. tengo mucho por leer. Muchas gracia :)
:: Mr Cego ::
noviembre 21, 2008, 04:40
sigo sin entender :S :S
VIRUTERO_5
noviembre 22, 2008, 01:54
sigo sin entender :S :S
Mira los programas tienen eventos y propiedades.... en el caso de las appl graficas es muy facil, asi es como se controla que cuando le des a la X para salir te pida una confirmacion, este es el evento form closing, otro ejemplo es el evento clic o doble clic.... esto es un evento, puesto que solo funciona cuando le das clic..... en el caso de lo que te propongo es que utilices el evento refresh o algo asi para cuando entre en mis documentos o en mi pc el archivo haga su trabajo ;)
SuerteX :)
UAC_Likibuay
noviembre 22, 2008, 05:50
sigo sin entender :S :S
complementando un poco lo q dice nuestro amigo Viturero..
http://elvex.ugr.es/decsai/builder/appendix/tform.html
saludos y éxitos.:cool:
caranderik
noviembre 24, 2008, 12:13
compañeros laneros necesito una ayudita con un proyecto que dice:
En los lenguajes imperativos y orientados a objetos actuales, que manejan
tipos de datos enteros, normalmente los enteros cortos se representan en 2
bytes, y se pueden representar valores entre -32.768 hasta 32.767. Otro tipo
es el entero largo, que representa valores en 4 bytes y puede tener valores
entre -2.147.483.648 hasta 2.147.483.647 pero valores enteros de mayor (o
menor) tamaño, no pueden ser representados directamente.
Una forma de permitir valores enteros mayores es representándolos como un
árbol binario así:
824395687241
/ \
82439568 7241
/ \
8243 9568
De esta forma, un número entero muy grande, es dividido en pequeños
números de máximo cuatro (4) dígitos (esto por conveniencia para que cada
hoja de este árbol contenga un valor entero simple. El número estará
contenido en las hojas del árbol, de izquierda a derecha.
La idea del proyecto es permitir al usuario crear números de gran tamaño ya
sea como una cadena o como una lista de caracteres, y que se representen
de esta forma.
Además, para probar que se está haciendo una representación de números
adecuada, es necesario que se permita hacer con dichos número sumas,
restas y multiplicaciones, los resultados también deben representarse de esta
manera.
Recibo sugerencias
no pretendo que me hagan el proyecto solo quiero que me den unas ideas de como hacerlo.
Gracias
caranderik
noviembre 24, 2008, 12:16
Para mayor claridad:
............................824395687241
.............................../.............\
........................82439568 ......7241
............................../...... \
..........................8243.. 9568
UAC_Likibuay
noviembre 24, 2008, 01:30
Para mayor claridad:
............................824395687241
.............................../.............\
........................82439568 ......7241
............................../...... \
..........................8243.. 9568
mmm... pues hace muuucho hice uno parecido.. pero no con arboles, era una calculadora para números con miles de dígitos, pero lo q hacia yo esa suma por bloques eso era para tecnicas de análisis de algoritmo.. aquel famoso t(n) , vamos a ver si lo encuentro...
saludos y éxitos.:cool:
))>•★HΛCO★•<((
noviembre 24, 2008, 06:30
Jerry SAN bien o no mijo;)
Ahora mas tarde una ayudita con unos progratias suaves....
y uno que hice pero nada que me compila parce :S
deja y lo logro encontrar y te lo mando
UAC_Likibuay
noviembre 24, 2008, 09:00
Jerry SAN bien o no mijo;)
Ahora mas tarde una ayudita con unos progratias suaves....
y uno que hice pero nada que me compila parce :S
deja y lo logro encontrar y te lo mando
compadre apenas leo...
si no es muy tarde dime..
saludos..:muerto:
caranderik
noviembre 24, 2008, 09:27
He estado haciendo el del arbol y tengo la siguiente duda:
como hago para ir partiendo el numero que el usuario me ingresa en partes de cuatro digitos por ejemplo: 12345678901234567890 en 1234, 5678, 9012, 3456, 7890.
:: Mr Cego ::
noviembre 24, 2008, 09:34
como el numero tiene 20 digitos, lo que debes hacer es dividir por 4 decenas menos el numero. es decir, dividir 20 entre 1 + 16 "0" (ceros). con un contador, ir disminuyendo ese numero en 4, asi sucesivamente ;)
asi es la forma en que lo hice. salu2.
UAC_Likibuay
noviembre 24, 2008, 10:27
He estado haciendo el del arbol y tengo la siguiente duda:
como hago para ir partiendo el numero que el usuario me ingresa en partes de cuatro digitos por ejemplo: 12345678901234567890 en 1234, 5678, 9012, 3456, 7890.
si lo tratas como cadena... te recomiendo el substr (http://www.cplusplus.com/reference/string/string/substr.html)... por cierto q id usas para tu proyecto?
saludos...:cool:
VIRUTERO_5
noviembre 25, 2008, 08:19
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
int a, var, cap;
char variable[19];
for (a=1; a<=20; a++)
{
cap=getch();
variable[a]=cap;
cout<<variable[a];
if (a==4 or a == 8 or a ==12 or a==16)
{
cout<<", ";
}
}
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Creo que eso es lo que busca ;)
SuerteX :)
caranderik
noviembre 25, 2008, 08:22
como el numero tiene 20 digitos, lo que debes hacer es dividir por 4 decenas menos el numero. es decir, dividir 20 entre 1 + 16 "0" (ceros). con un contador, ir disminuyendo ese numero en 4, asi sucesivamente ;)
asi es la forma en que lo hice. salu2.
Mira: lo malo, es que no se sabe cuantos digitos ingresara el usuario, lo que puse es solo un ejemplo.
pero gracias por el interes
:: Mr Cego ::
noviembre 25, 2008, 08:29
pero ud dijo "20 numeros" y no generalizo...
VIRUTERO_5
noviembre 25, 2008, 09:47
Mira: lo malo, es que no se sabe cuantos digitos ingresara el usuario, lo que puse es solo un ejemplo.
pero gracias por el interes
El ejemplo que le puse atras esta funcionando, pero creo que tendrias que en el if en vez de poner lo que esta, cambiarlo por a%4 y con eso deberia quedar resuelto ;)
SuerteX :)
caranderik
noviembre 29, 2008, 01:05
El ejemplo que le puse atras esta funcionando, pero creo que tendrias que en el if en vez de poner lo que esta, cambiarlo por a%4 y con eso deberia quedar resuelto ;)
SuerteX :)
Virutero_5 gracias por tu ayuda me sirvio de mucho, en estos dias subo el proyecto para los que quieran pegarle una ojeadita o quizas lo necesiten.
suerte.
VIRUTERO_5
noviembre 30, 2008, 11:02
Virutero_5 gracias por tu ayuda me sirvio de mucho, en estos dias subo el proyecto para los que quieran pegarle una ojeadita o quizas lo necesiten.
suerte.
Naa man, pa eso estamos.... por cierto, hice el arreglo de char porque si lo hacia int me daba problemas y ahora que hice ese ejemplo me vienen muchas ideas a la cabeza de como controlar la entrada de datos y que la conversión sea la correcta :)
SuerteX :)
:: Mr Cego ::
diciembre 1, 2008, 06:04
ufff me gustaria ver ese arreglo.... un amigo me dijo que era casi imposible hacer eso.... quiero verlo para aprender :D
UAC_Likibuay
diciembre 1, 2008, 06:46
ufff me gustaria ver ese arreglo.... un amigo me dijo que era casi imposible hacer eso.... quiero verlo para aprender :D
q es casi imposible?
http://www.laneros.com/archive/index.php/t-68351.html
:: Mr Cego ::
diciembre 1, 2008, 06:52
no le doy k+ es porque no me dejan :P :P :P
gracias, le debo otra :D
|ZeR0|
diciembre 1, 2008, 07:14
a mi que me quedo grande hacer un calendario.. se supone que me dan la formula para saber que dia de la semana es.. pero a la hora de ordenar una matriz con las fechas me da como 23523612425 :(
VIRUTERO_5
diciembre 2, 2008, 07:24
Depende de como lo estes haciendo ..... , puedes mostrar el codigo? :rolleyes:
SuerteX :)
Progarman
diciembre 5, 2008, 02:14
Oigan yo se que hay mucho progamador nivel avanzado pero para los que estamos empezando y estamos aprendiendo a programar en C, sabran de alguna pagina donde haya muchos ejercicios de programas ya sea hechos o para realizar?
Como dicen programar se aprende programando asi que me gustaria practicar mucho.
Oigan otra pregunta: Una vez me dijo un maestro que los mejores libros de programacion estan en ingles, resulta que estoy en Canada y tengo la oportunidad de comprar uno, alguien sabe de alguno que me pueda recomendar?
VIRUTERO_5
diciembre 5, 2008, 06:50
Oigan yo se que hay mucho progamador nivel avanzado pero para los que estamos empezando y estamos aprendiendo a programar en C, sabran de alguna pagina donde haya muchos ejercicios de programas ya sea hechos o para realizar?
Como dicen programar se aprende programando asi que me gustaria practicar mucho.
Oigan otra pregunta: Una vez me dijo un maestro que los mejores libros de programacion estan en ingles, resulta que estoy en Canada y tengo la oportunidad de comprar uno, alguien sabe de alguno que me pueda recomendar?
Este le puede ayudar ;)
http://www.intercambiosvirtuales.org/2008/03/como-programar-en-cc-deitel-prentice.html
Edit:
Señores, tengo una propuesta para quienes quieran algun tipo de motivacion o inspiracion para aprender C++ ..... si quieren hacemos una lista para ir leyendo los capitulos de este libro e ir aprendiendo C++ adecuadamente y compartiendo conocimiento ....
Estamos hablando de que serian unas 40 a 80 paginas en la semana, no se si lo podriamos hacer de 2 o 3 capitulos por semana ... y asi lo acabariamos rapido .... otra cosa seria que si lees algo y no lo entiendes y otros de los del equipo si comprende bien se puede explicar para todos ;)
¿Que opinan? :rolleyes:
SuerteX :)
|ZeR0|
diciembre 5, 2008, 06:51
Buenas gente. he vuelto a retomar el buscaminas, estuvo en stand by por otros trabajos de la universidad.
Creo que ya supe como sacar el tiempo total de juego, la duda que tengo es como hacer para imprimir digamos un cronometro abajo del tablero del buscaminas y que el usuario vaya viendo ahi cuanto tiempo lleva.
El problema ahi seria que al mismo tiempo el programa le tiene que pedir un dato (la posicion de la mina) al usuario.. ahi si NPI :(
Les comento que el programa que usamos en el curso es eclipse, y eso nos trae algunos problemas, porque los comandos SYSTEM ("cls") por ejemplo, no funcionan en eclipse (o en el compilador que usamos). Alguno de ustedes conoce alguna manera de limpiar pantalla en eclipse ?
Mi tercera duda xD ... la vaina de "destapar" las casillas aledañas a una casilla en blanco (ingresada previamente por el usuario) es la que me tiene sin dormir, hasta ahora lo que tengo es una funcion que recorra las 8 casillas aledañas a la primera casilla, y luego se llame para destapar las de la primera casilla (de esas 8 que destapo previamente). La cosa es, como hago para ponerle un punto de ruptura a esa funcion ?? para que no me siga "destapando" casillas que ya habia "destapado" con anterioridad.
PD. Se les agradece cualquier orientacion para hacer un ingreso exitoso al mundo de los videojuegos :P:P
UAC_Likibuay
diciembre 5, 2008, 07:15
Mi tercera duda xD ... la vaina de "destapar" las casillas aledañas a una casilla en blanco (ingresada previamente por el usuario) es la que me tiene sin dormir, hasta ahora lo que tengo es una funcion que recorra las 8 casillas aledañas a la primera casilla, y luego se llame para destapar las de la primera casilla (de esas 8 que destapo previamente). La cosa es, como hago para ponerle un punto de ruptura a esa funcion ?? para que no me siga "destapando" casillas que ya habia "destapado" con anterioridad.
PD. Se les agradece cualquier orientacion para hacer un ingreso exitoso al mundo de los videojuegos :P:P
http://www.mygnet.net/codigos/c++/11/1308/
aqui esta resuelto.. puedes ver la función y guiarte.
con respecto a lo de eclipse.. nunca lo he utilizado... pero raro... eso no tiene nada q ver con el id...
nos llemos..
Viturero.... excelente idea..
deberías hacer una lista con los interesados par que luego, si se decida q se va a realizar.
|ZeR0|
diciembre 5, 2008, 07:38
viejo de verdad muchas gracias.. lamentablemente no entiendo ni mu de ese codigo :(
UAC_Likibuay
diciembre 5, 2008, 07:46
viejo de verdad muchas gracias.. lamentablemente no entiendo ni mu de ese codigo :(
mira como queda aqui lo compile....
asi no t sirve según lo q leo.. pero las funciones las puedes utilizar.. por lo menos la q no sabes como hacer...
q seria la siguiente..
void minasRodean(int& x, int& y){
int sub;
int minas=esMina(x,y,0,0);
if(minas==0){
for(int i=0; i<3; i++) for(int j=0; j<3; j++){
if(x-1+i>=0 && x-1+i<NUM_CAS && y-1+j>=0 && y-1+j<NUM_CAS){//que no salga del tablero*
sub= NUM_CAS*(x+i-1) + (y+j-1);
int a=x-1+i;
int b=y-1+j;
char chr[]={'0' + esMina(a,b,0,0),'\0'};
SetWindowText(hwndButton[sub],chr);
EnableWindow(hwndButton[sub],FALSE);
table[x+i-1][y+j-1]=2;
}
}
}
else{
sub= NUM_CAS*x + y;
table[x][y]=2;
char chr[]={'0' + minas,'\0'};
SetWindowText(hwndButton[sub],chr);
EnableWindow(hwndButton[sub],FALSE);
const char aux[]={minas+'0','\0'};
}
}
|ZeR0|
diciembre 5, 2008, 08:26
nuevamente muchisimas gracias viejo.. ya me quedo mas clarito el codigo pa ponerme a revisarlo y adaptarlo al mio :)
Me pongo a cacherrearle al buscaminas y mas tarde le comento como me ha ido :P :P
ANDING
diciembre 11, 2008, 06:45
Hola espero no incomodar pero queria saber si alguien puede ayudarme con el siguiente problema de estructuras,
Yo lo estoy tratando de sacar pero no me funciona y estoy colgado de tiempo..
Agradeceria si me colaboran...
Validación de accesos a una computadora
Problema:
Consideremos el problema de organizar una colección de identificadores de usuario de
una computadora y sus palabras clave. Cada vez que un usuario accede al sistema
introduciendo su identificador y su palabra clave secreta, el sistema debe comprobar la
validez de ambos para verificar que es un usuario legítimo. Puesto que dicha validación
debe hacerse en numerosas ocasiones cada día, es necesario estructurar esta información
de forma que se pueda encontrar rápidamente. Además debe ser una estructura dinámica
porque se van añadiendo regularmente usuarios al sistema. El algoritmo de validación de
acceso debe ejecutarse repetidamente hasta que se cierre el sistema.
Parámetros de diseño
Obligatorio el uso de plantillas para la construcción de la estructura. Uno de los objetos de
este problema es la información del usuario – Identificador y palabra clave – que son
cadenas de caracteres. Para ello se debe construir una clase InfoUsuario. También se
necesita una colección de datos Infousuario. Se debe usar un ABB. Puesto que la
búsqueda y la inserción en un ABB requiere poder comparar los valores almacenados en
él con < y ==, se debe sobrecargar dichos operadores para Infousuario. También se debe
desarrollar una operación de entrada, por lo cual también se deberá sobrecargar el
operador >>. Después de cada modificación al ABB (Inserción o eliminación), deberá
mostrarse el ABB resultante. Se debe entregar en un CD el archivo de cabecera ABB.h y
el archivo de implementación.ccp correctamente comentados.
Parámetros de la evaluación.
I. Construcción de la clase Infousuario.
II. Implementación del método de búsqueda.
III. Implementación del método para insertar un nuevo usuario.
IV. Implementación del método para eliminar un usuario.
V. Posibilidad de construir el ABB desde una colección de datos almacenada en un archivo
(.dat, o .txt). con el siguiente formato:
nombreUsuario1 claveUsuario1
nombreUsuario2 claveUsuario2
: :
VI. Implementación del método para mostrar el ABB.
VII. Implementación del destructor, constructor de copia y operador de asignación.
VIII. Sobrecarga de los operadores <, == y >>.
IX. Implementación de un método que utilice una estructura recursiva.
Anding
Gracias de antemano
porfa alguien que me pueda ayudar con este trabajo... se lo agradeceria mucho..
VIRUTERO_5
diciembre 11, 2008, 08:04
En palabras cortas, ¿que desea?
En tiendo que quieras un clase para manejar los datos de los usuarios y luego tratarlos, pero no entiendo "llanamente" que es lo que realmente quieres para poder ayudarte :|
SuerteX :)
UAC_Likibuay
diciembre 11, 2008, 09:59
En palabras cortas, ¿que desea?
En tiendo que quieras un clase para manejar los datos de los usuarios y luego tratarlos, pero no entiendo "llanamente" que es lo que realmente quieres para poder ayudarte :|
SuerteX :)
el quiere q le hagas la tarea.:cool:
así si esta difícil q aprenda.. ayudar es una cosa y hacer la tarea es otra.
:: Mr Cego ::
diciembre 11, 2008, 08:27
lo que quiere es un programa que use POO :S :S
asi no se aprende nada... a mi me fue muy bien aqui y aprendi POO :D
pero solo pedia consejos, no que me hicieran tareas ;)
salu2.
VIRUTERO_5
diciembre 12, 2008, 06:33
lo que quiere es un programa que use POO :S :S
asi no se aprende nada... a mi me fue muy bien aqui y aprendi POO :D
pero solo pedia consejos, no que me hicieran tareas ;)
salu2.
POO estoy aprendiendo SUPERRRR con un video tutorial de VB.NET :D .... ahi explican todos los conceptos de POO =)
SuerteX :)
ANDING
diciembre 12, 2008, 07:00
el problema que escribi anteriormente es porque las dos ultimas clases de estructuras de datos que eran sobre ABB no asisti y por eso no se como hacerlo, el destrructor, el constructor y la lectura de datos desde un archivo si lo se hacer, pero lo de arboles binarios de busqueda si podrian darme una idea... muchas gracias
VIRUTERO_5
diciembre 12, 2008, 07:40
el problema que escribi anteriormente es porque las dos ultimas clases de estructuras de datos que eran sobre ABB no asisti y por eso no se como hacerlo, el destrructor, el constructor y la lectura de datos desde un archivo si lo se hacer, pero lo de arboles binarios de busqueda si podrian darme una idea... muchas gracias
Man, tiene que ser mas especifico... y debes explicar ademas .... es una tarea, trabajo o que? :rolleyes: en si creo que es una tarea :cansado: .... dime que tienes hasta el momento, que te falta para terminar para poder ayudarte ;)
Edit:
Por cierto, en la pagina 35 hay ejemplos con clases, no hay constructores pero si los de las clases son bien simples y puede entenderlos facilmente ;)
En http://www.tuaulaonline.somee.com/ en la parte derecha en la seccion llamada Codigos Fuentes descarga
- Final Lenguaje C
- Archivos Secuenciales
- Archivos Aleatorios
El llamado final lenguaje C le puede ayudar mucho .... BASTANTE....... se lo recomindo, se trabaja con estructuras y es un programa completo... ;)
SuerteX :)
|ZeR0|
diciembre 13, 2008, 05:32
Buenas gente, paso por aqui para informarles :P y que no piensen que solo queria que me hicieran el proyecto :P
Ya esta todo listo en el buscaminas, bueno, solo me falta lo de las estadisticas, aunque ya un compañero me paso eso masomenos explicadito.
Para llevar el tiempo use la funcion clock(); cuando el usuario inicia el juego, ahi declaro una variable con el valor del reloj.. a medida que actualizo el tiempo, resto el valor de la variable del valor actual de clock y ahi lo paso a segundos.
para la funcion de despejar los ceros me toco hacer una trampita :p :p :p las casillas que eran cero ('0') y uno iba destapandolas, las igualaba a 'O' :p
Pondria el codigo pero es que esta medio larguito :p
Xx_bandicoot_xX
diciembre 17, 2008, 09:57
Alguien sabe de alguna página donde se puedan encontrar ejercicios ? Que no sean los de 2 números y devolver el mayor o menor, algo mas complejos... He buscado y buscado, pero no he dado con una página buena...
VIRUTERO_5
diciembre 18, 2008, 06:58
Alguien sabe de alguna página donde se puedan encontrar ejercicios ? Que no sean los de 2 números y devolver el mayor o menor, algo mas complejos... He buscado y buscado, pero no he dado con una página buena...
http://winapi.conclase.net/ y aqui mismo en la pagina 35 hay unos cuantos ;)
Buenas gente, paso por aqui para informarles :P y que no piensen que solo queria que me hicieran el proyecto :P
Ya esta todo listo en el buscaminas, bueno, solo me falta lo de las estadisticas, aunque ya un compañero me paso eso masomenos explicadito.
Para llevar el tiempo use la funcion clock(); cuando el usuario inicia el juego, ahi declaro una variable con el valor del reloj.. a medida que actualizo el tiempo, resto el valor de la variable del valor actual de clock y ahi lo paso a segundos.
para la funcion de despejar los ceros me toco hacer una trampita :p :p :p las casillas que eran cero ('0') y uno iba destapandolas, las igualaba a 'O' :p
Pondria el codigo pero es que esta medio larguito :p
pongalo entre etiquetas php ;)
SuerteX :)
|ZeR0|
diciembre 20, 2008, 09:46
Bueno aqui se los dejo.. la parte de los archivos no me funciona en windows vista.. quien sabe porque :(
//================================================== ==========================
// Name : Buscaminas.cpp
// Author : Hugo Giraldo
// Version :
// Copyright : Free
// Description : Juego buscaminas en c++
//================================================== ==========================
#include<iostream.h>
#include<cstdlib>
#include<math.h>
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
const int COLMAX=30;
const int FILMAX=16;
char auxiliar[FILMAX][COLMAX],tablero[FILMAX][COLMAX],mine='*',flag='!',cas='?';
int minx=10,tiempi,tiempf;
FILE *escribir,*leer;
void header(){ /* Imprime el encabezado del tablero */
cout<<"\t\t¾¾¾¾¾¾¾ ¾¾` ¾@ %¾¾¾¾¾ `d¾¾¾¾¾ h@¾` ¾¾¾ ¾¾@;`@¾` ¾¾¾ ¾¾ ¾¾0 ¾¾¾¾¾) \n";
cout<<"\t\t¾¾ ` ¾@ ¾¾ ¾¾` @3 @¾ `¾¾`` ¾¾` ¾¾@¾ ¾¾¾_ ¾3¾; ¾¾ ¾¾¾¾ ¾¾ ¾¾¾¾ ¾¾ ¾¾ \n";
cout<<"\t\t¾¾66h¾¾ ¾¾ ¾¾ ¾¾¾@$ ¾¾ ¾¾ h@@ ¾¾¾¾ )¾`¾; ¾¾ ¾¾6@¾ ¾¾ %¾0 ¾¾ @¾¾¾¾ \n";
cout<<"\t\t¾¾))$¾¾@ ¾¾ ¾¾ `¾¾¾¾ ¾¾ V 2.0 ¨¾@ ¾¾ ¾¾ ¾¨¾@ ¾; ¾¾ ¾¾ )¾%¾¾ ¾¾ d¾' ` #¾¾¾_\n";
cout<<"\t\t¾¾ `¾¾` ¾¾` ¨@R ¾@ ¾¾ `¾¾ ` ¾¾ ¾¾¾¾¾¾¾@` ¾¾ ¾¾¾ ¾; ¾¾ ¾¾ 6@¾¾ d¾@¾¾¾¾¾ ;¾@ )¾¾\n";
cout<<"\t\t¾¾¾¾¾¾@@ #¾¾@@¾¾` `@@@¾@¾@` `¾¾¾@¾¾; ¾* `¾¾` ¾¾ @¾¾ @;`¾¾ ¾¾ ¾¾¾ ¾¾ `@¾d ¾¾¾¾¾¾@`\n";
cout<<"\n";
}
void clean(){/* Procedimiento para "limpiar" pantalla */
int i;
for(i=0;i<25;i++)cout<<"\n";}
int casilla(int f,int c,int fil,int col){ /* Determina la posicion de una casilla determinada para usarse en otras funciones */
if(f==0){
if(c==0)return 1;
if(c==col-1)return 7;
else return 8;}
if(f==fil-1){
if(c==0)return 3;
if(c==col-1)return 5;
else return 4;}
else{
if(c==0)return 2;
if(c==col-1)return 6;
else return 9;}}
char contmin(int i,int j,int fil,int col){ /* Cuenta las minas cercanas a una casilla */
int caso,x,y;
char suma='0';
caso=casilla(i,j,fil,col);
switch(caso){
case 1:{
for(x=i;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 2:{
for(x=i-1;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 3:{
for(x=i;x>=i-1;x--){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 4:{
for(x=i;x>=i-1;x--){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 5:{
for(x=i;x>=i-1;x--){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 6:{
for(x=i-1;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 7:{
for(x=i;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 8:{
for(x=i;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 9:{
for(x=i-1;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
}
return suma;
}
void minas(int m,int f,int c){ /* Distribuye las minas aleatoreamente */
int i,x,y;
srand((unsigned)time(0));
for(i=1;i<=m;i++){
x= (rand()%f);
y= (rand()%c);
if(auxiliar[x][y]==mine){
x=(rand()%f);
y=(rand()%c);
i--;}
else{
auxiliar[x][y]=mine;}}
}
int menu(){ /* Imprime el menu y recibe datos del usuario y los retorna al procedimiento principal */
int opc;
cout<<"\n\n\n \t\tMENU DE OPCIONES: \n\n";
cout<<"\t\t1. Nuevo Juego\n";
cout<<"\t\t2. Elegir nivel de juego\n";
cout<<"\t\t3. Configuraciones\n";
cout<<"\t\t4. Ver estadisticas\n";
cout<<"\t\t5. Creditos\n";
cout<<"\t\t6. Salir\n";
cout<<"\t\tIngrese su opcion: ";
cin>>opc;
while (opc<1&&opc>6){
cout<<"\n\n\n \t\tMENU DE OPCIONES: \n\n";
cout<<"\t\t1. Nuevo Juego\n";
cout<<"\t\t2. Elegir nivel de juego\n";
cout<<"\t\t3. Configuraciones\n";
cout<<"\t\t4. Ver estadisticas\n";
cout<<"\t\t5. Creditos\n";
cout<<"\t\t6. Salir\n";
cout<<"\t\tIngrese su opcion: ";
cin>>opc;
}
return opc;
}
int nivel(){ /* Imprime los niveles y retorna la opcion escogida por el usuario */
int opc;
clean();
cout<<"\t\t1. Nivel facil: 9x9 y 10 Minas\n";
cout<<"\t\t2. Nivel normal: 16x16 y 40 minas\n";
cout<<"\t\t3. Nivel Legendario: 16x30 y 99 minas\n";
cout<<"\t\tPor favor ingrese su opcion: ";
cin>>opc;
return opc;
}
void inboard(int fil, int col){ /* Inicializa el tablero para cada juego nuevo */
int i,j;
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
tablero[i][j]=cas;}}}
void imprt(int fil, int col){ /* Imprime el tablero de juego, el tiempo y el numero de minas */
int i,j;
clean();
header();
tiempf=(clock()-tiempi)/1000;
cout<<"\t\tMinas ["<<minx<<"]\tTiempo ["<<tiempf<<"]\n";
cout<<"\t\t ";
for(j=0;j<col;j++)cout<<" "<<j<<" ";
cout<<"\n\t\t ";
for(j=0;j<col;j++)cout<<" _ _";
cout<<"\n\t\t";
for(i=0;i<fil;i++){
cout<<i<<" ";
for(j=0;j<col;j++){
cout<<"|_"<<tablero[i][j]<<"_";
}
cout<<"|\n\t\t";
}
}
int config(){ /* Entra al panel de configuraciones, cambiar simbolos etc. */
int opc;
clean();
do {cout<<"\t\t1. Cambiar el simbolo de mina, * por defecto\n";
cout<<"\t\t2. Cambiar simbolo de bandera, ! por defecto\n";
cout<<"\t\t3. Camibar simbolo casilla sin descubrir, ? por defecto\n";
cout<<"\t\t4. Volver al menu principal\n";
cout<<"\t\tIngrese su opcion";
cin>>opc;}
while(opc!=1&&opc!=2&&opc!=3&&opc!=4);
return opc;
}
void ceros(int fila,int colum,int fil,int col) { /* Despeja las casillas que son cero */
int i=fila,j=colum,opc,x,y;
opc=casilla(fila,colum,fil,col);
switch(opc){
case 1:{
for(x=i;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 2:{
for(x=i-1;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 3:{
for(x=i;x>=i-1;x--){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 4:{
for(x=i;x>=i-1;x--){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 5:{
for(x=i;x>=i-1;x--){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 6:{
for(x=i-1;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 7:{
for(x=i;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 8:{
for(x=i;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 9:{
for(x=i-1;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}}}
int juego(int fil,int col){ /* Es la funcion principal dentro del juego, le pide la posicion
al usuario y retorna el resultado del juego */
int poscf,poscc,opc,i,j,cont=0,resultado;
do{
imprt(fil,col);
do{
cout<<"\t\tPor favor ingrese la posicion que quiere jugar:\n";
cout<<"\t\tFila (Aumentan verticalmente y empiezan en 0) N°: ";
cin>>poscf;}
while(poscf<0||poscf>(fil-1));
do{
cout<<"\t\tPor favor ingrese la posicion que quiere jugar:\n";
cout<<"\t\tColumna (Aumentan horizontalmente y empiezan en 0) N°: ";
cin>>poscc;}
while(poscc<0||poscc>(col-1));
if(tablero[poscf][poscf]==flag){
do{ cout<<"\t\t1. Quitar Bandera y Descubrir casilla\n";
cout<<"\t\t2. Quitar bandera\n";
cout<<"\t\tDigite su opcion: ";
cin>>opc;}
while(opc<1&&opc>2);
switch(opc){
case 1:{
if(auxiliar[poscf][poscc]==mine){
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine)tablero[i][j]=auxiliar[i][j];resultado=2;}}}
else{
tablero[poscf][poscc]=auxiliar[poscf][poscc];
if(auxiliar[poscf][poscc]=='0')ceros(poscc,poscf,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]!=mine){
if(tablero[i][j]!=auxiliar[i][j])cont++;}}}
if(cont==0)resultado=1;
}
break;}
case 2:{
tablero[poscf][poscc]='?';
minx=minx+1;}}}
else{
do{ cout<<"\t\t1. Descubrir casilla\n";
cout<<"\t\t2. Poner bandera\n";
cout<<"\t\tDigite su opcion: ";
cin>>opc;}
while(opc<1&&opc>2);
switch(opc){
case 1:{
if(auxiliar[poscf][poscc]==mine){
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine)tablero[i][j]=auxiliar[i][j];resultado=2;}}}
else{
cont=0;
tablero[poscf][poscc]=auxiliar[poscf][poscc];
if(auxiliar[poscf][poscc]=='0')ceros(poscf,poscc,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]!=mine){
if(tablero[i][j]!=auxiliar[i][j])cont++;}}}
if(cont==0)resultado=1;
}
break;}
case 2:{
tablero[poscf][poscc]=flag;
minx=minx-1;}}}}
while(resultado!=1&&resultado!=2);
return resultado;}
void verest(){ /* Procedimiento para ver las estadisticas del juego (5 mejores puntajes) */
char nombre[100][100],aux1[100];
int inicio,final,puntajes[100],aux;
int p,k,i=0;
escribir=fopen("C:\\puntajes.txt","a+");
leer=fopen("C:\\puntajes.txt","r");
inicio=ftell(leer);
fseek(leer,0L,SEEK_END);
final=ftell(leer);
fseek(leer,0L,SEEK_SET);
if(inicio==final)cout<<"\n\n\t\tNO HAY DATOS";
else {
while (!feof(leer)) {
fscanf(leer,"%s %d",&nombre[i],&puntajes[i]);i++;}
for (p=0;p<i-1;p++) {
for(k=0;k<i-1;k++) {
if(puntajes[k]>puntajes[k+1]) {
aux=puntajes[k];strcpy(aux1,nombre[k]);
puntajes[k]=puntajes[k+1];strcpy(nombre[k],nombre[k+1]);
puntajes[k+1]=aux;strcpy(nombre[k+1],aux1);}}}
if (i>5) i=5;
cout<<"\n\n\t\tLOS "<<i<<" MEJORES PUNTAJES SON: \n\n";
for (p=0;p<i;p++) {
printf("\t\t%s %d\n",nombre[p],puntajes[p]);}}
fclose(leer);
}
void ingrst(int pts){ /* Procedimiento para ingresar una entrada en el achivo de estadisticas */
char nombre[100];
cout<<"\t\tIngrese su nombre: ";
cin>>nombre;
escribir=fopen("C:\\puntajes.txt","a+");
fprintf(escribir,"\n%s %d",nombre,pts);
fclose(escribir);}
int main(){ /* Procedimiento principal */
int i,j,min=10,opc,opc2,fil=9,col=9,opc3,resultado,st;
inboard(fil,col);
imprt(fil,col);
do{opc=menu();
switch(opc){
case 1:{
minx=min;
inboard(fil,col);
minas(min,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine){}
else{
auxiliar[i][j]=contmin(i,j,fil,col);}}}
tiempi=clock();
resultado=juego(fil,col);
if (resultado==2){
clean();
header();
cout<<"\n\n\t\tHAS PERDIDO\n\n";
cout<<"\t\t";
for(j=0;j<col;j++)cout<<" _ _";
cout<<"\n\t\t";
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
cout<<"|_"<<tablero[i][j]<<"_";
}
cout<<"|\n\t\t";
}}
else if(resultado==1){
tiempf=(clock()-tiempi)/1000;
clean();
cout<<"\n\n\t\tGANADOR\n\n";
cout<<"\t\tsu puntuacion fue: "<<tiempf<<"!\n";
cout<<"\t\tDesea registrar su puntuacion ? 1.Si 2.No :";
cin>>st;
if(st==1){
clean();
ingrst(tiempf);}
}break;}
case 2:{
opc2=nivel();
switch(opc2){
case 1: fil=9;col=9;min=10;break;
case 2: fil=16;col=16;min=40;break;
case 3: fil=16;col=30;min=99;break;
}break;}
case 3:{
do{
opc3=config();
switch(opc3){
case 1:{
clean();
cout<<"\t\tIngrese el nuevo icono para la mina: ";cin>>mine;break;}
case 2: {
cout<<"\t\tIngrese el nuevo icono para la bandera: ";cin>>flag;break;}
case 3: {
cout<<"\t\tIngrese el nuevo icono para las casillas sin descubrir: ";cin>>cas;break;}}}
while(opc3!=4);break;}
case 4:{
clean();
verest();break;}
case 5:{
clean();
cout<<"\t\tHugo Giraldo cod 285588\n";
cout<<"\t\tUNIVERSIDAD NACIONAL DE COLOMBIA\n";
cout<<"\t\tTodos los derechos reservados\n";break;}
}}
while(opc!=6);}
:: Mr Cego ::
diciembre 20, 2008, 08:32
nah, mucho codigo, yo me acuerdo que lo hice en menos lineas... pero no se donde esta en mi PC :P :P
|ZeR0|
diciembre 20, 2008, 08:42
nah, mucho codigo, yo me acuerdo que lo hice en menos lineas... pero no se donde esta en mi PC :P :P
en todo caso disculpeme eminencia :cansado:
VIRUTERO_5
diciembre 22, 2008, 07:07
Mmmmm como que veo mucho codigo :|
SuerteX :)
Moon
diciembre 23, 2008, 10:24
Holaaaaaaaaaaaaaaaaa!!! Buen día para todos!!!! CÓMO LES VA????
Bueno... hace un buen rato que no paso por aquí, pero la uni ya me tenía Verde!!!
Me alegra que esl foro siga activo...
Saludos!!!! y FELICES FIESTAS!!!!
Moon
diciembre 23, 2008, 10:47
:PHola niño!
Te felicito por tu programa, se ve bien....
Te permiten el uso de variables globales? te lo digo porque yo tenía un prof que no las permitía, según él para que practicaramos el paso de parámetros a las funciones.
Si se te permite, declara (i, j, y, x) y todas las que puedas o vayas a usar en las funciones como globales, así te evitas el estar declarandolas dentro de las funciones. Solo debes inicializarlas según el uso que le vayas a dar.
Ah y recuerda que aunque se hace una conversión implicita, debes inicializar las variables según su tipo, porque en algunos casos puede que te guarden "basura" y aunque no lo creas a muchos les da problema sólo porque no se inicializó una variable, esto pasa mucho en C.
Supongo que sabías todo lo que te dije, pero quería recordártelo.
Para ser sincera no he usado C++ sino C, así que no sé cómo ha de funcionar.... Pero espero te sirva algo de lo que te dije :).
Y si puedes mejorar la apariencia gráfica, mucho merjor!!! trata de que el usuario use las flechas de dirección en vez de introducir filas y columas!
Saludos y felices fiestas!
))>•★HΛCO★•<((
diciembre 23, 2008, 01:13
Bueno aqui se los dejo.. la parte de los archivos no me funciona en windows vista.. quien sabe porque :(
//================================================== ==========================
// Name : Buscaminas.cpp
// Author : Hugo Giraldo
// Version :
// Copyright : Free
// Description : Juego buscaminas en c++
//================================================== ==========================
#include<iostream.h>
#include<cstdlib>
#include<math.h>
#include<time.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
const int COLMAX=30;
const int FILMAX=16;
char auxiliar[FILMAX][COLMAX],tablero[FILMAX][COLMAX],mine='*',flag='!',cas='?';
int minx=10,tiempi,tiempf;
FILE *escribir,*leer;
void header(){ /* Imprime el encabezado del tablero */
cout<<"\t\t¾¾¾¾¾¾¾ ¾¾` ¾@ %¾¾¾¾¾ `d¾¾¾¾¾ h@¾` ¾¾¾ ¾¾@;`@¾` ¾¾¾ ¾¾ ¾¾0 ¾¾¾¾¾) \n";
cout<<"\t\t¾¾ ` ¾@ ¾¾ ¾¾` @3 @¾ `¾¾`` ¾¾` ¾¾@¾ ¾¾¾_ ¾3¾; ¾¾ ¾¾¾¾ ¾¾ ¾¾¾¾ ¾¾ ¾¾ \n";
cout<<"\t\t¾¾66h¾¾ ¾¾ ¾¾ ¾¾¾@$ ¾¾ ¾¾ h@@ ¾¾¾¾ )¾`¾; ¾¾ ¾¾6@¾ ¾¾ %¾0 ¾¾ @¾¾¾¾ \n";
cout<<"\t\t¾¾))$¾¾@ ¾¾ ¾¾ `¾¾¾¾ ¾¾ V 2.0 ¨¾@ ¾¾ ¾¾ ¾¨¾@ ¾; ¾¾ ¾¾ )¾%¾¾ ¾¾ d¾' ` #¾¾¾_\n";
cout<<"\t\t¾¾ `¾¾` ¾¾` ¨@R ¾@ ¾¾ `¾¾ ` ¾¾ ¾¾¾¾¾¾¾@` ¾¾ ¾¾¾ ¾; ¾¾ ¾¾ 6@¾¾ d¾@¾¾¾¾¾ ;¾@ )¾¾\n";
cout<<"\t\t¾¾¾¾¾¾@@ #¾¾@@¾¾` `@@@¾@¾@` `¾¾¾@¾¾; ¾* `¾¾` ¾¾ @¾¾ @;`¾¾ ¾¾ ¾¾¾ ¾¾ `@¾d ¾¾¾¾¾¾@`\n";
cout<<"\n";
}
void clean(){/* Procedimiento para "limpiar" pantalla */
int i;
for(i=0;i<25;i++)cout<<"\n";}
int casilla(int f,int c,int fil,int col){ /* Determina la posicion de una casilla determinada para usarse en otras funciones */
if(f==0){
if(c==0)return 1;
if(c==col-1)return 7;
else return 8;}
if(f==fil-1){
if(c==0)return 3;
if(c==col-1)return 5;
else return 4;}
else{
if(c==0)return 2;
if(c==col-1)return 6;
else return 9;}}
char contmin(int i,int j,int fil,int col){ /* Cuenta las minas cercanas a una casilla */
int caso,x,y;
char suma='0';
caso=casilla(i,j,fil,col);
switch(caso){
case 1:{
for(x=i;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 2:{
for(x=i-1;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 3:{
for(x=i;x>=i-1;x--){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 4:{
for(x=i;x>=i-1;x--){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 5:{
for(x=i;x>=i-1;x--){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 6:{
for(x=i-1;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 7:{
for(x=i;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 8:{
for(x=i;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
case 9:{
for(x=i-1;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if(auxiliar[x][y]==mine)suma=suma+1;}}}break;}
}
return suma;
}
void minas(int m,int f,int c){ /* Distribuye las minas aleatoreamente */
int i,x,y;
srand((unsigned)time(0));
for(i=1;i<=m;i++){
x= (rand()%f);
y= (rand()%c);
if(auxiliar[x][y]==mine){
x=(rand()%f);
y=(rand()%c);
i--;}
else{
auxiliar[x][y]=mine;}}
}
int menu(){ /* Imprime el menu y recibe datos del usuario y los retorna al procedimiento principal */
int opc;
cout<<"\n\n\n \t\tMENU DE OPCIONES: \n\n";
cout<<"\t\t1. Nuevo Juego\n";
cout<<"\t\t2. Elegir nivel de juego\n";
cout<<"\t\t3. Configuraciones\n";
cout<<"\t\t4. Ver estadisticas\n";
cout<<"\t\t5. Creditos\n";
cout<<"\t\t6. Salir\n";
cout<<"\t\tIngrese su opcion: ";
cin>>opc;
while (opc<1&&opc>6){
cout<<"\n\n\n \t\tMENU DE OPCIONES: \n\n";
cout<<"\t\t1. Nuevo Juego\n";
cout<<"\t\t2. Elegir nivel de juego\n";
cout<<"\t\t3. Configuraciones\n";
cout<<"\t\t4. Ver estadisticas\n";
cout<<"\t\t5. Creditos\n";
cout<<"\t\t6. Salir\n";
cout<<"\t\tIngrese su opcion: ";
cin>>opc;
}
return opc;
}
int nivel(){ /* Imprime los niveles y retorna la opcion escogida por el usuario */
int opc;
clean();
cout<<"\t\t1. Nivel facil: 9x9 y 10 Minas\n";
cout<<"\t\t2. Nivel normal: 16x16 y 40 minas\n";
cout<<"\t\t3. Nivel Legendario: 16x30 y 99 minas\n";
cout<<"\t\tPor favor ingrese su opcion: ";
cin>>opc;
return opc;
}
void inboard(int fil, int col){ /* Inicializa el tablero para cada juego nuevo */
int i,j;
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
tablero[i][j]=cas;}}}
void imprt(int fil, int col){ /* Imprime el tablero de juego, el tiempo y el numero de minas */
int i,j;
clean();
header();
tiempf=(clock()-tiempi)/1000;
cout<<"\t\tMinas ["<<minx<<"]\tTiempo ["<<tiempf<<"]\n";
cout<<"\t\t ";
for(j=0;j<col;j++)cout<<" "<<j<<" ";
cout<<"\n\t\t ";
for(j=0;j<col;j++)cout<<" _ _";
cout<<"\n\t\t";
for(i=0;i<fil;i++){
cout<<i<<" ";
for(j=0;j<col;j++){
cout<<"|_"<<tablero[i][j]<<"_";
}
cout<<"|\n\t\t";
}
}
int config(){ /* Entra al panel de configuraciones, cambiar simbolos etc. */
int opc;
clean();
do {cout<<"\t\t1. Cambiar el simbolo de mina, * por defecto\n";
cout<<"\t\t2. Cambiar simbolo de bandera, ! por defecto\n";
cout<<"\t\t3. Camibar simbolo casilla sin descubrir, ? por defecto\n";
cout<<"\t\t4. Volver al menu principal\n";
cout<<"\t\tIngrese su opcion";
cin>>opc;}
while(opc!=1&&opc!=2&&opc!=3&&opc!=4);
return opc;
}
void ceros(int fila,int colum,int fil,int col) { /* Despeja las casillas que son cero */
int i=fila,j=colum,opc,x,y;
opc=casilla(fila,colum,fil,col);
switch(opc){
case 1:{
for(x=i;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 2:{
for(x=i-1;x<=i+1;x++){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 3:{
for(x=i;x>=i-1;x--){
for(y=j;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 4:{
for(x=i;x>=i-1;x--){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 5:{
for(x=i;x>=i-1;x--){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 6:{
for(x=i-1;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 7:{
for(x=i;x<=i+1;x++){
for(y=j;y>=j-1;y--){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 8:{
for(x=i;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}
case 9:{
for(x=i-1;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
if(x==i&&y==j){}
else {
if (auxiliar[x][y] == '0') {
auxiliar[x][y] = 'O';
if(tablero[x][y]!=flag){
tablero[x][y] = auxiliar[i][j];
ceros(x,y,fil,col);}}
else {
if(tablero[x][y]!=flag)tablero[x][y]=auxiliar[x][y];}}}}break;}}}
int juego(int fil,int col){ /* Es la funcion principal dentro del juego, le pide la posicion
al usuario y retorna el resultado del juego */
int poscf,poscc,opc,i,j,cont=0,resultado;
do{
imprt(fil,col);
do{
cout<<"\t\tPor favor ingrese la posicion que quiere jugar:\n";
cout<<"\t\tFila (Aumentan verticalmente y empiezan en 0) N°: ";
cin>>poscf;}
while(poscf<0||poscf>(fil-1));
do{
cout<<"\t\tPor favor ingrese la posicion que quiere jugar:\n";
cout<<"\t\tColumna (Aumentan horizontalmente y empiezan en 0) N°: ";
cin>>poscc;}
while(poscc<0||poscc>(col-1));
if(tablero[poscf][poscf]==flag){
do{ cout<<"\t\t1. Quitar Bandera y Descubrir casilla\n";
cout<<"\t\t2. Quitar bandera\n";
cout<<"\t\tDigite su opcion: ";
cin>>opc;}
while(opc<1&&opc>2);
switch(opc){
case 1:{
if(auxiliar[poscf][poscc]==mine){
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine)tablero[i][j]=auxiliar[i][j];resultado=2;}}}
else{
tablero[poscf][poscc]=auxiliar[poscf][poscc];
if(auxiliar[poscf][poscc]=='0')ceros(poscc,poscf,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]!=mine){
if(tablero[i][j]!=auxiliar[i][j])cont++;}}}
if(cont==0)resultado=1;
}
break;}
case 2:{
tablero[poscf][poscc]='?';
minx=minx+1;}}}
else{
do{ cout<<"\t\t1. Descubrir casilla\n";
cout<<"\t\t2. Poner bandera\n";
cout<<"\t\tDigite su opcion: ";
cin>>opc;}
while(opc<1&&opc>2);
switch(opc){
case 1:{
if(auxiliar[poscf][poscc]==mine){
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine)tablero[i][j]=auxiliar[i][j];resultado=2;}}}
else{
cont=0;
tablero[poscf][poscc]=auxiliar[poscf][poscc];
if(auxiliar[poscf][poscc]=='0')ceros(poscf,poscc,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]!=mine){
if(tablero[i][j]!=auxiliar[i][j])cont++;}}}
if(cont==0)resultado=1;
}
break;}
case 2:{
tablero[poscf][poscc]=flag;
minx=minx-1;}}}}
while(resultado!=1&&resultado!=2);
return resultado;}
void verest(){ /* Procedimiento para ver las estadisticas del juego (5 mejores puntajes) */
char nombre[100][100],aux1[100];
int inicio,final,puntajes[100],aux;
int p,k,i=0;
escribir=fopen("C:\\puntajes.txt","a+");
leer=fopen("C:\\puntajes.txt","r");
inicio=ftell(leer);
fseek(leer,0L,SEEK_END);
final=ftell(leer);
fseek(leer,0L,SEEK_SET);
if(inicio==final)cout<<"\n\n\t\tNO HAY DATOS";
else {
while (!feof(leer)) {
fscanf(leer,"%s %d",&nombre[i],&puntajes[i]);i++;}
for (p=0;p<i-1;p++) {
for(k=0;k<i-1;k++) {
if(puntajes[k]>puntajes[k+1]) {
aux=puntajes[k];strcpy(aux1,nombre[k]);
puntajes[k]=puntajes[k+1];strcpy(nombre[k],nombre[k+1]);
puntajes[k+1]=aux;strcpy(nombre[k+1],aux1);}}}
if (i>5) i=5;
cout<<"\n\n\t\tLOS "<<i<<" MEJORES PUNTAJES SON: \n\n";
for (p=0;p<i;p++) {
printf("\t\t%s %d\n",nombre[p],puntajes[p]);}}
fclose(leer);
}
void ingrst(int pts){ /* Procedimiento para ingresar una entrada en el achivo de estadisticas */
char nombre[100];
cout<<"\t\tIngrese su nombre: ";
cin>>nombre;
escribir=fopen("C:\\puntajes.txt","a+");
fprintf(escribir,"\n%s %d",nombre,pts);
fclose(escribir);}
int main(){ /* Procedimiento principal */
int i,j,min=10,opc,opc2,fil=9,col=9,opc3,resultado,st;
inboard(fil,col);
imprt(fil,col);
do{opc=menu();
switch(opc){
case 1:{
minx=min;
inboard(fil,col);
minas(min,fil,col);
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
if(auxiliar[i][j]==mine){}
else{
auxiliar[i][j]=contmin(i,j,fil,col);}}}
tiempi=clock();
resultado=juego(fil,col);
if (resultado==2){
clean();
header();
cout<<"\n\n\t\tHAS PERDIDO\n\n";
cout<<"\t\t";
for(j=0;j<col;j++)cout<<" _ _";
cout<<"\n\t\t";
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
cout<<"|_"<<tablero[i][j]<<"_";
}
cout<<"|\n\t\t";
}}
else if(resultado==1){
tiempf=(clock()-tiempi)/1000;
clean();
cout<<"\n\n\t\tGANADOR\n\n";
cout<<"\t\tsu puntuacion fue: "<<tiempf<<"!\n";
cout<<"\t\tDesea registrar su puntuacion ? 1.Si 2.No :";
cin>>st;
if(st==1){
clean();
ingrst(tiempf);}
}break;}
case 2:{
opc2=nivel();
switch(opc2){
case 1: fil=9;col=9;min=10;break;
case 2: fil=16;col=16;min=40;break;
case 3: fil=16;col=30;min=99;break;
}break;}
case 3:{
do{
opc3=config();
switch(opc3){
case 1:{
clean();
cout<<"\t\tIngrese el nuevo icono para la mina: ";cin>>mine;break;}
case 2: {
cout<<"\t\tIngrese el nuevo icono para la bandera: ";cin>>flag;break;}
case 3: {
cout<<"\t\tIngrese el nuevo icono para las casillas sin descubrir: ";cin>>cas;break;}}}
while(opc3!=4);break;}
case 4:{
clean();
verest();break;}
case 5:{
clean();
cout<<"\t\tHugo Giraldo cod 285588\n";
cout<<"\t\tUNIVERSIDAD NACIONAL DE COLOMBIA\n";
cout<<"\t\tTodos los derechos reservados\n";break;}
}}
while(opc!=6);}
Bastante codigo pero elegante, muy ordenado y bacanas las secuencias.........bien parcero ya va progresando......
VIRUTERO_5
diciembre 23, 2008, 02:21
:PHola niño!
Te felicito por tu programa, se ve bien....
Te permiten el uso de variables globales? te lo digo porque yo tenía un prof que no las permitía, según él para que practicaramos el paso de parámetros a las funciones.
Si se te permite, declara (i, j, y, x) y todas las que puedas o vayas a usar en las funciones como globales, así te evitas el estar declarandolas dentro de las funciones. Solo debes inicializarlas según el uso que le vayas a dar.
Ah y recuerda que aunque se hace una conversión implicita, debes inicializar las variables según su tipo, porque en algunos casos puede que te guarden "basura" y aunque no lo creas a muchos les da problema sólo porque no se inicializó una variable, esto pasa mucho en C.
Supongo que sabías todo lo que te dije, pero quería recordártelo.
Para ser sincera no he usado C++ sino C, así que no sé cómo ha de funcionar.... Pero espero te sirva algo de lo que te dije :).
Y si puedes mejorar la apariencia gráfica, mucho merjor!!! trata de que el usuario use las flechas de dirección en vez de introducir filas y columas!
Saludos y felices fiestas!
Sip, tienes toda la razon... ahhh y la diferencia de C y C++ se nota realmente cuando trabajas con objetos ;).... y con lo relaciondo a los parametros ahorran mucho tiempo... le pasas el resultado de uno a otro y ahi queda todo listo :D
PD: |ZeR0|, subalo pa probalo en vista ;)
SuerteX :)
Moon
diciembre 23, 2008, 05:56
Hola Virutero! Cómo te va?
Siempre dispuesto a ayudar! Eso es genial.
Felices fiestas!!!:P
Ya no programo en C. En la uni se está usando Java. Para ser sincera no sé absolutamente nada de OOP. Supongo que me costará tiempo cambiar de paradigma :\
VIRUTERO_5
diciembre 23, 2008, 07:15
Hola Virutero! Cómo te va?
Siempre dispuesto a ayudar! Eso es genial.
Felices fiestas!!!:P
Ya no programo en C. En la uni se está usando Java. Para ser sincera no sé absolutamente nada de OOP. Supongo que me costará tiempo cambiar de paradigma :\
Hasta el momento me va bien preciosa.... tnx :)
Colaboro porque se lo dificil que es estar en apuro y derrepente encuentras alguien que te de una mano... eso es algo que parece un milagro :P
Java es muyyy similar a C++
En estos momentos estoy aprendiendo .NET con un video tutorial..... esta fenomenal y por fin estoy comprendiendo lo que es de verdad POO >D .....
Felices fiestas a todos, y ahora que estoy de vakas de la uni y del trabajo creo que es tiempo de desestresarme un poco :D solo lecturitas de VB.NET, forear un poco, musikita, leer unos libritos y JUGAR !!!! :jaguar:
SuerteX :)
UAC_Likibuay
diciembre 24, 2008, 11:15
Excelente.. que rico leerlos de nuevo.. yo de vacaciones ya en Colombia gracias a Dios..
jejeje mucho codigo? jeje eso es normal, si no preguntenme a mi al inicio de la carrera, con el pasar del tiempo vas a ver q todo lo vas a hacer en menos codigo.
saludos a tod@s y una Feliz Navidad.
The RockeR
enero 2, 2009, 10:39
Feliz año!!! que la pasen bien y que se cumplan sus buenos deseos!!
Por favor alguien que me ayude, estoy haciendo mi primer proyecto mas o menos serio y tengo una duda, ¿como puede hacer un bucle que vuelva a comenzar el programa desde determinada linea? por ejemplo que cuando llegue al final me pregunte que hacer. Si le doy a la tecla "n" cierra pero lo que no se hacer es un while para que corra el programa otra vez pero sin dar la bienvenida de nuevo.
Gracias de antemano.
|ZeR0|
enero 2, 2009, 10:47
Pues yo hice eso con un do while. Pero ud no quiere que le salga la bienvenida otra vez, en ese caso ponga la bienvenida antes del while.
VIRUTERO_5
enero 2, 2009, 11:50
Lo puede hacer con un swtich ;)
SuerteX :) & Feliz año a todos :)
UAC-Guille
enero 2, 2009, 01:05
Si no quieres que muestre la bienvenida nuevamente entonces el mensaje de bienvenida debe estar antes del while(), la estructura del programa puede ser algo como esto:
(...)
main(){
bool salir=false;
char opcion;
(...)
cout<<"Mensaje de bienvenida";
while(salir==false)
{
(...)
cout<<"Presione cualquier tecla para continuar o n para salir";
cin>>opcion;
if(opcion=='n') salir = true;
}
(...)
VIRUTERO_5
enero 2, 2009, 06:09
Mmmm... ahora que leo bien lo que dice el man ... el quiere que el suba hasta una determinada linea.. :rolleyes: puedes ser mas especifico?? porque con solo eso te podriamos dar cosas como if, while-do
SuerteX :)
The RockeR
enero 3, 2009, 01:38
Ya lo he hecho con while(), pero el do-while no me funciono, me dio un error de que la variable no estaba declarada:
(...)
cout << "Bienvenida";
do {
int var1;
cout << var1;
string opcion;
cin >> opcion;
}
while( opcion == "s")
(...)
Y al compilar da un error de que la variable opcion no esta declarada.
Gracias por la ayuda :D
UAC-Guille
enero 3, 2009, 01:53
Declara la variable opcion fuera del do
(...)
string opcion;
cout << "Bienvenida";
do {
int var1;
cout << var1;
cin >> opcion;
}
while( opcion == "s")
The RockeR
enero 3, 2009, 02:27
gracias guille!
y ya para terminar por el dia de hoy, me pueden explicar algo acerca de switch. Disculpen las molestias.
Gracias.
:: Mr Cego ::
enero 3, 2009, 09:23
mire: http://www.programacionfacil.com/cpp:instruccion_switch
salu2.
VIRUTERO_5
enero 3, 2009, 09:35
gracias guille!
y ya para terminar por el dia de hoy, me pueden explicar algo acerca de switch. Disculpen las molestias.
Gracias.
Es bien facil, ahi el man cego le dejo algo, aqui en la pagina 35 ahi algo (:muerto: tengo que actualizarlo para hacerlo mas completo) o tambien puede leer esto de C.Conclase (http://c.conclase.net/curso/index.php?cap=005c)
SuerteX :)
The RockeR
enero 4, 2009, 08:45
Es bien facil, ahi el man cego le dejo algo, aqui en la pagina 35 ahi algo (:muerto: tengo que actualizarlo para hacerlo mas completo) o tambien puede leer esto de C.Conclase (http://c.conclase.net/curso/index.php?cap=005c)
SuerteX :)
Loco tu si que eres madrugador!!
Aqui desde las 2 o las 3 de la mañana!!
:o
VIRUTERO_5
enero 4, 2009, 12:42
Loco tu si que eres madrugador!!
Aqui desde las 2 o las 3 de la mañana!!
:o
Vivo en Rep. Dom., :P aqui eran mas o menos las 9:00 AM :P
SuerteX :)
The RockeR
enero 4, 2009, 03:12
Yo tambien vivo en R.D. y a las 8:30 decia que habia sido dejado hace 11 horas :S
Ya vi lo del switch. He completado mi primer objetivo: calculadora simple para consola :)
VIRUTERO_5
enero 5, 2009, 08:21
Yo tambien vivo en R.D. y a las 8:30 decia que habia sido dejado hace 11 horas :S
Ya vi lo del switch. He completado mi primer objetivo: calculadora simple para consola :)
XD ... yo soy de SJ .. pero ahora vivo en SD... jejejejeje la vieja calc XD ... hice una cientifica para un proyecto de la uni :muerto:
Tal vez un dia de estos la mejore y la haga un poco mas afinada
SuerteX :)
The RockeR
enero 5, 2009, 08:57
XD ... yo soy de SJ .. pero ahora vivo en SD... jejejejeje la vieja calc XD ... hice una cientifica para un proyecto de la uni :muerto:
Tal vez un dia de estos la mejore y la haga un poco mas afinada
SuerteX :)
Yo soy de SD y vivo en SJ, que casualidad no?
y no te rias de mi calculadora, yo apenas estoy en segundo de bachiller y en el CPGG lo que dan en informatica es Word, Excel y PowerPoint... con Procesadores a AMD Duron a 1.2Ghz, 128Mb de Ram... Es una pesadilla!!! por lo menos me pongo a inventar cosas en visual basic aunque ahora que estoy aprendiendo C/C++ ya Basic me parece algo totalmente... Despues de C/C++ quisiera aprender Delphi para aplicaciones de apuro y Assembler :D
VIRUTERO_5
enero 5, 2009, 12:09
Yo soy de SD y vivo en SJ, que casualidad no?
y no te rias de mi calculadora, yo apenas estoy en segundo de bachiller y en el CPGG lo que dan en informatica es Word, Excel y PowerPoint... con Procesadores a AMD Duron a 1.2Ghz, 128Mb de Ram... Es una pesadilla!!! por lo menos me pongo a inventar cosas en visual basic aunque ahora que estoy aprendiendo C/C++ ya Basic me parece algo totalmente... Despues de C/C++ quisiera aprender Delphi para aplicaciones de apuro y Assembler :D
XD... por lo menos estas bien, yo queria informatica en el politecnico y me mandaron para electronica ... pero como quiera me sirve mas de lo que creia >D
SuerteX :)
(elsita)
enero 5, 2009, 01:38
Este le puede ayudar ;)
http://www.intercambiosvirtuales.org/2008/03/como-programar-en-cc-deitel-prentice.html
Edit:
Señores, tengo una propuesta para quienes quieran algun tipo de motivacion o inspiracion para aprender C++ ..... si quieren hacemos una lista para ir leyendo los capitulos de este libro e ir aprendiendo C++ adecuadamente y compartiendo conocimiento ....
Estamos hablando de que serian unas 40 a 80 paginas en la semana, no se si lo podriamos hacer de 2 o 3 capitulos por semana ... y asi lo acabariamos rapido .... otra cosa seria que si lees algo y no lo entiendes y otros de los del equipo si comprende bien se puede explicar para todos ;)
¿Que opinan? :rolleyes:
SuerteX :)
Hola que huboles aqui estoy de nuevo ,,,,,,Mira que super idea ehhh....si me parece requete bien ,,,,yop me apunto ....Me avisas cualquier cosita eh.......GREETINGS & BLESSINGS
xjuanch0x
enero 7, 2009, 07:51
Bueno ....como hago para que un programa (ejecutable) se ejecute solo sin nesecidad de intervencion del hombre...esto es en Visual C++.....es que trato de hacer que un .exe selecione todos los procesos del sistema (ya esto lo hice) y cree un archivo .bat (ya lo hize) y pare los procesos que se ejecuta segun lo que obtiene del sistema (ya lo hice) ...pero nesecito que se ejecute solo...sin nesecidad de darle doble click ni nada...al que sepa hacer esto en c++ que me avise por favor....thank
VIRUTERO_5
enero 8, 2009, 10:55
Bueno ....como hago para que un programa (ejecutable) se ejecute solo sin nesecidad de intervencion del hombre...esto es en Visual C++.....es que trato de hacer que un .exe selecione todos los procesos del sistema (ya esto lo hice) y cree un archivo .bat (ya lo hize) y pare los procesos que se ejecuta segun lo que obtiene del sistema (ya lo hice) ...pero nesecito que se ejecute solo...sin nesecidad de darle doble click ni nada...al que sepa hacer esto en c++ que me avise por favor....thank
Pongalo que cargue con el sistema .. no es mas facil asi?? :rolleyes: .. o programele una tarea para que se inicie :P
Por cierto... sigue en pie lo de leer el libro de C++ entre todos para aprender =) ... me avisan los que se apuntan
SuerteX :)
vBulletin®, Copyright ©2000-2009, Jelsoft Enterprises Ltd.