Your SlideShare is downloading. ×
Java AWT Tres en Raya
Java AWT Tres en Raya
Java AWT Tres en Raya
Java AWT Tres en Raya
Java AWT Tres en Raya
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Java AWT Tres en Raya

4,057

Published on

Juego del Tres en Raya utilizando el framework AWT (Abstract Window Toolkit) de Java.

Juego del Tres en Raya utilizando el framework AWT (Abstract Window Toolkit) de Java.

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,057
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. En esta práctica vamos a desarrollar de forma sencilla el juego del Tres en Raya utilizando el framework AWT (AbstractWindow Toolkit) de Java. Habrá dos modalidades de juego, Humano contra Humano y Humano contra Computadora. Eneste último caso la lógica de la computadora se limita a buscar de forma aleatoria una casilla vacía.Etiquetas: Frame, Panel, paquete AWT, Gestión de eventos, Notificador, Listener, interfaces y adaptadores, ActionListener,WindowAdapter,…TresRaya.javapackage practicas.java.paqueteAWT;import java.awt.Checkbox;import java.awt.CheckboxGroup;import java.awt.Color;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Label;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.awt.Button;import java.util.ArrayList;public class TresRaya extends Frame implements ActionListener, WindowListener { private static final long serialVersionUID = 1L; Button[][] teclas = new Button[3][3]; CheckboxGroup cbg = null; int jugador = 1; boolean hayganador = false; String modalidad = ""; int contteclas = 0; boolean partidaIniciada = false; Label msg = null; bitCoach::Juan Bautista Cascallar Lorenzo
  • 2. public TresRaya(){ this.addWindowListener(this); this.setTitle("Tres en Raya"); this.setSize(425,180); this.setLayout(null); Panel panel01 = new Panel(); panel01.setBounds(15, 39, 120, 120); panel01.setLayout(new GridLayout(3,3)); for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ teclas[i][j] = new Button(); teclas[i][j].setName(String.valueOf(i)+String.valueOf(j)); teclas[i][j].setLabel(""); teclas[i][j].addActionListener(this); panel01.add(teclas[i][j]); } } this.add(panel01); Panel panel02 = new Panel(); panel02.setBounds(180, 40, 200, 100); panel02.setLayout(new GridLayout(4,0)); cbg = new CheckboxGroup(); Checkbox HvsC = new Checkbox("Humano vs Computadora",cbg,true); HvsC.setName("HC"); Checkbox HvsH = new Checkbox("Humano vs Humano",cbg,false); HvsH.setName("HH"); panel02.add(HvsC); panel02.add(HvsH); msg = new Label(); msg.setBackground(Color.YELLOW); msg.setText("Selc. modalidad -> Reiniciar"); panel02.add(msg); Button btn_Reiniciar = new Button("Reiniciar"); btn_Reiniciar.setName("reiniciar"); btn_Reiniciar.addActionListener(this); panel02.add(btn_Reiniciar); this.add(panel02);} bitCoach::Juan Bautista Cascallar Lorenzo
  • 3. private void MarcacionDePosicionJugada(Button t){ int f = Integer.valueOf(t.getName().charAt(0)+""); int c = Integer.valueOf(t.getName().charAt(1)+""); if(modalidad.equals("HH")){ if((partidaIniciada == true) && (contteclas < 9)){ if(jugador == 1){ if(teclas[f][c].getLabel().equals("")){ teclas[f][c].setLabel("X"); jugador = 2; contteclas++; comprobarGanador("X"); if(hayganador == true){ msg.setText("Partida finalizada::Gana[X]"); partidaIniciada = false; } if((contteclas == 9) && (hayganador == false)){ msg.setText("Partida finalizada::Tablas"); partidaIniciada = false; } } }else if(jugador == 2){ if(teclas[f][c].getLabel().equals("")){ teclas[f][c].setLabel("O"); jugador = 1; contteclas++; comprobarGanador("O"); if(hayganador == true){ msg.setText("Partida finalizada::Gana[O]"); partidaIniciada = false; } if((contteclas == 9) && (hayganador == false)){ msg.setText("Partida finalizada::Tablas"); partidaIniciada = false; } } } } }else if(modalidad.equals("HC")){ if((partidaIniciada == true) && (contteclas < 9)){ if(jugador == 1){ if(teclas[f][c].getLabel().equals("")){ teclas[f][c].setLabel("H"); jugador = 2; contteclas++; comprobarGanador("H"); if(hayganador == true){ msg.setText("Partida finalizada::Gana[H]"); partidaIniciada = false; } if((contteclas == 9) && (hayganador == false)){ msg.setText("Partida finalizada::Tablas"); partidaIniciada = false; } } } bitCoach::Juan Bautista Cascallar Lorenzo
  • 4. if(jugador == 2){ //Casilla libre de forma aleatoria... if((hayganador == false) && (contteclas < 9)){ ArrayList<String> casillas_libres = new ArrayList<String>(); int indice = 0; for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ if(teclas[i][j].getLabel().equals("")){ casillas_libres.add(indice,teclas[i][j].getName()); indice++; } } } int x = (int) (Math.random()*casillas_libres.size()-1); String libre = casillas_libres.get(x); f = Integer.valueOf(libre.charAt(0)+""); c = Integer.valueOf(libre.charAt(1)+""); teclas[f][c].setLabel("C"); jugador = 1; contteclas++; comprobarGanador("C"); if(hayganador == true){ msg.setText("Partida finalizada::Gana[C]"); partidaIniciada = false; } if((contteclas == 9) && (hayganador == false)){ msg.setText("Partida finalizada::Tablas"); partidaIniciada = false; } } } } }//Fin if modalidad }//Fin funcion private void comprobarGanador(String jug){ //Comprobar filas for(int f=0; f<3; f++){ if((teclas[f][0].getLabel().equals(jug)) &&(teclas[f][0].getLabel().equals(teclas[f][1].getLabel())) && (teclas[f][0].getLabel().equals(teclas[f][2].getLabel()))){ this.hayganador = true; break; } } //Comprobar columnas for(int c=0; c<3; c++){ if((teclas[0][c].getLabel().equals(jug)) &&(teclas[0][c].getLabel().equals(teclas[1][c].getLabel())) && (teclas[0][c].getLabel().equals(teclas[2][c].getLabel()))){ this.hayganador = true; break; } } //Comprobar diagonales if(((teclas[0][0].getLabel().equals(jug)) &&(teclas[0][0].getLabel().equals(teclas[1][1].getLabel())) && (teclas[0][0].getLabel().equals(teclas[2][2].getLabel()))) ||((teclas[2][0].getLabel().equals(jug)) &&(teclas[2][0].getLabel().equals(teclas[1][1].getLabel())) && (teclas[2][0].getLabel().equals(teclas[0][2].getLabel())))){ this.hayganador = true; } }//Fin función bitCoach::Juan Bautista Cascallar Lorenzo
  • 5. public void ReiniciarJuego(){ partidaIniciada = true; jugador = 1; contteclas = 0; hayganador = false; for(int i=0; i<3; i++){ for(int j=0; j<3; j++){ teclas[i][j].setLabel(""); } } Checkbox ck = cbg.getSelectedCheckbox(); modalidad = ck.getName(); msg.setText("Jugando en Modalidad: " + modalidad); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub Button teclaPulsada = (Button)e.getSource(); if(teclaPulsada.getName().equals("reiniciar")){ ReiniciarJuego(); }else{ MarcacionDePosicionJugada(teclaPulsada); } } @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub }} bitCoach::Juan Bautista Cascallar Lorenzo

×