-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMyWorld.java
111 lines (102 loc) · 3.86 KB
/
MyWorld.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import javax.swing.JOptionPane;
import java.lang.Math;
public class MyWorld extends World
{
boolean[][] o = new boolean [12][8];
boolean[][] x = new boolean [12][8];
int ktoTeraz;
int ileWolnychPol = 96;
public MyWorld()
{
super(600, 400, 1);
ktoTeraz=Greenfoot.getRandomNumber(2);
JOptionPane.showMessageDialog(null, "Aby grać kółkiem wciskaj 'o' i klikaj, krzyżykiem - 'x' i klikaj." + "\n" + "Gra dla dwóch graczy!\nMusisz ustawić pięć jednakowych znaczków pionowo lub poziomo");
if (ktoTeraz==0) JOptionPane.showMessageDialog(null,"Zaczynają O");
else JOptionPane.showMessageDialog(null,"Zaczynają X");
}
public boolean sprawdzPiatkeKolek(){
for (int i= 0; i<12 ; i++){
for (int j= 0; j<4 ; j++){
if(o[i][j]&&o[i][j+1]&&o[i][j+2]&&o[i][j+3]&&o[i][j+4]) return true;
}
}
for (int i= 0; i<8 ; i++){
for (int j= 0; j<8 ; j++){
if(o[i][j]&&o[i+1][j]&&o[i+2][j]&&o[i+3][j]&&o[i+4][j]) return true;
}
}
ktoTeraz=1;
Greenfoot.delay(10);
if(ileWolnychPol==0){
JOptionPane.showMessageDialog(null,"REMIS!!!");
Greenfoot.stop();
}else{
JOptionPane.showMessageDialog(null,"Teraz X");
}
return false;
}
public boolean sprawdzPiatkeKrzyzykow(){
for (int i= 0; i<12 ; i++){
for (int j= 0; j<4 ; j++){
if(x[i][j]&&x[i][j+1]&&x[i][j+2]&&x[i][j+3]&&x[i][j+4]) return true;
}
}
for (int i= 0; i<8 ; i++){
for (int j= 0; j<8 ; j++){
if(x[i][j]&&x[i+1][j]&&x[i+2][j]&&x[i+3][j]&&x[i+4][j]) return true;
}
}
ktoTeraz=0;
Greenfoot.delay(10);
if(ileWolnychPol==0){
JOptionPane.showMessageDialog(null,"REMIS!!!");
Greenfoot.stop();
}else{
JOptionPane.showMessageDialog(null,"Teraz O");
}
return false;
}
public void act()
{
if(Greenfoot.mouseClicked(this))
{
MouseInfo mouse=Greenfoot.getMouseInfo();
int mX=mouse.getX(), mY=mouse.getY();
int indexX=(int)Math.floor(mX/50);
int indexY=(int)Math.floor(mY/50);
int nrX = 50* indexX + 25;
int nrY = 50* indexY + 25;
if(Greenfoot.isKeyDown("o")&&ktoTeraz==0)
{
if(o[indexX][indexY]){JOptionPane.showMessageDialog(null, "Tu jest kółko ");}
else if(x[indexX][indexY]){JOptionPane.showMessageDialog(null, "Tu jest krzyżyk ");}
else{Kolko kolko = new Kolko();
addObject(kolko, nrX, nrY);
o[indexX][indexY]=true;
ileWolnychPol--;
if(sprawdzPiatkeKolek()){
Greenfoot.delay(10);
JOptionPane.showMessageDialog(null, "Wygrały O");
Greenfoot.stop();
}
}
}
else if(Greenfoot.isKeyDown("x")&&ktoTeraz==1)
{
if(o[indexX][indexY]){JOptionPane.showMessageDialog(null, "Tu jest kółko ");}
else if(x[indexX][indexY]){JOptionPane.showMessageDialog(null, "Tu jest krzyżyk ");}
else{Krzyzyk krzyzyk = new Krzyzyk();
addObject(krzyzyk, nrX, nrY);
x[indexX][indexY]=true;
ileWolnychPol--;
if(sprawdzPiatkeKrzyzykow()){
Greenfoot.delay(10);
JOptionPane.showMessageDialog(null, "Wygrały X");
Greenfoot.stop();
}
}
}
}
}
}