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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
CD-RW
Сообщений: n/a
#1

Игра Реверси - C++

28.03.2010, 12:10. Просмотров 2748. Ответов 3
Метки нет (Все метки)

Вечер добрый ) у меня к общественности большая просьба, без помощи настоящих программистов мне не обойтись...
Суть дела вот в чем: у меня курсовик на тему: разработка игры "Реверси". Имеется код этой игры на С++. Я прошу помочь разобраться в каждой строке программы, ибо я полный нуб.
И вообще самый первый вопрос: какой проект мне нужно создать, чтобы окно с игрой открылось?
Вот сам код:
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <windows.h>
#pragma hdrstop
bool player;
typedef unsigned char uchar;
uchar board[8][8];
void* pboard;
#pragma argsused
BOOL WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
 randomize();
 return true;
}
//---------------------------------------------------------------------------
extern "C" __export void __fastcall InitBoard(bool pl, void* nboard)
{
 player=pl;
 pboard=nboard;
}
//---------------------------------------------------------------------------
bool __fastcall CanMove(int x,int y)
{
 if(board[x][y]!=2)
  return false;
 bool curcolor = player, oppcolor = 1-player;
 if(x<7&&board[x+1][y]==oppcolor)
  for(int i=x+2;i<8;i++)
   if(board[i][y]==curcolor) return true;
   else if(board[i][y]==2) break;
 if(x>0&&board[x-1][y]==oppcolor)
  for(int i=x-2;i>=0;i--)
   if(board[i][y]==curcolor) return true;
   else if(board[i][y]==2) break;
 if(y<7&&board[x][y+1]==oppcolor)
  for(int i=y+2;i<8;i++)
   if(board[x][i]==curcolor) return true;
   else if(board[x][i]==2) break;
 if(y>0&&board[x][y-1]==oppcolor)
  for(int i=y-2;i>=0;i--)
   if(board[x][i]==curcolor) return true;
   else if(board[x][i]==2) break;
 if(x<7&&y<7&&board[x+1][y+1]==oppcolor)
  for(int i=x+2,j=y+2;i<8&&j<8;i++,j++)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x>0&&y>0&&board[x-1][y-1]==oppcolor)
  for(int i=x-2,j=y-2;i>=0&&j>=0;i--,j--)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x>0&&y<7&&board[x-1][y+1]==oppcolor)
  for(int i=x-2,j=y+2;i>=0&&j<8;i--,j++)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x<7&&y>0&&board[x+1][y-1]==oppcolor)
  for(int i=x+2,j=y-2;i<8&&j>=0;i++,j--)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 return false;
}
//---------------------------------------------------------------------------
int __fastcall GetPlacesToSet(int *xs, int *ys)
{
 int num=0;
 for(int i=0;i<8;i++)
  for(int j=0;j<8;j++)
   if(CanMove(i,j))
   {
    xs[num]=i;
    ys[num++]=j;
   }
 return num;
}
//---------------------------------------------------------------------------
extern "C" __export void __fastcall ComputerMove(int &x, int &y)
{
 CopyMemory(board,pboard,sizeof(board));                //Копирую доску для её использования
 int *xs=new int[64],*ys=new int[64],*pls=new int[64],n;
 n=GetPlacesToSet(xs,ys);                       //Получаю места, куда можно поставить фишку (n - количество мест)
 if(n==0)                               //Если мест нет, то
 {
  delete [] xs;                             //Удаляем переменные,
  delete [] ys;
  delete [] pls;
  x=-1;                                 //Устанавливаем значения позиции, куда поставить в -1
  y=-1;
  return;                               //Завершаем работу.
 }                                  //Иначе
 n=random(n);                               //Получаем случайную позицию (это самый простой вариант игры компьютера)
 x=xs[n];                               //Получаем координату x
 y=ys[n];                               //Получаем координату y
 delete [] xs;                              //Удаляем переменные
 delete [] ys;
 delete [] pls;
}                                   //Завершаем работу.
//---------------------------------------------------------------------------
extern "C" __export void __fastcall GetLibraryInformation(int &level,char* &author,char* &releaseday,char* &version,int &build)
{
 level=0;
 author="Янкин Н.В.";
 releaseday="01/09/2002";
 version="1.0.0";
 build=1;
}
//---------------------------------------------------------------------------
Заранее благодарю за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 12:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Игра Реверси (C++):

