Download Articulo UBit.

Document related concepts
no text concepts found
Transcript
UBit
Programación del Juego TA TE TI
Revista
El trabajo que se muestra a continuación es el resultado de un Proyecto de Alumnos de Programación I
desarrollado en el 2º cuatrimestre del 2012, coordinado por la Prof. Claudia Litvak.
Objetivo
Adquirir capacidad lógica para la creación de un juego.
Enunciado
Crear un juego en Java aplicando todo lo aprendido durante la cursada de Programación I.
Solución
Primero creamos las clases Jugador, datosArray que
es la que posee e
l ArrayList de los nombres de jugadores, podés
agregar jugadores, eliminar, etc. Con la ayuda de NetBeans para el diseño de las interfaces gráficas
creamos dos JFrame. Uno llamado MenuGrafica, este contenía todo el menú con los botones de agregar
jugador, eliminar jugador y un botón final llamado JUGAR para empezar el juego.
Luego creamos una clase PantallaJuego que contenía todo el código lógico para saber quien gana o si hay
empate, además de los botones principales para que se pueda jugar al TaTeTi. Para hacer las cruces y
círculos hicimos 9 botones que se deshabilita y cambian el color del número cuando se hace clic en otros 9
botones que están por debajo.
Algo complicado fue hacer el turno de cada jugador, pero lo logramos gracias a una variable booleana
turno que tomaba un valor true al principio y a medida que iban apretando los 9 botones de abajo se iba
cambiando a false y true dependiendo del valor de entrada. Luego desarrollamos una clase final, llamada
Main, que lo único que hace es hacer visible el menú del juego (MenuGrafica).
Vamos a mostrar la creación de la pantalla principal del juego, contenida en la clase PantallaJuego.
Código de la Clase PantallaJuego
import java.awt.Color;
import javax.swing.JOptionPane;
public class PantallaJuego extends javax.swing.JFrame {
//Se define un jugador. Se guarda en un array los lugares ya seleccionados del tablero.
//Se define la variable booleana turno para ver que jugador juega.
Jugador a;
DatosArray y;
MenuGrafica j;
boolean turno ;
int contador;
String name1;
About about;
public PantallaJuego() {
//En el constructor se grafica el tablero con initComponents()
initComponents();
turno=true;
contador=0;
turnoJugador.setText(j.x);
this.getContentPane().setBackground(Color.white);
}
private void initComponents() {
//Este método coloca todos los botones y los labels o etiquetas del tablero.
jButton1 = new javax.swing.JButton();
jMenuItem3 = new javax.swing.JMenuItem();
boton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
turnoJugador = new javax.swing.JLabel();
volver = new javax.swing.JButton();
numero1 = new javax.swing.JButton();
numero2 = new javax.swing.JButton();
numero3 = new javax.swing.JButton();
numero6 = new javax.swing.JButton();
numero5 = new javax.swing.JButton();
numero4 = new javax.swing.JButton();
numero9 = new javax.swing.JButton();
numero8 = new javax.swing.JButton();
numero7 = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
Exit = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu1 = new javax.swing.JMenu();
jMenuItem4 = new javax.swing.JMenuItem();
jButton1.setText("jButton1");
jMenuItem3.setText("jMenuItem3");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("TaTeTi - Juego Nuevo");
setBackground(new java.awt.Color(153, 255, 153));
boton1.setBackground(new java.awt.Color(204, 204, 204));
boton1.setText("1");
boton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
boton1ActionPerformed(evt);
}
});
jButton2.setBackground(new java.awt.Color(204, 204, 204));
jButton2.setText("2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
//Se trabaja igual con todos los botones.
jLabel1.setText("TaTeTi");
jLabel2.setText("Turno del Jugador:");
turnoJugador.setFont(new java.awt.Font("Arial", 0, 14)); // NOI18N
turnoJugador.setForeground(new java.awt.Color(204, 0, 0));
turnoJugador.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
turnoJugador.setText("-");
volver.setBackground(new java.awt.Color(0, 153, 0));
volver.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
volver.setForeground(new java.awt.Color(255, 255, 255));
volver.setText("Volver Al Menu");
volver.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
volverActionPerformed(evt);
}
});
numero1.setBackground(new java.awt.Color(51, 204, 255));
numero1.setFont(new java.awt.Font("Tahoma", 0, 48)); // NOI18N
numero1.setForeground(new java.awt.Color(255, 255, 255));
numero1.setText("1");
numero1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
numero1ActionPerformed(evt);
}
});
// De la misma manera trabaja con los otros botones
}
Luca Pascarelli y Christian Diez
Alumnos de Programación I de la carrera de Ingeniería Informática
Mg. Claudia Litvak
Profesora de Programación I y Proyecto de Construcción de Software
Facultad de Ingeniería y Tecnología Informática - UB