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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перестановка элементов матрицы, симметричных относительно главной диагонали http://www.cyberforum.ru/cpp-beginners/thread109618.html
help >> Осуществить в исходной матрице Y пятого порядка перестановку элементов, симметричных относительно главной диагонали.
C++/CLI WinForms Динамический массив: "Попытка чтения или записи в защищенную память" Здравстувуйте. Пишу программу построения графиков. В целях оптимизации вынес функцию вывода отдельно от всех прочих вычислений. Вычисляю положение точек на форме используя исходные значения, которые храню в таблице и для передачи координат функции вывода использую динамический массив вида: extern float** M; M=(float **) calloc(data->ColumnCount-1, sizeof(float *)); for (i=0;... http://www.cyberforum.ru/cpp-beginners/thread109605.html
C++ С++ Одномерный массив
Нужно решить задачу на С++, с одномерным массивом: Поменять местами последний нулевой и последний нечетный элемент в одномерном массиве.Просчитать среднее арифметическое элементов между ними. Оформить с функциями.если возможно и с использованием русификатора) Rus) Заранее спасибо! Очень буду признательна!!!!
C++ Реализация стека
Помогите создать структуру данных типа "стек", элементы которого занимают 10 кб. Операции, вы-полняемые над стеком: проверить, стек пуст/не пуст; втолкнуть элемент; вытолкнуть элемент; просмотреть вершину стека; обменять значения двух верхних элементов стека.
C++ Visual C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread109580.html
Даны 10 целых чисел.найти порядковый номер второго положительного числа. Напишите пожалуйста эту программу
C++ Вывод последовательности симболов Здраствуйте, Буду очень признателен если кто либо откликнется и поможет с решением задачками на Си, вот собствено условие: Считывает последовательность символов (0 – конец последователь*ности). Подсчитывает количества вхождений в последовательность: цифр 3, 7, букв К или к. Нарисовать частотную гистограмму с помощью звездочек. Использовать: операторы выбора switch (в языке C) для рисования... подробнее

Показать сообщение отдельно
CD-RW
Сообщений: n/a
28.03.2010, 12:10     Игра Реверси
Вечер добрый ) у меня к общественности большая просьба, без помощи настоящих программистов мне не обойтись...
Суть дела вот в чем: у меня курсовик на тему: разработка игры "Реверси". Имеется код этой игры на С++. Я прошу помочь разобраться в каждой строке программы, ибо я полный нуб.
И вообще самый первый вопрос: какой проект мне нужно создать, чтобы окно с игрой открылось?
Вот сам код:
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;
}
//---------------------------------------------------------------------------
Заранее благодарю за помощь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru