Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
O
Othello
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
9831006
Othello
Commits
005baca5
Commit
005baca5
authored
4 years ago
by
kiana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
othelloProject
parents
Pipeline
#4337
failed with stages
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
775 additions
and
0 deletions
+775
-0
Main.java
src/Main.java
+57
-0
Move.java
src/Move.java
+121
-0
OthelloMap.java
src/OthelloMap.java
+100
-0
Rules.java
src/Rules.java
+497
-0
No files found.
src/Main.java
0 → 100644
View file @
005baca5
import
java.util.Scanner
;
public
class
Main
{
public
static
void
main
(
String
[]
args
)
{
OthelloMap
ground
=
new
OthelloMap
();
Scanner
scanner
=
new
Scanner
(
System
.
in
);
Move
players
=
new
Move
();
while
(
players
.
rules
.
checkEnd
(
ground
.
getNuts
()))
{
System
.
out
.
println
(
"It's player1's turn, choose a place to put your nut"
);
if
(!
players
.
rules
.
pass
(
2
,
ground
.
getNuts
())){
int
length
=
scanner
.
nextInt
();
int
width
=(
int
)
scanner
.
next
().
charAt
(
0
)-
'A'
+
1
;
;
while
(!
players
.
rules
.
input
(
length
,
width
,
2
,
ground
.
getNuts
())){
System
.
out
.
println
(
"wrong input"
);
length
=
scanner
.
nextInt
();
width
=(
int
)
scanner
.
next
().
charAt
(
0
)-
'A'
+
1
;
}
players
.
rules
.
setYes
(
0
);
players
.
rules
.
setMojaz
(
0
);
players
.
move
(
2
,
length
,
width
,
ground
.
getNuts
());
players
.
rules
.
setYes
(
0
);
players
.
rules
.
setMojaz
(
0
);
}
ground
.
map
();
players
.
rules
.
score
(
ground
.
getNuts
());
System
.
out
.
println
(
"It's player2's turn, choose a place to put your nut"
);
if
(!
players
.
rules
.
pass
(
1
,
ground
.
getNuts
()))
{
int
length
=
scanner
.
nextInt
();
int
width
=
(
int
)
scanner
.
next
().
charAt
(
0
)
-
'A'
+
1
;
while
(!
players
.
rules
.
input
(
length
,
width
,
1
,
ground
.
getNuts
()))
{
System
.
out
.
println
(
"wrong input"
);
length
=
scanner
.
nextInt
();
width
=
(
int
)
scanner
.
next
().
charAt
(
0
)
-
'A'
+
1
;
}
players
.
rules
.
setMojaz
(
0
);
players
.
rules
.
setYes
(
0
);
;
players
.
move
(
1
,
length
,
width
,
ground
.
getNuts
());
}
players
.
rules
.
setMojaz
(
0
);
players
.
rules
.
setYes
(
0
);
ground
.
map
();
players
.
rules
.
score
(
ground
.
getNuts
());
players
.
rules
.
winner
(
ground
.
getNuts
());
}
}
}
This diff is collapsed.
Click to expand it.
src/Move.java
0 → 100644
View file @
005baca5
public
class
Move
{
Rules
rules
=
new
Rules
();
/**
* checks each direction to see if it can be placed there
* if yes then put the nut in the place
* and changes the nuts between to the right color
* @param turn
* @param x
* @param y
* @param map
*/
public
void
move
(
int
turn
,
int
x
,
int
y
,
int
[][]
map
)
{
x
--;
y
--;
int
i
=
1
;
//int[][] arr = map;
if
(
rules
.
ruleCheckRight
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
while
(
map
[
x
][
y
]
!=
map
[
x
+
i
][
y
])
{
if
(
turn
==
1
)
map
[
x
+
i
][
y
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
+
i
][
y
]
=
2
;
i
++;
}
}
if
(
rules
.
ruleCheckLeft
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
i1
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
-
i1
][
y
])
{
if
(
turn
==
1
)
map
[
x
-
i1
][
y
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
-
i1
][
y
]
=
2
;
i1
++;
}
}
if
(
rules
.
ruleCheckUp
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
j
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
][
y
+
j
])
{
if
(
turn
==
1
)
map
[
x
][
y
+
j
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
][
y
+
j
]
=
2
;
j
++;
}
}
if
(
rules
.
ruleCheckDown
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
j1
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
][
y
-
j1
])
{
if
(
turn
==
1
)
map
[
x
][
y
-
j1
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
][
y
-
j1
]
=
2
;
j1
++;
}
}
if
(
rules
.
ruleCheckUpRight
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
k
=
1
,
z
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
+
k
][
y
+
z
])
{
if
(
turn
==
1
)
map
[
x
+
k
][
y
+
z
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
+
k
][
y
+
z
]
=
2
;
k
++;
z
++;
}
}
if
(
rules
.
ruleCheckUpLeft
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
k
=
1
,
z
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
-
k
][
y
+
z
])
{
if
(
turn
==
1
)
map
[
x
-
k
][
y
+
z
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
-
k
][
y
+
z
]
=
2
;
k
++;
z
++;
}
}
if
(
rules
.
ruleCheckDownRight
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
k
=
1
,
z
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
+
k
][
y
-
z
])
{
if
(
turn
==
1
)
map
[
x
+
k
][
y
-
z
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
+
k
][
y
-
z
]
=
2
;
k
++;
z
++;
}
}
if
(
rules
.
ruleCheckDownLeft
(
x
,
y
,
turn
,
map
))
{
map
[
x
][
y
]=
turn
;
int
k
=
1
,
z
=
1
;
while
(
map
[
x
][
y
]
!=
map
[
x
-
k
][
y
-
z
])
{
if
(
turn
==
1
)
map
[
x
-
k
][
y
-
z
]
=
1
;
else
if
(
turn
==
2
)
map
[
x
-
k
][
y
-
z
]
=
2
;
k
++;
z
++;
}
}
if
(
rules
.
getYes
()
==
1
)
map
[
x
][
y
]
=
turn
;
//map(arr);
rules
.
setMojaz
(
0
);
rules
.
setYes
(
0
);
}
}
This diff is collapsed.
Click to expand it.
src/OthelloMap.java
0 → 100644
View file @
005baca5
import
java.io.*
;
public
class
OthelloMap
{
private
int
[][]
nuts
=
new
int
[
8
][
8
];
public
OthelloMap
(){
meghdardehi
();
map1
();
}
private
final
String
resetcolor
=
"\u001B[0m"
;
private
final
String
color2
=
"\u001B[38;5;27m"
;
private
final
String
color3
=
"\u001B[48;5;197m"
;
private
final
String
color1
=
"\u001B[48;5;243m"
;
private
final
String
resetbg
=
"\u001B[49m"
;
public
int
[][]
getNuts
()
{
return
nuts
;
}
public
void
setNuts
(
int
[][]
nuts
)
{
this
.
nuts
=
nuts
;
}
public
void
meghdardehi
(){
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
nuts
[
i
][
j
]
=
0
;
}
}
nuts
[
3
][
3
]
=
1
;
nuts
[
4
][
4
]
=
1
;
nuts
[
3
][
4
]
=
2
;
nuts
[
4
][
3
]
=
2
;
}
/**
* prints the table alphabets
* prints the map
* prints the table numbers
*/
public
void
map
(){
for
(
char
alphabet
=
'A'
;
alphabet
<=
'H'
;
alphabet
++){
System
.
out
.
print
(
" "
+
alphabet
+
" "
);
}
System
.
out
.
println
(
" "
);
int
number
=
1
;
System
.
out
.
print
(
" "
);
for
(
int
i
=
0
;
i
<
8
;
i
++){
for
(
int
j
=
0
;
j
<
8
;
j
++){
// System.out.print(color1+color2+"----------"+resetcolor+resetbg);
System
.
out
.
print
(
color3
+
color2
+
" "
+
resetcolor
+
resetbg
);
}
System
.
out
.
println
(
color3
+
" "
+
resetcolor
);
System
.
out
.
print
(
" "
);
for
(
int
j
=
0
;
j
<
8
;
j
++){
// System.out.print(color1+color2+"|"+resetcolor+resetbg);
System
.
out
.
print
(
color3
+
" "
+
resetbg
);
if
(
nuts
[
i
][
j
]
==
0
)
System
.
out
.
print
(
color1
+
" "
+
resetbg
);
else
if
(
nuts
[
i
][
j
]
==
1
)
System
.
out
.
print
(
color1
+
" "
+
"\u26AB "
+
" "
+
resetbg
);
else
if
(
nuts
[
i
][
j
]
==
2
)
System
.
out
.
print
(
color1
+
" "
+
"\u26AA "
+
" "
+
resetbg
);
}
System
.
out
.
println
(
color3
+
" "
+
resetbg
);
System
.
out
.
print
(
number
++
+
" "
);
for
(
int
j
=
0
;
j
<
9
;
j
++){
// System.out.print(color1+color2+"|"+resetcolor+resetbg);
System
.
out
.
print
(
color3
+
" "
+
resetcolor
);
if
(
j
==
8
){
System
.
out
.
print
(
" "
);
}
else
{
System
.
out
.
print
(
color1
+
" "
+
resetbg
);
}}
System
.
out
.
println
(
" "
);
System
.
out
.
print
(
" "
);
}
/**
* last line
*/
for
(
int
j
=
0
;
j
<
8
;
j
++){
// System.out.print(color1+color2 +"----------"+resetcolor+resetbg);
System
.
out
.
print
(
color3
+
color2
+
" "
+
resetcolor
+
resetbg
);
}
System
.
out
.
println
(
color3
+
" "
+
resetbg
);
}
/**
* first map of the game
*/
public
void
map1
(){
nuts
[
3
][
3
]
=
1
;
nuts
[
4
][
4
]
=
1
;
nuts
[
3
][
4
]
=
2
;
nuts
[
4
][
3
]
=
2
;
map
();
}
}
This diff is collapsed.
Click to expand it.
src/Rules.java
0 → 100644
View file @
005baca5
public
class
Rules
{
private
int
mojaz
=
0
,
yes
=
0
;
/**
* gets the confirmation
* @return
*/
public
int
getMojaz
()
{
return
mojaz
;
}
/**
* sets the confirmation
* @param mojaz
*/
public
void
setMojaz
(
int
mojaz
)
{
this
.
mojaz
=
mojaz
;
}
/**
* gets approved state
* @return
*/
public
int
getYes
()
{
return
yes
;
}
/**
* sets approved state
* @param yes
*/
public
void
setYes
(
int
yes
)
{
this
.
yes
=
yes
;
}
/**
* puts the nut in the given place
* move to the right to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckRight
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
// System.out.println("1");
int
count
=
1
;
//int[][] map = ground.getNuts();
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
for
(
int
i
=
x
+
1
;
i
<
8
;
i
++)
{
if
(
map
[
i
][
y
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
y
])
{
count
++;
}
}
if
(
map
[
x
][
y
]
==
map
[
i
][
y
]
&&
count
==
i
-
x
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the left to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckLeft
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("2");
//int[][] map = ground.getNuts();
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
for
(
int
i
=
x
-
1
;
i
>=
0
;
i
--)
{
if
(
map
[
i
][
y
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
y
])
{
count
++;
}
}
if
(
map
[
x
][
y
]
==
map
[
i
][
y
]
&&
count
==
x
-
i
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the up to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckUp
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("3");
//int[][] map = ground.getNuts();
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
for
(
int
j
=
y
+
1
;
j
<
8
;
j
++)
{
if
(
map
[
x
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
x
][
j
])
{
count
++;
}
}
if
(
map
[
x
][
y
]
==
map
[
x
][
j
]
&&
count
==
j
-
y
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the down to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckDown
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("4");
//int[][] map = ground.getNuts();
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
for
(
int
j
=
y
-
1
;
j
>=
0
;
j
--)
{
if
(
map
[
x
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
x
][
j
])
{
count
++;
}
}
if
(
map
[
x
][
y
]
==
map
[
x
][
j
]
&&
count
==
y
-
j
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the up right to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckUpRight
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("8");
//int[][] map = ground.getNuts();
int
i
=
x
+
1
,
j
=
y
+
1
;
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
while
(
i
<
8
&&
j
<
8
)
{
if
(
map
[
i
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
j
])
{
count
++;
}
}
if
((
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
j
-
y
)
&&
(
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
x
-
i
)
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
i
++;
j
++;
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the up left to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckUpLeft
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("5");
//int[][] map = ground.getNuts();
int
i
=
x
-
1
,
j
=
y
+
1
;
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
while
(
i
>=
0
&&
j
<
8
)
{
if
(
map
[
i
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
j
])
{
count
++;
}
}
if
((
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
j
-
y
)
&&
(
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
x
-
i
)
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
i
--;
j
++;
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the down right to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckDownRight
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("6");
//int[][] map = ground.getNuts();
int
i
=
x
+
1
,
j
=
y
-
1
;
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
while
(
i
<
8
&&
j
>=
0
)
{
if
(
map
[
i
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
j
])
{
count
++;
}
}
if
((
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
y
-
j
)
&&
(
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
i
-
x
)
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
i
++;
j
--;
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* puts the nut in the given place
* move to the down left to see if there is a same color nut in this row
* checks if every place in its way are full
* returns if it is allowed to put the nut in that place
* removes the nut from that place
* @param x
* @param y
* @param type
* @param map
* @return
*/
public
boolean
ruleCheckDownLeft
(
int
x
,
int
y
,
int
type
,
int
[][]
map
)
{
int
count
=
1
;
// System.out.println("7");
//int[][] map = ground.getNuts();
int
i
=
x
-
1
,
j
=
y
-
1
;
if
(
mojaz
==
1
)
map
[
x
][
y
]
=
0
;
if
(
map
[
x
][
y
]
==
1
||
map
[
x
][
y
]
==
2
)
return
false
;
map
[
x
][
y
]
=
type
;
while
(
i
>=
0
&&
j
>=
0
)
{
if
(
map
[
i
][
j
]
==
0
)
break
;
else
{
if
(
map
[
x
][
y
]
!=
map
[
i
][
j
])
{
count
++;
}
}
if
((
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
y
-
j
)
&&
(
map
[
x
][
y
]
==
map
[
i
][
j
]
&&
count
==
x
-
i
)
&&
count
!=
1
)
{
map
[
x
][
y
]
=
0
;
mojaz
=
1
;
yes
=
1
;
return
true
;
}
i
--;
j
--;
}
map
[
x
][
y
]
=
0
;
return
false
;
}
/**
* checks if the game has ended
* whether there is no empty place or one of the nuts has finished
* @param map
* @return
*/
public
boolean
checkEnd
(
int
[][]
map
)
{
int
counter
=
0
,
counter1
=
0
,
counter2
=
0
;
//int[][] map = ground.getNuts();
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
if
(
map
[
i
][
j
]
==
0
)
counter
++;
else
if
(
map
[
i
][
j
]
==
1
)
counter1
++;
else
if
(
map
[
i
][
j
]
==
2
)
counter2
++;
}
}
return
counter
>
0
&&
counter1
!=
0
&&
counter2
!=
0
;
}
/**
* prints scores of each player
* @param map
*/
public
void
score
(
int
[][]
map
)
{
int
count1
=
0
,
count2
=
0
;
//int[][] map = ground.getNuts();
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
if
(
map
[
i
][
j
]
==
1
)
count1
++;
else
if
(
map
[
i
][
j
]
==
2
)
count2
++;
}
}
System
.
out
.
println
(
"player 1: "
+
count1
);
System
.
out
.
println
(
"player 2: "
+
count2
);
}
/**
* prints the winner
* @param map
*/
public
void
winner
(
int
[][]
map
)
{
int
counter1
=
0
,
counter2
=
0
;
//int[][] map = ground.getNuts();
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
if
(
map
[
i
][
j
]
==
1
)
counter1
++;
else
if
(
map
[
i
][
j
]
==
2
)
counter2
++;
}
}
if
(
counter1
+
counter2
==
64
||
counter1
==
0
||
counter2
==
0
)
{
if
(
counter1
>
counter2
)
System
.
out
.
println
(
"player 1 wins"
);
else
if
(
counter1
<
counter2
)
System
.
out
.
println
(
"player 2 wins"
);
else
System
.
out
.
println
(
"we have a tie"
);
}
}
public
boolean
all
(
int
m
,
int
n
,
int
type
,
int
[][]
map
){
setMojaz
(
0
);
setMojaz
(
0
);
if
(
ruleCheckDown
(
m
,
n
,
type
,
map
)
||
ruleCheckUp
(
m
,
n
,
type
,
map
)
||
ruleCheckRight
(
m
,
n
,
type
,
map
)
||
ruleCheckLeft
(
m
,
n
,
type
,
map
)
||
ruleCheckUpRight
(
m
,
n
,
type
,
map
)
||
ruleCheckUpLeft
(
m
,
n
,
type
,
map
)
||
ruleCheckDownRight
(
m
,
n
,
type
,
map
)
||
ruleCheckDownLeft
(
m
,
n
,
type
,
map
))
{
setYes
(
0
);
setMojaz
(
0
);
return
true
;
}
setYes
(
0
);
setMojaz
(
0
);
return
false
;
}
public
boolean
input
(
int
x
,
int
y
,
int
type
,
int
[][]
map
){
int
check
=
0
;
if
(
x
>
0
&&
x
<=
8
)
check
++;
if
(
y
>
0
&&
y
<=
8
)
check
++;
if
(
check
==
2
&&
all
(
x
-
1
,
y
-
1
,
type
,
map
))
return
true
;
return
false
;
}
/**
* checks if there is no place for the player to put its nut then it prints pass and return true
* @param type
* @param map
* @return
*/
public
boolean
pass
(
int
type
,
int
[][]
map
)
{
int
counter
=
0
;
setYes
(
0
);
setMojaz
(
0
);
for
(
int
n
=
0
;
n
<
8
;
n
++)
{
for
(
int
m
=
0
;
m
<
8
;
m
++)
{
if
(
map
[
n
][
m
]
==
0
)
{
if
(
all
(
m
,
n
,
type
,
map
))
counter
++;
setYes
(
0
);
setMojaz
(
0
);
}
}
}
if
(
counter
==
0
)
{
System
.
out
.
println
(
"PASS"
);
return
true
;
}
return
false
;
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment