Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-10-2007
yessika19 yessika19 is offline
Miembro
 
Registrado: oct 2007
Posts: 17
Poder: 0
yessika19 Va por buen camino
cleanScreen,letra aleatoria

Hola!

quería saber si alguien me puede decir si en delphi existe una función parecida a la funcion de pascal cleanScreen, pues lo que quiero es que llegue un momento en el que se limpie la pantalla que se presenta al usuario de mi programa, ¿se puede hacer? ¿como se usa?

además queria saber si hay alguna manera de elegir de forma aleatoria una letra del abecedario, pues lo unico que se me ocurre es usar random y despues pasarlo al codigo ascii



espero que alquien pueda ayudarme

gracias!
Responder Con Cita
  #2  
Antiguo 30-10-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
A lo primero no tengo ni idea a lo que te refieres , y a lo segundo es muy facil.
Acabo de hacer esta funcion, pruebala haber que tal

Código Delphi [-]
uses Math;
 
function RandomWord (cifras: integer): string;
const
Abc= 'abcdefghijklmnñopqrstuvwxyz';
var
iCount, u, i: integer;
begin
result:=emptystr;
iCount:=length(Abc) +1;
Randomize;
For i:=1 to cifras do begin
u:= RandomRange(1,iCount);
result:= result + abc[u];
end;
end;

Un ejemplo de llamada...

Código Delphi [-]
showmessage(RandomWord(3));
showmessage(RandomWord(1));

Salu2
Responder Con Cita
  #3  
Antiguo 30-10-2007
yessika19 yessika19 is offline
Miembro
 
Registrado: oct 2007
Posts: 17
Poder: 0
yessika19 Va por buen camino
gracias!!!! voy a probarlo a ver que tal me va
XD XD a lo que me refiero con limpiar la pantalla: es que tengo que hacer un programa donde el usuario vea un tablero y que se le pida una opcion del menu, en el momento en que el usuario elige su opcion y da a ENTER se borra en la pantalla lo que habia escrito y aparece un tablero nuevo

gracias por contestar!
Responder Con Cita
  #4  
Antiguo 30-10-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
y con que componentes realizas ese tablero??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 31-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola yessika19,
La duda que mi invade es acerca de lo que comentas sobre la "limpieza". Delphi permite programar en modo consola... ¿Tu estás trabajando en ese modo? Si es así creería (no estoy seguro) que sigue operable el mismo comando que en Pascal: clrscr

Delphi es más para un producto visual... Por lo que también mi invade la duda de que si estás empleando el entorno gráfico ¿De que modo estás realizando el tablero?

Si nos explicas mejor el problema podemos serte de mayor ayuda.

Con respecto a tu segunda duda:
Se puede, otro ejemplo parecido al que te ofrece Khronos y si consideramos que deseas sólo UNA letra es este:

Código Delphi [-]
function RandomChar: char;
const
ABC = 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZ';
var Pos: integer;
begin
  Pos := Random(Length(ABC)) + 1;
  result := ABC[Pos];
end;
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 31-10-2007
yessika19 yessika19 is offline
Miembro
 
Registrado: oct 2007
Posts: 17
Poder: 0
yessika19 Va por buen camino
gracias a todos por contestar y perdon por tardar

en el programa no estoy usando ningun tipo de grafico pues hasta ahora estamos empezando a usar delphi, asi es que hago el tablero con un array de 10x10. el problema es que las filas y columnas estan nombradas con caracteres y tengo que elegir una fila y una columna aleatoriamente, por eso queria saber si puedo elegir una letra aleatoriamente en vez de un número.

con lo de limpiar la pantalla, lo que deseo es que, uando el usuario elija una coordenada y de a ENTER desaparezca el tablero que tiene y aparezca otro señalando la coordenada que ha elegido (es para implementarlo a un juego de tocar y hundir barcos),por lo que queria saber si puedo usar una biblioteca de delphi y llamar a una funcion.

gracias!
Responder Con Cita
  #7  
Antiguo 31-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola yessika19,

A ver si me explico correctamente: Delphi puede usarce para escribir programas en modo consola por tanto no se trata de un entorno gráfico.
Pero lo más habitual es usar Delphi para crear aplicaciones Win32 aprovechando el entorno gráfico que ofrece Windows. Es decir: botones, combos, listas, edits, etc.

El hecho de que haces la pregunta por Delphi y la comparas con Pascal me deja intranquilo. En fin la pregunta que debo hacerte sigue en pie: ¿Estas trabajando en un aplicativo consola? ¿O en un programa de entorno gráfico?
Cuando uno quiere hacer algo "vistoso" en pascal (y en el modo consola) tiene que ingeniarselas con milones de comandos Goto y Writeln para "imprimir" caracteres para conseguir efectos de líneas, bordes, etc. Y de vez en cuando un clrscr para limpiar la pantalla y seguir "escribiendo". En una aplicación Win32 uno emplea ventanas, timages, botones, etc y el significado que toma la palabra "limpieza" es otro.

Me pareces bien que hayas detallado el aspecto lógico de tu tablero. Pero por la manera en que describes tu problema puedo imaginarme e intuir que no es alli donde está el error sino en la manera de como representar el tablero.

Dices que no estás usando ningún gráfico. Entonces... ¿De que manera estás mostrando en pantalla el tablero? Dependiendo de como estás representando el tablero en pantalla será necesario diseñar e implementar el algoritmo adecuado para hacer la "limpieza".

Si nos muestras parte del código tal vez podamos serte de ayuda.
Por otro lado, si buscas en los foros bajo las palabras claves "batalla naval" vas a encontrar al menos un hilo, porque en al menos una oportunidad se trató el tema.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 31-10-2007 a las 14:23:58.
Responder Con Cita
  #8  
