Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   El Juego de la X y el 0(Cero). (https://www.clubdelphi.com/foros/showthread.php?t=46431)

redimido 31-07-2007 22:09:14

El Juego de la X y el 0(Cero).
 
Hola a todos, alguien podría hacer el favor de facilitar me un ejemplo del famoso juego de x y o(cero), bueno no soy nada experto en esto de delphi y me asignaron este trabajo de hacer este juego y no he encontrado nada que me ayude y no se que hacer si alguien me pudiera dar una mano se lo agradecería mucho. Estoy utilizando Delphi-7.

Es algo como esto:

0 x 0 x 0 x 0 x x
x 0 0 0 x 0 0 x x
0 x x 0 x x 0 x 0


Gracias de antemano. :confused:

Caral 31-07-2007 22:18:01

Hola
Pues yo diria que lo mas sencillo seria usar Edits y validar si hay tres X o 0 en linia o en cruz.
Saludos

eduarcol 31-07-2007 22:19:01

[IRONIA]
Alguna otra solicitud??
[/IRONIA]

Ahora si hablando en serio porq no intentas y aqui te aclaramos las dudas mas precisas que puedas tener

redimido 31-07-2007 22:21:53

Juego
 
Me podrías facilitar algún ejemplo por favor, porque la verdad de delphi no mucho que digamos.:o

0 x 0
x 0 0
x x 0

Además deber decir quien ganó, si el de la X o el del 0.:(

redimido 31-07-2007 22:23:31

Juego
 
Me podrías facilitar algún ejemplo por favor, porque la verdad de delphi no se mucho que digamos.:o

0 x 0
x 0 0
x x 0

Además deber decir quien ganó, si el de la X o el del 0.:(

redimido 31-07-2007 22:30:26

Juego
 
De acuerdo trataré de realizarlo, me han dicho que aprender delphi es fácil, pero que conste que soy toda una inexperta, colocaré los resultados aquí más adelante...:rolleyes:

eduarcol 31-07-2007 22:32:40

Cita:

Empezado por redimido
De acuerdo trataré de realizarlo

Esa es la idea, no dudes de preguntar cualquier duda

Caral 31-07-2007 22:43:49

Hola
Osea a hacer la tarea:D
Bueno que me queda, eso si, la mitad de la calificacion es mia, me la envias.:)
Empecemos con lo basico:
1- abrimos delphi, sabes como?, es broma.:D
2- Iniciamos un nuevo proyecto.
3- Colocamos 1 Edit, lo acortamos para que solo quepa una letra, en font le ponemos, Tamaño 40 y Fuente Elephant, por que me gusta.:D
4- Copiamos y pegamos el edit 9 veces, de la siguiente manera.
Edit1 Edit4 Edit7
Edit2 Edit5 Edit8
Edit3 Edit6 Edit9
5- Colocamos 2 botones abajo.
Vamos asi:

Bueno, no se si podras ver la foto, pero, me imagino que vas bien.
Saludos

delphi.com.ar 31-07-2007 22:48:00

¿Me explicas de que se trata el juego de las X y el 0?... ¿Tateti / TicTacToe?

redimido 31-07-2007 22:51:13

Juego
 
Gracias por la ayuda Caral...:)

Caral 31-07-2007 22:51:59

Hola delphi.com.ar
Yo lo conozco como el juego del Gato o tres en linea.
Gana el que logra tener 3 en linea sean 0 o X dependiendo con que juegues.
Pueden ser verticales o horizontales.
Es un juego muy Viejo.
Saludos

Caral 31-07-2007 22:57:42

Hola
Seguimos con esta tarea.:D
Ya tenemos los edit y los botones, ahora hay que verificar que se gane o se pierda, verdad.
Bueno, ya depende de ti como quieres que lo hagamos, tienes que aportar algo, verdad.:D
Saludos

adfa 31-07-2007 23:05:34

Cita:

Empezado por delphi.com.ar
¿Me explicas de que se trata el juego de las X y el 0?... ¿Tateti / TicTacToe?

Si aca en el sur es el viejo y querido Tateti.

:) :D :) :D

