Java/Test
Java Test.11 - 낚시 게임
Marmellata
2023. 3. 24. 17:47
package Test;
import java.util.Random;
import java.util.Scanner;
public class FishGame {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 낚시 게임 / 호수 5*5 사이즈 / 물고기는 총 3마리, 랜덤좌표로
* 물고기 위치 지정 된 후 낚시 게임 시작, 물고기 좌표는 겹치지 않음
* X 는 포인트, ○는 호수, ● 물고기
* 더이상 이동 불가 구현, 물고기 잡고 이동하면 다시 호수 ○로
* 물고기를 다 잡으면 게임 종료
*/
Random r = new Random();
Scanner sc = new Scanner(System.in);
int fish = 3;
String[][] a = new String[5][5];
int[] randa = new int [3];
int[] randb = new int [3];
int pointa = 0;
int pointb = 0;
int move = 0;
boolean check = true;
for (int i = 0 ; i<randa.length; i++) { // 겹치지 않는 가로 숫자 3개 랜덤 배정
randa[i] = r.nextInt(5);
for (int j =0; i>j; j++) {
if (randa[i]==randa[j]) {
i--;
break;
}
}
}
for (int i = 0; i<randb.length; i++) { // 겹치지 않는 세로 숫자 3개 랜덤 배정
randb[i] = r.nextInt(5);
for (int j =0; i>j; j++) {
if (randb[i]==randb[j]) {
i--;
break;
}
}
}
for(int i=0; i<a.length; i++) { // 게임 초기화
for (int j=0; j<a[i].length; j++) {
a[i][j] = "○";
}
}
for(int i=0; i<randa.length; i++) { // 물고기 위치 랜덤 지정
a[randa[i]][randb[i]] = "●"; // 물고기 위치 표시 , 현재 다 보이는 치트 상태
}
for (int i=0; i<a.length; i++) { // 게임 화면 출력
for (int j=0; j<a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
while(true) { // 낚시 포인트 입력
System.out.println("낚시 포인트를 입력해주세요.");
System.out.print("세로 (0~4) : ");
pointa = sc.nextInt();
if (pointa <0 || pointa>4) {
System.out.println("잘못된 입력입니다.");
continue;
}
while(true) {
System.out.print("가로 (0~4) : ");
pointb = sc.nextInt();
if (pointb <0 || pointb>4) {
System.out.println("잘못된 입력 입니다.");
}
break;
}
break;
}
while(fish>0) { // 물고기 다잡을시 클리어
a[pointa][pointb] = "X";
for (int i=0; i<a.length; i++) { // 게임 화면 출력
for (int j=0; j<a[i].length; j++) {
System.out.print(a[i][j]);
}
System.out.println();
}
for (int j = 0; j<3; j++) {
if((pointa==randa[j])&&pointb==randb[j]) { // 포인트 겹칠시 물고기 삭감
fish--;
}
}
if(fish==0) {
break;
}
System.out.printf("\n 현재 남은 물고기 수 : %d ", fish);
System.out.println("\n\n 포인트를 움직여주세요. \n 1.위 2.아래 3.왼쪽 4.오른쪽");
System.out.print(" 입력 ( 1 ~ 4 ) : ");
move = sc.nextInt();
if (move==1) {
if (pointa==0) {
System.out.println("더이상 이동 할 수 없습니다.\n");
continue;
}
else {
a[pointa][pointb] = "○";
pointa--;
}
}
else if (move==2) {
if (pointa==4) {
System.out.println("더이상 이동 할 수 없습니다.\n");
continue;
}
else {
a[pointa][pointb] = "○";
pointa++;
}
}
else if (move==3) {
if (pointb==0) {
System.out.println("더이상 이동 할 수 없습니다.\n");
continue;
}
else {
a[pointa][pointb] = "○";
pointb--;
}
}
else if (move==4) {
if (pointb==4) {
System.out.println("더이상 이동 할 수 없습니다.\n");
continue;
}
else {
a[pointa][pointb] = "○";
pointb++;
}
}
else {
System.out.println("잘못된 입력 입니다.");
}
}
System.out.println("\n 모든 물고기를 잡았습니다 ! \n 게임 클리어 ! 과제 끝 ! 해방이다 ! ");
}
}
출력 결과
○●○○○
○○○○○
○○○●○
○○●○○
○○○○○
낚시 포인트를 입력해주세요.
세로 (0~4) : 0
가로 (0~4) : 1
○X○○○
○○○○○
○○○●○
○○●○○
○○○○○
현재 남은 물고기 수 : 2
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 2
○○○○○
○X○○○
○○○●○
○○●○○
○○○○○
현재 남은 물고기 수 : 2
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 2
○○○○○
○○○○○
○X○●○
○○●○○
○○○○○
현재 남은 물고기 수 : 2
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 4
○○○○○
○○○○○
○○X●○
○○●○○
○○○○○
현재 남은 물고기 수 : 2
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 4
○○○○○
○○○○○
○○○X○
○○●○○
○○○○○
현재 남은 물고기 수 : 1
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 3
○○○○○
○○○○○
○○X○○
○○●○○
○○○○○
현재 남은 물고기 수 : 1
포인트를 움직여주세요.
1.위 2.아래 3.왼쪽 4.오른쪽
입력 ( 1 ~ 4 ) : 2
○○○○○
○○○○○
○○○○○
○○X○○
○○○○○
모든 물고기를 잡았습니다 !
게임 클리어 ! 과제 끝 ! 해방이다 !