关注
消消乐
import java.util.Scanner;
publicclass
Main
{
int[][]
map =newint[
10
][
10
];
publicstaticvoid
main
(
String
[]
args
)
{
Main main =
new
Main
()
;
main.
init
()
;
}
void
init
()
{
buildMap()
;
// print();
Scanner
scanner
=
new
Scanner
(
System
.in)
;
while
(scanner.
hasNext
())
{
touch(
scanner
.nextInt())
;
}
}
privatevoid
touch
(int
tar
)
{
int i, j;
if
(
tar
==
100
)
{
i =
9
;
j =
9
;
}
elseif
(
tar
==
1
)
{
i =
0
;
j =
0
;
}
else
{
j =
(
tar
-
1
)
%
10
;
i =
(
tar
-
1
)
/
10
;
}
if
(map[i][j]
!=
-
1
)
{
touch
(i, j)
;
}
zhegnli()
;
// printMap();
print()
;
}
privatevoid
printMap
()
{
for
(
int i =
0
; i <
10
; i++
)
{
StringBuffer sb
=
new
StringBuffer
()
;
for
(
int j =
0
; j <
10
; j++
)
{
sb.
append
(map[i][j]
+
" "
)
;
}
System
.
out
.println(
sb
.toString())
;
}
System
.
out
.println()
;
}
privatevoid
print
()
{
int red =
0
, green =
0
, blue =
0
, yellow =
0
, puple =
0
;
for
(
int i =
0
; i <
10
; i++
)
{
for
(
int j =
0
; j <
10
; j++
)
{
int now = map[i][j]
;
if
(now ==
0
)
red++;
else
if
(now ==
1
)
green++;
else
if
(now ==
2
)
blue++;
else
if
(now ==
3
)
yellow++;
else
if
(now ==
4
)
puple++;
}
}
System
.out.
println
(red +
" "
+ green +
" "
+ blue +
" "
+ yellow +
" "
+ puple)
;
}
privatevoid
zhegnli
()
{
for
(
int i =
0
; i <
10
;
)
{
if
(shuIsNull(
i
))
{
moveLeft(
i
)
;
}
else
{
i++;
}
}
for
(
int j =
0
; j <
10
; j++
)
{
int pos =
9
;
for
(
int i =
9
; i >=
0
; i--
)
{
if
(map[i][j]
!=
-
1
)
{
map[pos--
][j]
= map[i][j]
;
}
else
{
// System.out.println("change " + i + ","
+ pos);
}
}
for
(
int i = pos; i >=
0
; i--
)
{
map[i][j]
=
-
1
;
}
}
}
privatevoid
moveLeft
(int
pos
)
{
for
(
int i =
pos
+
1
; i <
10
; i++
)
{
for
(
int j =
0
; j <
10
; j++
)
{
map[j][i -
1
]
= map[j][i]
;
map[j][i]
=
-
1
;
}
}
}
privateboolean
shuIsNull
(int
pos
)
{
for
(
int i =
0
; i <
10
; i++
)
{
if
(map[i][
pos
]
!=
-
1
)
returnfalse;
}
returntrue;
}
privatevoid
touch
(int
i,int
j
)
{
// System.out.println("touch "+i+","+j);
deal
(
i
,
j
, map[
i
][
j
])
;
}
privatevoid
deal
(int
i,int
j,int
tar
)
{
if
(
in
(
i
,
j
)
&& map[
i
][
j
]
==
tar
)
{
map[
i
][
j
]
=
-
1
;
deal
(
i
+
1
,
j
,
tar
)
;
deal
(
i
-
1
,
j
,
tar
)
;
deal
(
i
,
j
+
1
,
tar
)
;
deal
(
i
,
j
-
1
,
tar
)
;
}
}
privateboolean
in
(int
i,int
j
)
{
if
(
i
>=
0
&&
i
<
10
&&
j
>=
0
&&
j
<
10
)
returntrue;
else
returnfalse;
}
privatevoid
buildMap
()
{
String
[]
strs
=
{
"RED,RED,BLUE,BLUE,GREEN,YELLOW,BLUE,YELLOW,RED,PURPLE",
"GREEN,GREEN,GREEN,BLUE,RED,PURPLE,RED,YELLOW,YELLOW,BLUE",
"BLUE,RED,RED,YELLOW,YELLOW,PURPLE,BLUE,GREEN,GREEN,BLUE",
"YELLOW,RED,BLUE,YELLOW,BLUE,RED,PURPLE,GREEN,GREEN,RED",
"YELLOW,RED,BLUE,BLUE,PURPLE,GREEN,PURPLE,RED,YELLOW,BLUE",
"PURPLE,YELLOW,RED,RED,YELLOW,RED,PURPLE,YELLOW,RED,RED",
"YELLOW,YELLOW,GREEN,PURPLE,GREEN,RED,BLUE,YELLOW,BLUE,GREEN",
"RED,YELLOW,BLUE,BLUE,YELLOW,GREEN,PURPLE,RED,BLUE,GREEN",
"GREEN,GREEN,YELLOW,YELLOW,RED,RED,PURPLE,BLUE,BLUE,GREEN",
"PURPLE,BLUE,RED,RED,PURPLE,YELLOW,BLUE,RED,RED,GREEN"
}
;
for
(
int i =
0
; i <
10
; i++
)
{
String
[] curs = strs[i]
.
split
(
","
)
;
for
(
int j =
0
; j <
10
; j++
)
{
String str = curs[j]
;
int tar =
-
1
;
if
(str.
equals
(
"RED"
))
tar =
0
;
else
if
(str.
equals
(
"GREEN"
))
tar =
1
;
else
if
(str.
equals
(
"BLUE"
))
tar =
2
;
else
if
(str.
equals
(
"YELLOW"
))
tar =
3
;
else
if
(str.
equals
(
"PURPLE"
))
tar =
4
;
map[i][j]
= tar;
}
}
}
}
查看原帖
点赞 6
相关推荐
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
537296次浏览 9138人参与
# 晒一晒我的offer #
3056637次浏览 51722人参与
# 在国企工作的人,躺平了吗? #
82716次浏览 1050人参与
# 简历中的项目经历要怎么写 #
403225次浏览 6741人参与
# 你的简历改到第几版了 #
281811次浏览 4325人参与
# 找工作时遇到的神仙HR #
164988次浏览 1693人参与
# 0offer互助地 #
38558次浏览 451人参与
# 我想象的工作vs实际工作 #
82949次浏览 1439人参与
# 春招你拿到offer了吗 #
340005次浏览 5089人参与
# 国企和大厂硬件兄弟怎么选? #
34657次浏览 691人参与
# 学历贬值真的很严重吗? #
6281次浏览 78人参与
# 来选选带哪个offer回家过年 #
126464次浏览 1249人参与
# 来聊聊你目前的求职进展 #
144536次浏览 1629人参与
# 你已经投递多少份简历了 #
269358次浏览 4152人参与
# 如何写一份好简历 #
235790次浏览 3644人参与
# 联想求职进展汇总 #
48564次浏览 688人参与
# 我的失利项目复盘 #
196380次浏览 4339人参与
# 百度工作体验 #
21253次浏览 225人参与
# 实习,投递多份简历没人回复怎么办 #
906142次浏览 16162人参与
# 如何判断面试是否凉了 #
916243次浏览 14067人参与