스레드와 친해지기 위해 달팽이 경주 게임을 만들어봤어요.
랜덤으로 가져온 달팽이의 스피드에 따라 각 달팽이 배열에 게이지를 추가하는 스레드와
판을 보여주는 스레드
사용한 스레드는 총 4개입니다.
게임을 시작했을 때
쭉쭉쭉 골인 지점까지 가는 중..
달팽이2가 먼저 골인 지점에 도착했네요!
전체 소스코드>>
package d20230508;
import java.util.Random;
class show implements Runnable {
@Override
public void run() {
while (true) {
if (RunSnail.board[0][20] != null || RunSnail.board[1][20] != null || RunSnail.board[2][20] != null) {
RunSnail.showflag = false;
if (RunSnail.board[0][20] != null) {
System.out.println(RunSnail.board[0][0] + "승리!!");
}
if (RunSnail.board[1][20] != null) {
System.out.println(RunSnail.board[1][0] + "승리!!");
}
if (RunSnail.board[2][20] != null) {
System.out.println(RunSnail.board[2][0] + "승리!!");
}
return;
}
for (int k = 1; k < 10; k++) {
for (int n = 0; n < 80; n++) {
System.out.println();
}
System.out.println("\t\t 골인지점>>|");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 21; j++) {
if (RunSnail.board[i][j] != null) {
System.out.print(RunSnail.board[i][j]);
}
}
System.out.println("♥");
System.out.println();
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
class RunSnail implements Runnable {
static String board[][] = new String[3][21];
static boolean showflag = true;
int y;
int x;
int speed;
public RunSnail(int y, String name, int speed) {
this.y = y;
this.x = 1;
board[y][0] = name + " ";
this.speed = speed;
}
@Override
public void run() {
System.out.print(board[y][0] + ":");
for (int i = 1; i < 21; i++) {
if (!showflag) {
return;
}
try {
board[y][i] = "-";
Thread.sleep(speed);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Snail {
public static void main(String[] args) {
Random rd = new Random();
String name1 = "달팽이1";
int speed1 = 500 + rd.nextInt(500);
String name2 = "달팽이2";
int speed2 = 500 + rd.nextInt(500);
String name3 = "달팽이3";
int speed3 = 500 + rd.nextInt(500);
Thread s1 = new Thread(new RunSnail(0, name1, speed1));
Thread s2 = new Thread(new RunSnail(1, name2, speed2));
Thread s3 = new Thread(new RunSnail(2, name3, speed3));
Thread show = new Thread(new show());
s1.start();
s2.start();
s3.start();
show.start();
}
}
'Java > Basic' 카테고리의 다른 글
JSP+Servlet Ajax 사용하기 (0) | 2025.02.24 |
---|---|
Java - Socket+Thread 실시간 채팅방 (0) | 2025.02.22 |
Java - JDBC 학생관리프로그램 (0) | 2025.02.22 |
Java - JDBC 소코반 게임 (1) | 2025.02.22 |
Java - JDBC CRUD 게시판 만들기 + 로그관리 (1) | 2025.02.22 |