Antiguo 31-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Delphius, por tu paciencia te mereces un altar .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 31-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Lepe Ver Mensaje
Delphius, por tu paciencia te mereces un altar .

Saludos
No puedo darme el lujo de perder los estribos, enojarme y estresarme. Estoy enfermo desde hace tres días. Comenzó con un dolor intestinal y ahora con dolor punzante cerca del hígado. Como si me hubieran dado un golpe fuerte de costado. Con decirte que cuando respiro profundamente siento que me "tiran" los músculos en la zona. Debería ir a un hospital a revisarme, lo más probable es que lo haga hoy a la tarde

Y bueno... como no quiero estar portandome mal, y ponerme peor, debo tomar a cada cosa con la mejor paciencia posible.

Saludos,
PD: Supongo que se trata de un altar de oro...
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 31-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lamento oírte decir eso , espero que no sea nada.

¡¿Mira que ponerte malo antes de un puente?! no tienes perdón!!

Saludos y cuídate.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 31-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Lepe Ver Mensaje
Lamento oírte decir eso , espero que no sea nada.
Saludos y cuídate.
Muchas gracias por alentarme.
Yo también espero que no sea nada. Lo más seguro es que se deba a que vengo llevando una dieta desde hace una poco más de una semana y el hambre como la falta de costumbre hace que los músculos y los organos se relajen, compriman.

Ahora no estoy sintiendo nada (y eso que no tomé medicamentos hoy)... bueno un poquito. A lo mejor se me está pasando... Si no se me va voy al médico. Acabo de darme cuenta de que hoy no puedo ir a hospital debo ser niñero y esperar a que mi viejo vuelva del control médico (la "cosa" también viene de familia).

Bueno. Volviendo al tema original: yessika19, ya sabes estamos aqui para ayudarte. Preferiría que aportes mayores detalles (y códio en lo posible) para que la solución se ajuste a tu problema. Ya que se trata de algo muy particular.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 01-11-2007
yessika19 yessika19 is offline
Miembro
 
Registrado: oct 2007
Posts: 17
Poder: 0
yessika19 Va por buen camino
hola!!!

siento no haber respondido antes. delphius espero que te encuentres mejor.

respecto al tablero, por lo que he podido leer en libros se que delphi es más para usar su parte grafica, pero por el momento estamos empezando a usarle, por lo que lo unico que uso son bibliotecas y unidades. Para enseñar el trablero tengo que usar una matriz, la cual es del tipo TTablero que me viene dado en una unidad:

INTERFACE


type TTablero= array ['0'..'9','A'..'J'] of char;
{Almacena el escenario del juego de los barquitos}

{Símbolos:
. : agua no disparada.
o : agua ya disparada.
B : trozo de barco intacto.
x : trozo de barco tocado.
X : trozo de barco hundido.}


type TCasilla= record {Hace referencia a una casilla del tablero}
Fila: '0'..'9'; { indica la fila desde '0' para la fila 1 hasta '9' para la fila 10}
Columna: 'A'..'J'; { indica la columna}
end;


IMPLEMENTATION

END.

y lo que me piden es que, cuando el usuario "dispare" (para ello debe introducir las coordenadas del punto donde quiere disparar) se borre de la pantalla el tablero inicial y aparezca el tablero indicando donde ha disparado, por eso lo comparaba con la funcion que conozco en pascal.

gracias por el interes

Última edición por yessika19 fecha: 01-11-2007 a las 22:44:31.
Responder Con Cita
  #13  
Antiguo 02-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hola jessika19, en futuras intervenciones, te sugiero que te expliques tal y como has hecho en el mensaje anterior, dando detalles de lo que necesitas hacer.

12 mensajes y 2 días "gastados" en sacarte la información. Ten en cuenta que tú eres la interesada en una solución, por tanto si te explicas bien, podrías haber obtenido respuesta desde el primer mensaje .

En cuanto al problema, bueno, el enunciado no especifica qué clase de interfaz se requiere (Un form o ventana ya es una interfaz gráfica), no especifica que emules un matamarcianitos de los videojuegos.

Existe un control llamado StringGrid en la paleta de delphi (Standard, aditional o Win32) que es una hoja de excel, cada celda es de tipo String, por tanto, te permite sobreescribir directamente el texto mostrado sin tener que borrar previamente nada. Además su uso se asemeja bastante al Array TTablero, por lo que su implementación puede ser muy simple.

Código Delphi [-]
  StringGrid1.Cells[Columna, Fila] := '.'; 

  // y ahora cambiamos el texto para indicar que el usuario disparó:

  StringGrid1.Cells[Columna, Fila] := 'o';

Espero sea lo que buscas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 04-11-2007
yessika19 yessika19 is offline
Miembro
 
Registrado: oct 2007
Posts: 17
Poder: 0
yessika19 Va por buen camino
gracias!!! ya he entendido unpoco mejor como va esto

Última edición por yessika19 fecha: 04-11-2007 a las 22:17:06.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Imagen aleatoria en Fastreport jegrebahe1 Impresión 0 10-06-2007 01:04:40
Letra en un cuadrado Walcasar Gráficos 5 20-10-2006 20:15:10
La PC se Reseta sola y de manera aleatoria Enan0 Varios 5 25-04-2006 17:34:21
Hacer que me saque 50 números de forma aleatoria james_dean Varios 4 16-05-2005 22:20:15
Pulsar una letra en un DBgrid y que vaya al campo que empiece por esa letra Nbull SQL 8 16-12-2004 17:58:01


La franja horaria es GMT +2. Ahora son las 07:01:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi