Форум программистов, компьютерный форум CyberForum.ru

Надо перевести прогу с дельфи на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать строки текстового файла в обратном порядке (справа налево) в другой файл http://www.cyberforum.ru/cpp-beginners/thread1204168.html
Имеется текстовый файл. Переписать его строки в обратном порядке (справа налево) в другой файл. Порядок строк во втором файле должен совпадать с порядком строк в заданном файле. Что тут не так?Как исправить? #include "stdafx.h" #include <iostream> #include <ctime> #include <conio.h> #include <cstring> #include <cstdio> #include <cstdlib>
C++ Ofstream and ostream Как мне определить одну переменную для обоих потоков ? т .ею есть ффункция void Show(??? &out) { out << " Don't look this "; } http://www.cyberforum.ru/cpp-beginners/thread1204167.html
Как пройтись по чужому исходному коду ? C++
visual studio 2008 есть большой многофайловый проект и мне нужно изучить его исходный код как пройтись по его коду от начала до конца? есть ли какие нибудь примочки у visual studio?
C++ Ошибка при компиляции "Size of the type 'char[]' is unknown or zero"
При компиляции, появляется ошибка: Unit1.cpp(15): E2453 Size of the type 'char' is unknown or zero Помогите исправить. Вот текст программы: #include <iostream.h> #include <conio.h> #include <stdlib.h> struct traine { //структура - дерево unsigned long time; //время отправления в секундах
C++ Создать блок схему по тексту программы http://www.cyberforum.ru/cpp-beginners/thread1204119.html
Помогите создать блок схему по тексту программы, плиз очень нужно #include<iostream> #include<conio.h> using namespace std; int main() { setlocale(LC_ALL , "rus"); const int M=4,N=4;
C++ Сумма отрицательных элементов массива В динамическом массиве, состоящем из n вещественных величин. А. Сумму отрицательных элементов массива В. Произведение элементов массива, расположенных между максимальным и минимальным элементами С.упорядочить элементы массива по возрастанию часть А и С сделал работает правельно, но не могу понять почему часть B не правельная помогите кому не сложно #include <iostream> #include... подробнее

Показать сообщение отдельно
VerGeSS
1 / 1 / 0
Регистрация: 02.09.2012
Сообщений: 11
10.06.2014, 08:44     Надо перевести прогу с дельфи на С++
Игровое поле имеет вид прямоугольной площадки, разделенной на поля. Число полей должно быть нечетным. Поля слева покрыты шашками некоторого цвета (я представил их ноликами), поля справа — шашками другого цвета (здесь — крестиками). Среднее поле свободно. Крестики могут передвигаться только влево, нолики — только вправо. Шашка может быть либо подвинута на один шаг, если следующее поле в направлении ее перемещения свободно, либо перепрыгнуть через шашку другого рода, если следующее за ней поле свободно.
Цель игры состоит в том, чтобы привести все X влево, а все 0 вправо, так что конечное состояние должно быть похоже на начальное, и шашки должны поменяться местами (крестики справа, нолики слева).

C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
enum Cell{
  BLACK,
  WHITE,
  EMPTY
};
 
typedef bool (*Player)(std::vector<Cell>&, int);
 
bool Computer(std::vector<Cell>&, int);
bool Human(std::vector<Cell>&, int);
 
bool HasWon(const std::vector<Cell>&, int);
 
int main(void){
  int n=0;
  while(n<9 || (n%2)==0){
    std::cin >> n;
  }
  std::vector<Cell> field = std::vector<Cell>(n);
  field[0]=field[1]=field[2]=field[3]=BLACK;
  field[n-1]=field[n-2]=field[n-3]=field[n-4]=WHITE;
  for(int i=4; i<n-4; ++i) field[i] = EMPTY;
 
  Player players[2] = {Computer, Computer};
 
  int currentPlayer=1;
  do {
    currentPlayer = 1-currentPlayer;
    if(!players[currentPlayer](field, currentPlayer)){
      std::cout << "Player " << currentPlayer+1 << " can't make a turn." << std::endl;
      std::cout << "Player " << 2-currentPlayer << " wins!" << std::endl;
      return 0;
    }
  } while(!HasWon(field, currentPlayer));
 
  std::cout << "Player " << currentPlayer+1 << " wins!" << std::endl;
  return 0;
}
 
bool HasWon(const std::vector<Cell>& field, int player){
  if(player==1) return field[0]==WHITE && field[1]==WHITE && field[2]==WHITE && field[3]==WHITE;
  int n = field.length();
  return field[n-1]==BLACK && field[n-2]==BLACK && field[n-3]==BLACK && field[n-4]==BLACK;
}
 
bool Move(std::vector<Cell>& field, int pos){
  switch(field[pos]){
  case CLEAR:
    return false;
  case WHITE:
    if(pos == 0) return false;
    if(field[pos-1] == CLEAR){
      field[pos] = CLEAR, field[pos-1]=WHITE;
      return true;
    }
    if(pos == 1) return false;
    if(field[pos-2] == CLEAR && field[pos-1] == BLACK){
      field[pos] = CLEAR, field[pos-2]=WHITE;
      return true;
    }
    return false;
  case BLACK:
    if(pos == field.length()-1) return false;
    if(field[pos+1] == CLEAR){
      field[pos] = CLEAR, field[pos+1]=BLACK;
      return true;
    }
    if(pos == field.length()-2) return false;
    if(field[pos+2] == CLEAR && field[pos+1] == WHITE){
      field[pos] = CLEAR, field[pos+2]=BLACK;
      return true;
    }
    return false;
  }
}
 
bool Computer(std::vector<Cell>& field, int player){
  for(int i=0; i<field.length(); ++i) if(field[i] == player && Move(field, i)) return true;
  return false;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru