Você está na página 1de 11

CATEDRA INFORMATICĂ

Disciplina: Tehnologii Moderne de Programare

Lucrare de studiu individual nr. 2


Tema: Elaborarea unei aplicații cu utilizarea pachetului SWING

A elaborat elevul: Guțu Lilian, I-1546

A evaluat profesorul: Musteață Victoria

Nota

____________
CUPRINS:
Listing-ul programului: .......................................................................................................................................................... 4

Test program : ....................................................................................................................................................................... 11

Concluzie: ....................................................................................................................................Error! Bookmark not defined.

Bibliografie: ...............................................................................................................................Error! Bookmark not defined.


LISTING-UL PROGRAMULUI:

engine.java

public class engine {

public static void main(String[] args) {

xoview interfata = new xoview();


xomodel modelul = new xomodel();
xoController controlerul = new xoController(modelul, interfata);
}

xoController.java

import java.awt.event.*;

import javax.swing.JButton;

public class xoController{

public xomodel model;


public xoview view;
public xoListener listener;
public int gameMove = 0;

public int flag = -1;

public xoController(xomodel model, xoview view) {


this.model = model;
this.view = view;
this.view.addButoaneAscultator(new xoListener());
}

class xoListener implements ActionListener


{

void win() throws InterruptedException


{
view.pGame.setVisible(false);
view.tfJuc1.setText("Nickname jucator 1");
view.tfJuc2.setText("Nickname jucator 2");
view.tfJuc1.setEditable(true);
view.tfJuc2.setEditable(true);
view.bStart.setVisible(true);
view.pGame.setVisible(true);
view.ba11.setText("");
view.ba12.setText("");
view.ba13.setText("");
view.ba21.setText("");
view.ba22.setText("");
view.ba23.setText("");
view.ba31.setText("");
view.ba32.setText("");
view.ba33.setText("");
view.pGame.setVisible(false);
}

void checkWinner() throws InterruptedException


{
if (view.ba11.getText().equals(view.ba12.getText()) &&
view.ba11.getText().equals(view.ba13.getText()) &&
!view.ba13.getText().equals(""))
{
if (view.ba11.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba11.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba21.getText().equals(view.ba22.getText()) &&
view.ba21.getText().equals(view.ba23.getText()) &&
!view.ba23.getText().equals(""))
{
if (view.ba21.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba21.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba31.getText().equals(view.ba32.getText()) &&
view.ba31.getText().equals(view.ba33.getText()) &&
!view.ba33.getText().equals(""))
{
if (view.ba31.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba31.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba11.getText().equals(view.ba21.getText()) &&
view.ba11.getText().equals(view.ba31.getText()) &&
!view.ba31.getText().equals(""))
{
if (view.ba11.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba11.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba12.getText().equals(view.ba22.getText()) &&
view.ba12.getText().equals(view.ba32.getText()) &&
!view.ba12.getText().equals(""))
{
if (view.ba12.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
else if (view.ba12.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba13.getText().equals(view.ba23.getText()) &&
view.ba13.getText().equals(view.ba33.getText()) &&
!view.ba13.getText().equals(""))
{
if (view.ba13.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba13.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba11.getText().equals(view.ba22.getText()) &&
view.ba11.getText().equals(view.ba33.getText()) &&
!view.ba11.getText().equals(""))
{
if (view.ba11.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba11.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
if (view.ba13.getText().equals(view.ba22.getText()) &&
view.ba13.getText().equals(view.ba31.getText()) &&
!view.ba13.getText().equals(""))
{
if (view.ba13.getText().toString().equals("X"))
{
view.lMesaj.setText((model.showCastigator(1)));
win();
}
else if (view.ba13.getText().toString().equals("O"))
{
view.lMesaj.setText((model.showCastigator(2)));
win();
}
}
}

void editText(JButton b)
{
if (b.getText().toString().equals(""))
{
if (flag == 1)
b.setText("X");
else
b.setText("O");
oneMove();
}
}

void oneMove()
{
if (flag == 1)
flag = 2;
else
flag = 1;
}

@Override
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == view.bStart)
{
String n1 = view.tfJuc1.getText().toString();
String n2 = view.tfJuc2.getText().toString();
model.seteazaNickname(n1, n2);
view.lMesaj.setText("");
view.tfJuc1.setEditable(false);
view.tfJuc2.setEditable(false);
view.bStart.setVisible(false);
view.pGame.setVisible(true);
flag = 1;
gameMove = 0;
}
else
{
gameMove++;

if (e.getSource() == view.ba11)
{
editText(view.ba11);
}

if (e.getSource() == view.ba12)
{
editText(view.ba12);
}

if (e.getSource() == view.ba13)
{
editText(view.ba13);
}

if (e.getSource() == view.ba21)
{
editText(view.ba21);
}

if (e.getSource() == view.ba22)
{
editText(view.ba22);
}

if (e.getSource() == view.ba23)
{
editText(view.ba23);
}

if (e.getSource() == view.ba31)
{
editText(view.ba31);
}

if (e.getSource() == view.ba32)
{
editText(view.ba32);
}

if (e.getSource() == view.ba33)
{
editText(view.ba33);
}

try {
checkWinner();
} catch (InterruptedException e1) {
e1.printStackTrace();
}

if (gameMove == 9)
try {
win();
} catch (InterruptedException e1) {
e1.printStackTrace();
}

}
}
}

xomodel.java

public class xomodel {

String player1;
String player2;

void seteazaNickname(String n1, String n2)


{
this.player1 = n1;
this.player2 = n2;
}

String showCastigator(int winerMarker)


{
if (winerMarker == 1)
return "Felicitari! " + player1 + " a castigat acest joc.";
else
return "Felicitari! " + player2 + " a castigat acest joc.";
}
}

xoview.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class xoview extends JFrame {

JPanel pNorth, pGame;


JButton bStart, ba11, ba12, ba13, ba21, ba22, ba23, ba31, ba32, ba33;
JTextField tfJuc1, tfJuc2;
JLabel lMesaj;

public xoview() {
setLayout(new GridLayout(2,1));

pNorth = new JPanel();


pGame = new JPanel();
bStart = new JButton("Start");
lMesaj = new JLabel();
tfJuc1 = new JTextField("Nickname jucator 1");
tfJuc2 = new JTextField("Nickname jucator 2");
ba11 = new JButton();
ba12 = new JButton();
ba13 = new JButton();
ba21 = new JButton();
ba22 = new JButton();
ba23 = new JButton();
ba31 = new JButton();
ba32 = new JButton();
ba33 = new JButton();

pNorth.setLayout(new GridLayout(2,2));
pGame.setLayout(new GridLayout(3,3));

pNorth.add(tfJuc1);
pNorth.add(tfJuc2);
pNorth.add(bStart);
pNorth.add(lMesaj);

pGame.add(ba11);
pGame.add(ba12);
pGame.add(ba13);
pGame.add(ba21);
pGame.add(ba22);
pGame.add(ba23);
pGame.add(ba31);
pGame.add(ba32);
pGame.add(ba33);
pGame.setVisible(false);

add(pNorth);
add(pGame);

setVisible(true);
setSize(500, 300);
setTitle("Indrazneste sa XO");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void addButoaneAscultator (ActionListener listener)
{
bStart.addActionListener(listener);
ba11.addActionListener(listener);
ba12.addActionListener(listener);
ba13.addActionListener(listener);
ba21.addActionListener(listener);
ba22.addActionListener(listener);
ba23.addActionListener(listener);
ba31.addActionListener(listener);
ba32.addActionListener(listener);
ba33.addActionListener(listener);
}
}

TEST PROGRAM :

1. Interfata grafica a aplicatiei

BIBLIOGRAFIE:

1. https://www.javatpoint.com/
2. https://www.javatpoint.com/java-do-while-loop
3. https://www.javatpoint.com/java-for-loop
4. https://www.javatpoint.com/array-in-java
5. https://www.javatpoint.com/java-math

Você também pode gostar