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

добавить вирт игрока - C++

Восстановить пароль Регистрация
 
Scream137
Сообщений: n/a
24.01.2013, 19:35     добавить вирт игрока #1
Суть самой игры заключается в следующем:
Игрок на экране видит два квадрата, которые разбиты на 100 клеток. На первой площадке игрок расставляет корабли – прямоугольники 1х4, 2х3, 3х2, 4х1. Корабли могут быть повернуты горизонтально или вертикально, но не могут пересекаться. На другой площадке корабли выставляет компьютер, а игрок их не видит. Затем игрок и компьютер по очереди выбирают клетку на квадрате друг друга, и если эта клетка принадлежит кораблю, то она выделяется. Игра заканчивается если на одном из полей все клетки кораблей выделены. Владелец этого поля объявляется проигравшим.

Требуется вирт игрок


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
void get_player_move(void)
{
 char ch;
 int vic=0,ep;
 unsigned int volume;
 void *arrow;
STGPM:
 
 vic=victory();
 if(vic==1||vic==2)
   goto ENDGPM;
 
 ch=getch();
 
  if(ch==27)
    {
    volume=imagesize(199,149,470,260);
    arrow=malloc(volume);
    getimage(199,149,470,260,arrow);
    ep=exit_game();
    if(ep==1)
      {
      free(arrow);
      ex=1;
      cleardevice();
      goto ENDGPM;
      }
    else
      {
      putimage(199,149,arrow,0);
      free(arrow);
      goto STGPM;
      }
    }
 
 if(ch==0)
   {
   step++;
   ch=getch();
   p_direct(ch);
   goto STGPM;
   }
 
 if(ch==32&&matrix02[(y-50)/20][(x-350)/20]<2)
   {
   if(matrix02[(y-50)/20][(x-350)/20]==0)
    {
    matrix02[(y-50)/20][(x-350)/20]=2;
    setcolor(LIGHTGRAY);
    setfillstyle(1,LIGHTCYAN);
    if(step==0)
      floodfill(x+1,y+1,BLUE);
    if(step!=0)
      floodfill(x+1,y+1,LIGHTGRAY);
    }
 
  if(matrix02[(y-50)/20][(x-350)/20]==1)
    {
    matrix02[(y-50)/20][(x-350)/20]=3;
    setcolor(LIGHTGRAY);
    setfillstyle(1,RED);
    if(step==0)
      floodfill(x+1,y+1,LIGHTGRAY);
    if(step!=0)
      floodfill(x+1,y+1,LIGHTGRAY);
    }
      setcolor(BLUE);
 
   step++;
   goto ENDGPM;
   }
 
 if(ch==32&&matrix02[(y-50)/20][(x-350)/20]>1)
   {
   goto STGPM;
   }
 
 
 if(ch!=27&&ch!=0&&ch!=32)
   goto STGPM;
 
ENDGPM:
}
мб подскажите какую идею...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 19:35     добавить вирт игрока
Посмотрите здесь:

вывести ФИО игрока с максимальным количеством матчей C++
Добавление компьютерного игрока C++
C++ Написать игру где самолет игрока сбивает самолеты противников
C++ Всех тех противников в игре заменить на одного противника-игрока
C++ Как реализовать игру на два игрока
Как считать количество жизней игрока? C++
Найти минимальный рост игрока баскетбольной команды C++
C++ Добавить второго игрока Игра Вишневый Пирог С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
24.01.2013, 19:41     добавить вирт игрока #2
Бьем на бум. Если попадаем в корабль то можно поступить так:
1) Пытаемся добить его, просматривая список оставшихся кораблей и вычисляя куда он может поместиться, по тому направлению и бьем, если вариантов несколько то тут можно либо на бум, либо придумать какой-то хитроумный алгоритм.
2) Ищем клетки, с которыми точно не пересекутся уже "раненные" корабли и бьем по ним, оставляя "добивку раненных" на потом
Yandex
Объявления
24.01.2013, 19:41     добавить вирт игрока
Ответ Создать тему
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru