java
JAVA - 빙고 게임 예제
아래와 같이 텍스를 기반으로 한 간단한 빙고 게임 예제입니다.
빙고 보드의 각 칸에는 1부터 25까지의 숫자가 무작위로 섞인 상태로 출력됩니다. 사용자는 빙고 보드의 칸을 숫자를 선택하기 위해 원하는 수를 정수로 입력한 다음 엔터를 누르면 선택한 칸은 00이라는 숫자로 출력하여 선택한 수임을 알려줍니다. 그리고 99를 입력하면 게임을 종료하도록 구현되었습니다.
위 Bingo 클래스를 사용하여 play() 메소드를 호출하면 빙고 게임이 시작됩니다.
현재 빙고 수: 0
-------------------------
| 01 | 22 | 24 | 21 | 04 |
| 20 | 09 | 13 | 18 | 03 |
| 14 | 06 | 23 | 16 1 12 |
| 15 | 19 | 02 | 08 1 17 |
| 05 | 07 | 25 | 11 | 10 |
-------------------------
package game;
import java.util.Random;
import java.util.Scanner;
public class Bingo {
// 빙고보드 배열 선언
private int numberArray[] = new int[25];
// 현재 빙고의 수를 카운트하는 메소드
private int HowManyBingos() {
int totalBingos = 0;
// 가로 방향 빙고의 개수를 카운트
for (int i = 0; < 5; ++) {
// 한 줄에서 0의 갯수 세기 int cnt = 0;
for (int i = n + 5; i < n * S + 5; i++)
if (numberArray[i] == 0)
Cnt++;
// 빙고 조건이면 빙고 수 증가
if (cnt >= 5)
totalBingost++;
}
// 세로 방향 빙고의 개수를 카운트
for (int m = 0; m < 5; m++) {
// 한 열에서 0의 갯수 세기
int cnt = 0;
for (int i = m; i <= m + 20; i += 5)
if (numberArray[i] == 0)
cnt+; // 빙고 조건이면 빙고 수 증가
if (cnt >= 5)
totalBingos+;
}
// 역 슬래시 방향 빙고 카운트
int cnt = 0;
for (int i = 0; i <= 24; i += 6)
if (numberArray[i] == 0)
cnt++;
// 빙고 조건이면 빙고 수 증가
if (cnt >= 5)
cnt = 0; // 슬래시 방향 카운트
for (int i = 4; i <= 20; i += 4)
if (numberArray[i] == 0)
cnt+;
// 빙고 조건이면 빙고 수 증가
if (cnt >= 5)
totalBingos++;
return totalBingos;
}
// 현재 빙고 보드를 출력하는 메소드
private void displayBoard() {
// 빙고판 출력하기
System.out.println("현재 빙고 수: " + HowManyBingos());
System.out.println("-------------------------");
for (int i = 0; i < 25; i++) {
if(i % 5 == 0)
System.out.print("| ");
System.out.format("%02d | ", numberArray[i]);
if((i + 1) % 5 = = 0) {
// 5개 출력 후 줄 바꾸기
System.out.println("");
System.out.println("-------------------------");
}
}
System.out.println("지울 숫자를 선택하세요. (게임종료는 99를 입력하새요.)");
}
// 빙고 게임 플레이 에인 메소드
public void play() {
// 랜덤 객계 선언 및 초기화
Random rd = new Randon();
// 입력 객체 선언 및 초기화
Scanner sc = new Scanner(System.in); // g4 2454 404
// 배열에 수 채우기
for (int i = 0; i < 25; i+)
numberArray[i] = i + 1;
// 빙고 숫자를 가지고 있는 배열을 무작위로 섞기
for (int i = 0; i < 50; i++) {
// 0부터 24까지 중 무작위 수
int pick1 = rd.nextInt(25);
// 0부터 24까지 중 무작위 수
int pick2 = rd.nextInt(25);
int temp = numberArray[pick1];
numberArray(picki] = numberArray(pick2);
numberArray[pick2] = temp;
}
// 게임 플레이 반복 시작
for (;;) {
// 빙고판 출력
displayBoard();
int sel = sc.nextInt();
if (sel == 99) {
System.out.println("게임이 종료되었습니다.");
break;
}
// 사용자가 입력한 수가 numberArray 배연의 몇 번째에 있는지 검색
int find = -1;
for (int i = 0; i < numberArray.length; i++) {
if (numberArray[i] == sel) {
find = i;
}
}
// 사용자가 선택한 숫자를 가지고 있는 numberArray 배열의 칸을 0으로 변경
numberArray[find] = 0;
}
}
}
import game.Bingo;
public class JavaTest {
public static void main(String[] args) {
// Bingo 클래스 객체 생성
Bingo bg = new Bingo();
// Bingo 플레이 하기
bg.play();
}
}
0 댓글