Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 15:12   #1
Кристинка89
Форумчанин
 
Регистрация: 09.02.2011
Сообщений: 163
По умолчанию Перевод программы (С++)

ПОМОГИТЕ ПЕРЕВЕСТИ ПРОГРАММУ НА С++.

Код:
/**

 * Абстрактный класс ячейки минного поля 

public abstract class Cell {

  public static final int OPENED = 0;

  public static final int CLOSED = 1;

  

  protected int status;



  protected int left, top;



  public Cell(int left, int top) {

    super();

    

    this.left = left;

    this.top = top;

    this.status = Cell.CLOSED;

  }

  

  /**

   * Открыть данную ячейку. Будем считать, что в этой операции происходит некоторая

   * ресурсоемкая операция. Например, загрузка изображения, для отображения содержимого ячейки. 

   */

  public void open() {  

    this.status = Cell.OPENED;

  }



  public int getLeft() {

    return left;

  }

  

  public int getTop() {

    return top;

  }

  

  public int getStatus() {

    return status;

  }



  /**

   * Единственная абстрактная операция, возвращаяет количество очков за открытие данной ячейки.

   */

  public abstract int getPoints();  

}

/**

 * Уточнение ячейки минного поля, в качестве пустой ячейки 

 */

public class Empty extends Cell {

  

  public Empty(int left, int top) {

    super(left, top);

    

    // загружаем тяжелое изображение пустой ячейки.

  }



  @Override

  public int getPoints() {

    return 10;  // 10 очков за открытую пустую ячейку

  }

}



/**

 * Уточнение ячейки, как ячейки с миной. 

 */

public class Mine extends Cell {

  

  public Mine(int left, int top) {

    super(left, top);

    

    // загружаем тяжелое изображение ячейки c миной

  }



  @Override

  public int getPoints() {

    return 100;   // 100 очков за открытую мину

  }

}



/**

 * Прокси для пустой ячейки 

 */

public class EmptyProxy extends Cell {

  private Empty proxy; // ссылка на пустую ячейку



  public EmptyProxy(int left, int top) {

    super(left, top);

    this.proxy = null;

  }



  /**

   * Ленивая инициализация пустой ячейки

   */

  @Override

  public void open() {

    if (proxy == null) {

      proxy = new Empty(left, top);

    }

    

    proxy.open();

  }



  @Override

  public int getLeft() {

    if (proxy == null) {

      return left;

    } else {

      return proxy.getLeft();

    }

  

  }

  

  @Override

  public int getTop() {

    if (proxy == null) {

      return top;

    } else {

      return proxy.getTop();

    }

  }



  @Override

  public int getStatus() {

    if (proxy == null) {

      return status;

    } else {

      return proxy.getStatus();

    }

  }



  @Override

  public int getPoints() {

    if (proxy == null) {

      return 10;

    } else {

      return proxy.getPoints();

    }

  }

}



/**

 * Прокси для ячейки с миной

 */

public class MineProxy extends Cell {

  private Mine proxy;



  public MineProxy(int left, int top) {

    super(left, top);

    

    this.proxy = null;

  }

  

  /**

   * Ленивая инициализация ячейки с миной 

   */

  @Override

  public void open() {

    if (proxy == null) {

      proxy = new Mine(left, top);

    }

    

    proxy.open();

  }



  @Override

  public int getLeft() {

    if (proxy == null) {

      return left;

    } else {

      return proxy.getLeft();

    }

  

  }

  

  @Override

  public int getTop() {

    if (proxy == null) {

      return top;

    } else {

      return proxy.getTop();

    }

  }



  @Override

  public int getStatus() {

    if (proxy == null) {

      return status;

    } else {

      return proxy.getStatus();

    }

  }



  @Override

  public int getPoints() {

    if (proxy == null) {

      return 100;

    } else {

      return proxy.getPoints();

    }

  }

}



/**

 * Использование

 */

public class Main {

  public static void main(String[] args) {

    Cell cells[][] = new Cell[10][10];

    

    for (int i=0; i<10; i++) {

      for (int j=0; j<10; j++) {

        

        if (i+j % 2 == 0) {

          cells[i][j] = new MineProxy(i, j);

        } else {

          cells[i][j] = new EmptyProxy(i, j);

        }

      }

    }

    

    for (int i=0; i<10; i++) {

      for (int j=0; j<10; j++) {

        cells[i][j].open();

      }

    }

  }

}
Кристинка89 вне форума Ответить с цитированием
Старый 22.11.2011, 15:45   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Кристинка89

Репутация: -6

Господа, за что так замордовали, то есть заминусовали деввачГу? Неужели такая злостная попрошайка? даже помогать не хочется (((Ж

Ну да ладно, первый класс переведу, дальше - сама...
А вообще, стоит задуматься о правильности выбранного пути. Домохозяйка - тоже неплохой вариант... :D

Код:
class Cell {
public:
  virtual ~Cell() {}
  static const int OPENED = 0;

  static const int CLOSED = 1;

protected:
  int status;
  int left, top;

public:
  Cell(int _left, int _top) : left(_left), top(_top), status(CLOSED)  {
  }

  virtual void open() {  
    this.status = OPENED;
  }

  virtual int getLeft() const {
    return left;
  }

  virtual int getTop() const {
    return top;
  }

  virtual int getStatus() const {
    return status;
  }

  virtual int getPoints() const = 0; 
};
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы на Delphi iron_cross Общие вопросы Delphi 0 10.10.2011 17:03
Перевод программы с Паскаль на С++ Sentteriys Общие вопросы C/C++ 1 16.05.2011 22:40
Перевод программы с Pascal в C++ !!! !! ProgFrog Помощь студентам 0 09.04.2011 14:21
Перевод программы с Pascal в C++ GoodSpirit Помощь студентам 4 19.05.2010 18:04