2014-10-17 2 views
-2

Я хочу иметь возможность использовать потоки для запуска двух циклов одновременно в моей программе для своего рода игры, такой как программа. Однако я не совсем уверен, как использовать Threads, и я сталкиваюсь с ошибками, о которых я ничего не знаю. Я отправлю код, но игнорирую большинство из них, это несколько пустая оболочка того, что я хочу. Мне просто нужно, чтобы потоки работали, чтобы начать очищать все это.
Я получаю сообщение об ошибке «не абстрактно и не переопределяет», и он выделяет раздел «класс игры реализует runnable». Это код:Проблема с Threading

public class game implements Runnable 
{ 
@Override 
public void run(int time){ 
    try{ 
     time = 1; 
     while (time<=10){ 
      Thread.sleep(10); 
      System.out.print(time); 
      time++;    
     } 
     char clearer = (char)(12); 
     System.out.print(clearer); 
     System.out.println("You have ran out of time! Game over!"); 
     System.exit(0); 
    }catch (Exception e){} 
} 

public static void main (String args[]) throws Exception{ 
    System.out.println("Welcome to pseudo-Where's Wally, look for the lower cal l character."); 
    Thread.sleep(500); 
    System.out.println("You get 10 seconds to find it."); 
    Thread.sleep(500); 
    System.out.println("Ready?.."); 
    char clear = (char)(12); 
    Thread.sleep(500); 
    System.out.print(clear); 
    boolean timer = false, col = false, guess = false; 
    int length = 5, time = 0, rowNum = 1, y = 0;   
    String manip = (""); 
    int x = (length*length); 
    Random gen = new Random(); 
    int find = gen.nextInt(x)+1; 
    for (int collumn = 0; collumn<=length; collumn++){ 
     for (int row = 0; row<=length; row++){ 
      while (!col){ 
       y++; 
       System.out.print(" "+y);      
       if (y-1 == length){ 
        System.out.println(); 
        System.out.println(); 
        col = true; 
       } 
      } 
      System.out.print(" I"); 
      manip = manip + (" I"); 
     } 
     System.out.println("\t" + rowNum); 
     rowNum++;    
     manip = manip + (" I");    
    } 

    boolean contin = false; 
    do{ 
     if (find%3==0){ 
      contin = true; 
      find = find - 1; 
     } else if (find%3>0){ 
      find = find - 1; 
     } 
    }while (!contin); 

    String newManip = manip.substring(0,find)+'l'+manip.substring(find+1); 
    String subOne = newManip.substring(0,18); 
    String subTwo = newManip.substring(18,36); 
    String subThree = newManip.substring(36,54); 
    String subFour = newManip.substring(54,72); 
    String subFive = newManip.substring(72,90); 
    String subSix = newManip.substring(90,108); 
    System.out.println(subOne); 
    System.out.println(subTwo); 
    System.out.println(subThree); 
    System.out.println(subFour); 
    System.out.println(subFive); 
    System.out.println(subSix); 

    Thread threadA = new ThreadA();   

    threadA.start(); 

    while(guess != true){ 
     System.out.print("Answer (Only one try): "); 
     int answer = sc.nextInt(); 
     if (answer == finalAnswer){ 
      guess = true;     
     }  
    } 
} 

}

Приветствия за любую помощь.

+0

Ваша ошибка не имеет ничего общего с потоками. –

+0

Вы, кстати, не переопределяете метод 'run()', поэтому вы действительно не реализуете «Runnable». – Voicu

+0

Не могли бы вы тогда помочь, если знаете, что такое ошибка? – joescull

ответ

1

Для реализации Runnable вам необходимо переопределить метод run() (если только ваш класс не является abstract, что открывает другое обсуждение). Что вы имеете в своем классе game, это run(int time), что не учитывается.

Из Runnable API:

Runnable интерфейс должен быть реализован любым классом, экземпляры которого предназначены для исполнения на волоске. Класс должен определять метод без аргументов, называемый run.

Полужирный, добавленный мной.

Смежные вопросы