Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JS Coding

[Java] 기초 Java 경마 게임 만들기 본문

Java

[Java] 기초 Java 경마 게임 만들기

JSKJS 2024. 1. 4. 12:45
package homework;


/*
    10마리의 말들이 경주하는 경마 프로그램 작성하기...
    
    말은 Horse라는 이름의 쓰레드 클래스로 작성하는데 이 클래스는 
    말이름(String), 현재위치(int), 등수(int)를 멤버변수로 갖는다.
    그리고, 이 클래스에는 등수를 오름차순으로 처리 할 수 있는 내부 정렬 기준이 있다.
    (Comparable 인터페이스 구현)
    
    경기 구간은 1 ~50 구간으로 되어 있다.
    
    경기가 끝나면 등수 순으로 출력한다.
    
    그리고 경기 중 중간 중간에 각 말들의 현재 위치를 아래와 같이 나타내시오...
    아래)
    
    01번 말 : --------->----------------------------------------
    02번 말 : ----------------->--------------------------------
    ....
    10번 말 : ----------------->--------------------------------
 
 
 */
public class HorseGame {

   public static void main(String[] args) {
	   DisplayHorse[] disArr = new DisplayHorse[] {
            new DisplayHorse("홍길동"),
            new DisplayHorse("이순신"),
            new DisplayHorse("강감찬")
      };
      
      for(DisplayHorse dc : disArr) {
         dc.start();
      }
      
      for(DisplayHorse dc : disArr) {
         try {
            dc.join();
         } catch (InterruptedException e) {
            // TODO: handle exception
         }
      }
      
      System.out.println();
      System.out.println("...경기 결과...");
      System.out.println("순 위 : " + DisplayHorse.setRank);

   }

}

// 말이름  출력하는 쓰레드
class DisplayHorse extends Thread {
   public static String setRank="";
   private String name;
   
   public DisplayHorse(String name) {
      this.name = name;
   }
   
   @Override
   public void run() {
      for(char c='A'; c<='Z'; c++) {
         System.out.println(name + "의 출력문자 : " + c);
         try {
            Thread.sleep((int)(Math.random()*500));
         } catch (InterruptedException e) {
            // TODO: handle exception
         }
      }
      
      System.out.println(name + " 출력 끝...");
      
      //출력이 끝낸 순서대로 이름을 배치한다.
      setRank +=name+ "   ";
   
   }
   
}

 

Thread 상속 받아  동시 프로싱