BlueSteel 31-07-2007 23:44:13

Cita:

Empezado por Caral
Yo lo conozco como el juego del Gato o tres en linea.
Gana el que logra tener 3 en linea sean 0 o X dependiendo con que juegues.
Pueden ser verticales o horizontales.
Es un juego muy Viejo.
Saludos

tambien te falto decir que pueden ser en forma diagonal :D :p

axesys 01-08-2007 00:37:19

Ahi se puede bajar el codigo fuente
http://www.lawebdelprogramador.com/c...3&texto=Delphi

Caral 01-08-2007 00:54:10

Hola
Esta bien el juego que consiguió axesys, pero le falto dar unos componentes, bueno de todos modos, como siempre a lo novato lo hice.
Aqui esta el codigo:
Ya colocamos 9 edits y dos botones (Nuevo y Cerrar) en el form, espero que te sirva para aprender un poco mas.
El Codigo completo, muy simple y Mejorable, pero funcional.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
    procedure Edit7Change(Sender: TObject);
    procedure Edit8Change(Sender: TObject);
    procedure Edit9Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);
begin
   If (Edit1.Text = 'X') and (Edit2.Text = 'X') and (Edit3.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit1.Text = 'X') and (Edit4.Text = 'X') and (Edit7.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit1.Text = 'X') and (Edit5.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit2.Text = '0') and (Edit3.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit1.Text = '0') and (Edit4.Text = '0') and (Edit7.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit1.Text = '0') and (Edit5.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
  If (Edit1.Text = 'X') and (Edit2.Text = 'X') and (Edit3.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit2.Text = 'X') and (Edit5.Text = 'X') and (Edit8.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit2.Text = '0') and (Edit3.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit2.Text = '0') and (Edit5.Text = '0') and (Edit8.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end

end;

procedure TForm1.Edit3Change(Sender: TObject);
begin
   If (Edit1.Text = 'X') and (Edit2.Text = 'X') and (Edit3.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit3.Text = 'X') and (Edit6.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit3.Text = 'X') and (Edit5.Text = 'X') and (Edit7.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit2.Text = '0') and (Edit3.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit3.Text = '0') and (Edit6.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit3.Text = '0') and (Edit5.Text = '0') and (Edit7.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end;
end;

procedure TForm1.Edit4Change(Sender: TObject);
begin
   If (Edit1.Text = 'X') and (Edit4.Text = 'X') and (Edit7.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit4.Text = 'X') and (Edit5.Text = 'X') and (Edit6.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit4.Text = '0') and (Edit7.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit4.Text = '0') and (Edit5.Text = '0') and (Edit6.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
end;

procedure TForm1.Edit5Change(Sender: TObject);
begin
    If (Edit4.Text = 'X') and (Edit5.Text = 'X') and (Edit6.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit2.Text = 'X') and (Edit5.Text = 'X') and (Edit8.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit3.Text = 'X') and (Edit5.Text = 'X') and (Edit7.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit1.Text = 'X') and (Edit5.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit4.Text = '0') and (Edit5.Text = '0') and (Edit6.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit2.Text = '0') and (Edit5.Text = '0') and (Edit8.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit3.Text = '0') and (Edit5.Text = '0') and (Edit7.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit1.Text = 'X') and (Edit5.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;
end;

procedure TForm1.Edit6Change(Sender: TObject);
begin
   If (Edit3.Text = 'X') and (Edit6.Text = 'X') and (Edit9.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit4.Text = 'X') and (Edit5.Text = 'X') and (Edit6.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit3.Text = '0') and (Edit6.Text = '0') and (Edit9.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit4.Text = '0') and (Edit5.Text = '0') and (Edit6.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
end;

procedure TForm1.Edit7Change(Sender: TObject);
begin
    If (Edit1.Text = 'X') and (Edit2.Text = 'X') and (Edit3.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit3.Text = 'X') and (Edit5.Text = 'X') and (Edit7.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit7.Text = 'X') and (Edit8.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit2.Text = '0') and (Edit3.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit3.Text = '0') and (Edit5.Text = '0') and (Edit7.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit7.Text = '0') and (Edit8.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end;
end;

procedure TForm1.Edit8Change(Sender: TObject);
begin
   If (Edit2.Text = 'X') and (Edit5.Text = 'X') and (Edit8.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit7.Text = 'X') and (Edit8.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit2.Text = '0') and (Edit5.Text = '0') and (Edit8.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit7.Text = '0') and (Edit8.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
end;

procedure TForm1.Edit9Change(Sender: TObject);
begin
   If (Edit1.Text = 'X') and (Edit5.Text = 'X') and (Edit9.Text = 'X') then
   Begin
   ShowMessage('Gano la X');
   end
   else if (Edit3.Text = 'X') and (Edit6.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end
   else if (Edit7.Text = 'X') and (Edit8.Text = 'X') and (Edit9.Text = 'X')  Then
   begin
   ShowMessage('Gano la X');
   end;

   If (Edit1.Text = '0') and (Edit5.Text = '0') and (Edit9.Text = '0') then
   Begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit3.Text = '0') and (Edit6.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end
   else if (Edit7.Text = '0') and (Edit8.Text = '0') and (Edit9.Text = '0')  Then
   begin
   ShowMessage('Gano EL 0');
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i:Integer;
  comp:TComponent;
  Str:String;
begin
   // Recorrido por los edits
  for i := 1 to 9 do begin
    Str := 'Edit' + IntToStr(i);  // edit3, edit4, Edit5,...
    comp := FindComponent(Str);
    TEdit(comp).Clear;
  end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MessageBox(Handle, 
             PChar('Para usar el juego tiene que poner ' + #13#10 + 
                   'La X en mayuscula y el numero cero ( 0 )' + #13#10 +
                   'De lo contrario no dara el ganador. '), 
             PChar('Reglas del Juego'),
             MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
end;

end.
Despues le puedes agregar figuritas y de mas.
Tarea Hecha, verdad .:D
De novato a Novato/a
Saludos

Caral 01-08-2007 00:59:23

Hola
Aqui dejo el programa completo para que cuando se pueda bajar lo baje el que guste.
Saludos

axesys 01-08-2007 01:19:14

Yo solo le borre del uses el ImageTile y ya compilo en Delphi 2007

Caral 01-08-2007 03:14:45

Hola
Ya lo abri, muy interesante, gracias por el aporte.
Saludos

axesys 01-08-2007 03:19:02

Tambien funciona si renombras el archivo ImageTile.~pas a ImageTile.pas

Neftali [Germán.Estévez] 01-08-2007 10:45:32

Cita:

Empezado por Caral
Aqui dejo el programa completo para que cuando se pueda bajar lo baje el que guste.

¿Puedes subirlo al FTP? Sección ejemplos, Programas, incluso podemos crear una de juegos...

Más adelante puede servirle a alguien más.

Un saludo.

redimido 01-08-2007 15:05:12

Juego 3 en Línea
 
Muchas gracias a todos por la ayuda, Caral la nota es para los dos sin duda alguna:D , muchas gracias de nuevo.:)

redimido 01-08-2007 15:32:30

Asunto
 
Otra pregunta, por qué cuando intento bajar el programa que Caral posteo, se presenta una página que me dice que no tengo privilegios suficientes para ir a la página de descarga del programa? Alguien sabe por qué ocurre esto?:cool:

Ya he intentado varias veces descargar el juego y nada de que me deja decargarlo.:mad:

eduarcol 01-08-2007 15:48:32

Hay un hilo de 14 paginas en que se trata el asunto de las descargas, alli te haras una idea de lo que pasa, jejeje

http://www.clubdelphi.com/foros/showthread.php?t=46255

silver07 01-08-2007 17:17:03

Asunto
 
Hola a todos, trato de descargar el programa que dejo Caral, pero cuando intento hacerlo me envia a una página diciendome que no tengo permiso o suficiente privilegio para descargar y antes descargaba archivos sin problemas y ahora nada, alguien sabe por qué sucede esto y que debo hacer en este caso?. Ya lo intenté incluso con archivos que antes había descargado y nada, sale lo mismo.:eek:

Delphius 01-08-2007 17:49:50

silver07, ¿Leíste el mensaje inmediatamente anterior al tuyo?
Alli puedes evacuar tus dudas.

Bueno, al grano.
Puede que yo me haya levantado un poco con el pie izquierdo... pero... está bien que ayudemos a los estudiantes. Bueno, yo también lo soy y creo que nunca dejaré de serlo. Pero creo que en esta ocasión fue un poco más servido que en otras.

Creo, que el objetivo del profesor de redimido no es que se aprenda Delphi, ni que se vaya directo a buscar una solución. Sino más bien fomentar el uso de la lógica y abstracción en sus estudiantes.
A mi también me dieron como práctico hacer el tateti en mis comienzos como estudiante. Es un ejercicio común y habitual. Lo que se busca no es romper cabezas, sino fomentar el arte de la lógica.

Creo que hubiera sido más provechosa la ayuda si se hubiera esperado unos cuantos minutos hasta que redimido hubiera intentado llevar a cabo por si mismo el código y expuesto sus primeras dudas.
Esta bien que intentemos ayudar de la mayor manera y desinteresada, pero en el afan de ayudar ,entiendo a mi modo de ver, que haberle expuesto el código fuente evoca un sentido de que "mira... no te rompas el mate. Aqui lo tienes servido"

Hace unos días, una persona (mujer si quieren saberlo) escribió una pregunta en YR. Acepté ayudarla aclarandole desde el principio que ella misma va a generar el código. El algoritmo: código Cesar. Le escribí un mensaje con las principales ideas de como llevarlo a cabo. Me respondió diciendo que estaba intentandolo, me mostró su código. Tenía examen a los dos días y seguía trabada. Rápidamente armé el código y se lo envié. Le recomendé que lo estudiara (era totalmente diferente al modo en que ella lo estaba resolviendo). Al tiempo me respondió agradeciendome a ayuda. Me alegró el hecho de que ella misma ha escrito su propio código, y no haya usado el mio. Entendió donde estaba su error y lo corrigió.

Bueno, como dije... puede que hoy me haya levantado un poco de malas... no me hagan caso. Ya se me pasará.

Saludos,

novato03 08-08-2007 21:07:26

Asunto
 
Hola amigos del Clubdelphi, alguien me podría dar alguna pista de como hacer que este juego pueda ser jugado contra la máquina, he estado investigando pero no he podido encontrar nada, si alguien me pueda dar una pista se lo agradecería.

Gracias de antemano.:)

AzidRain 09-08-2007 02:12:05

Aunque tarde aqui les dejo un excelente tutorial para hacer el dichoso juego, viene explicado en forma muy detallada con pantallitas y todo:

http://delphi.about.com/od/beginners/l/aa021803a.htm?terms=delphi+tic%20tac%20toe
obviamente se puede bajar todo el codigo ya hecho
Iba a poner una imagen pero creo que ya no se puede...

Enan0 11-08-2007 00:13:19

1 Archivos Adjunto(s)
// Este post Iba ayer antes de la caida del server!

Dejo otra version, que es para jugar online.


bueno, como dice el titulo, hice algunas mejoras en el codigo como asi tambien contemple un poco mas los eventos de desconexion y error de los Sockets..
no es mucho pero aca dejo la version;


Fix: Limpiar pantalla despues de un juego ganado/Perdido
OnDisconect, Limpiar Chat, Scores
en caso de empate ahora solo muestra un mensaje (no varios)


http://rapidshare.com/files/48022734/Tatety.rar.html


La franja horaria es GMT +2. Ahora son las 20:33:57.

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