package day058_2;
import java.util.Scanner;
class SettingGame {
int[][] settingGame(String data) {
String[] tmp = data.split("\n");
String[] tmpGame = tmp[0].split(",");
int[][] game = new int[tmp.length][tmpGame.length];
for (int i = 0; i < tmp.length; i++) {
for (int j = 0; j < tmpGame.length; j++) {
tmpGame = tmp[i].split(",");
game[i][j] = Integer.parseInt(tmpGame[j]);
}
}
return game;
}
int[][] settingBlock(String block) {
String[] tmp = block.split("\n");
String[] tmpGame = tmp[0].split(",");
int[][] blockShape = new int[tmp.length][tmpGame.length];
for (int i = 0; i < tmp.length; i++) {
for (int j = 0; j < tmpGame.length; j++) {
tmpGame = tmp[i].split(",");
blockShape[i][j] = Integer.parseInt(tmpGame[j]);
}
}
return blockShape;
}
}
public class Ex00605테트리스이동하기문제답없음 {
public static void main(String[] args) {
String data = "";
data += "2,0,0,0,0,1,0,0,0,0\n";
data += "2,0,0,0,0,1,0,0,0,0\n";
data += "2,2,2,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,0,0,0,0,0\n";
data += "0,0,0,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,1,0,0,0,0\n";
data += "0,0,0,0,0,0,0,0,0,0\n";
System.out.println(data);
String block = "";
block += "2,0,0\n";
block += "2,0,0\n";
block += "2,2,2\n";
System.out.println(block);
SettingGame sg = new SettingGame();
int[][] blockShape = sg.settingBlock(block);
int[][] game = sg.settingGame(data);
// 문제 ==> "1)상 2)하 3)좌 4)우" 를 입력할때마다 해당방향으로 블록전체이동
// 조건) ==> 1은 지나갈수없다.
/*
"2,0,0,0,0,1,0,0,0,0\n";
"2,0,0,0,0,1,0,0,0,0\n";
"2,2,2,0,0,1,0,0,0,0\n";
"0,0,0,0,0,0,0,0,0,0\n";
"0,0,0,0,0,1,0,0,0,0\n";
"0,0,0,0,0,1,0,0,0,0\n";
"0,0,0,0,0,1,0,0,0,0\n";
"0,0,0,0,0,1,0,0,0,0\n";
"0,0,0,0,0,1,0,0,0,0\n";
"0,0,0,0,0,0,0,0,0,0\n";
*/
int cnt = 0;
for (int i = 0; i < blockShape.length; i++) {
for (int j = 0; j < blockShape[i].length; j++) {
if(blockShape[i][j]==2){
cnt++;
}
}
System.out.println();
}
while (true) {
int[] blockY = new int[cnt];
int[] blockX = new int[cnt];
int x = 0;
int y = 0;
for (int i = 0; i < game.length; i++) {
for (int j = 0; j < game[i].length; j++) {
System.out.print(game[i][j]);
if(game[i][j]==2){
blockY[y] = i;
blockX[x] = j;
y++;
x++;
}
}
System.out.println();
}
System.out.println();
for (int i = 0; i < blockShape.length; i++) {
for (int j = 0; j < blockShape[i].length; j++) {
System.out.print(blockShape[i][j]);
}
System.out.println();
}
for (int i=0; i<blockX.length; i++){
System.out.println("y " + blockY[i] + " x " + blockX[i]);
}
Scanner sc = new Scanner(System.in);
System.out.println("1)상 2)하 3)좌 4)우");
int choice = sc.nextInt();
if (choice == 1) {
if(blockY[0]-1<0){
System.out.println("이동불가");
continue;
}
boolean t = false;
for (int i = 0; i < blockX.length; i++) {
if(game[blockY[i]-1][blockX[i]]!=1) {
t = true;
}else {
t=false;
break;
}
}
if(t) {
for (int i = 0; i < blockX.length; i++) {
game[blockY[i]][blockX[i]]=0;
}
for (int i = 0; i < blockX.length; i++) {
game[blockY[i] - 1][blockX[i]] = 2;
}
}else{
System.out.println("이동불가");
}
} else if (choice == 2) {
if(blockY[2]+1>= game.length){
System.out.println("이동불가 1");
continue;
}
boolean t = false;
for (int i = 0; i < blockX.length; i++) {
if(game[blockY[i]+1][blockX[i]]!=1) {
t = true;
}else {
t=false;
break;
}
}
if(t) {
for (int i = 0; i < blockX.length; i++) {
game[blockY[i]][blockX[i]]=0;
}
for (int i = 0; i < blockX.length; i++) {
game[blockY[i] + 1][blockX[i]] = 2;
}
}else{
System.out.println("이동불가 2");
}
} else if (choice == 3) {
if(blockX[0]-1<0){
System.out.println("이동불가");
continue;
}
boolean t = false;
for (int i = 0; i < blockX.length; i++) {
if(game[blockY[i]][blockX[i]-1]!=1) {
t = true;
}else {
t=false;
break;
}
}
if(t) {
for (int i = 0; i < blockY.length; i++) {
game[blockY[i]][blockX[i]]=0;
}
for (int i = 0; i < blockY.length; i++) {
game[blockY[i]][blockX[i]-1] = 2;
}
}else{
System.out.println("이동불가");
}
} else if (choice == 4) {
if(blockX[4]+1>= game.length){
System.out.println("이동불가");
continue;
}
boolean t = false;
for (int i = 0; i < blockX.length; i++) {
if(game[blockY[i]][blockX[i]+1]!=1) {
t = true;
}else {
t=false;
break;
}
}
if(t) {
for (int i = 0; i < blockX.length; i++) {
game[blockY[i]][blockX[i]] = 0;
}
for (int i = 0; i < blockX.length; i++) {
game[blockY[i]][blockX[i]+1] = 2;
}
}else{
System.out.println("이동불가");
}
} else {
System.out.println("retry");
}
}
}
}