Реверси - C++
Помогите пожалуйста! У кого есть исходник для консольного вида? очень срочно нужен

Розробка логічної гри "реверси" С++ - C++
Помогите разобраться в коде: #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;stack&gt; using namespace std; #define...

Разобраться с кодом "Реверси" - C++
Помжіть розібратися з кодом на С++ #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Игра слов, игра Scrabble - C++
Задание: Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в...

Игра на C++ - C++
Нужно написать какую-небуть не особо сложную игру на C++. В голову приходять разные арканоиды/танчики/бомбермены, но для них, насколько я...

2D игра на C/C++ - C++
Вообщем задача не из простых (лично для меня) , т.к. что-то могу , а чему-то мне нужно научиться . В институте задали курсовую работу -...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
terkel92
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 9
03.03.2015, 17:34 #2
Привет. Ти писал курсовую на тему реверси.
У меня такая ж тема.
можеш подсказать штото, хотя би з чево начать?
Буду благодарен
0
Raali
03.03.2015, 18:18
  #3

Не по теме:

Я прошу помочь разобраться в каждой строке программы
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
 if(board[x][y]!=2)
  return false;
 bool curcolor = player, oppcolor = 1-player;
 if(x<7&&board[x+1][y]==oppcolor)
  for(int i=x+2;i<8;i++)
   if(board[i][y]==curcolor) return true;
   else if(board[i][y]==2) break;
 if(x>0&&board[x-1][y]==oppcolor)
  for(int i=x-2;i>=0;i--)
   if(board[i][y]==curcolor) return true;
   else if(board[i][y]==2) break;
 if(y<7&&board[x][y+1]==oppcolor)
  for(int i=y+2;i<8;i++)
   if(board[x][i]==curcolor) return true;
   else if(board[x][i]==2) break;
 if(y>0&&board[x][y-1]==oppcolor)
  for(int i=y-2;i>=0;i--)
   if(board[x][i]==curcolor) return true;
   else if(board[x][i]==2) break;
 if(x<7&&y<7&&board[x+1][y+1]==oppcolor)
  for(int i=x+2,j=y+2;i<8&&j<8;i++,j++)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x>0&&y>0&&board[x-1][y-1]==oppcolor)
  for(int i=x-2,j=y-2;i>=0&&j>=0;i--,j--)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x>0&&y<7&&board[x-1][y+1]==oppcolor)
  for(int i=x-2,j=y+2;i>=0&&j<8;i--,j++)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
 if(x<7&&y>0&&board[x+1][y-1]==oppcolor)
  for(int i=x+2,j=y-2;i<8&&j>=0;i++,j--)
   if(board[i][j]==curcolor) return true;
   else if(board[i][j]==2) break;
да тут по-моему был использован соурс код обфускатор, так что увы (

0
terkel92
0 / 0 / 0
Регистрация: 03.03.2015
Сообщений: 9
09.05.2015, 13:54 #4
Raali, Привет, в тебе йде етот код?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2015, 13:54
Привет! Вот еще темы с ответами:

Игра на C++ - C++
Здравствуйте! Интересует такой вопрос: При знаниях: Переменные, условия, циклы, функции, библиотеки в языке C++, можно ли создать...

Игра - C++
Доброе время суток! Хочу написать свою первую, простую игру на С++. Посоветуйте с чего начать.

игра (с++) - C++
Здравствуйте! Нужно составить игру про шарики. Если в линии встречаются 3 или больше одинаковых цветов шарико, то нужно этот ряд шаров...

Игра на С++ - C++
Ну в общем нужна вам или нет, но всё равно выложу:) Это крестики-нолики. #include &lt;graphics.h&gt; #include &lt;stdlib.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.05.2015, 13:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru