Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
1

Слон бьет врагов ???

12.01.2011, 21:36. Показов 5211. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, всех! Кто то скажет опять эти шахматы, сам спекся когда получил задание. Но дорогие форумчани помогите с задание. Не понимаю даже с чего начать. Набрасал только начало,а дальше в ступоре
Задание следующее:
Найти возможные способы для удара слоном максимального количества вражеских фигур за N проходов исходя из определенного задаваемого поло-жения вражеских фигур, не изменяющих своего положения. Определить кратчайшие.
Вот что уже сделано:
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
const n=9; // razmernost massiva
void Matr(char M[][n]);
void main()
 
{
 int s1,s2,e,E,i,j,Pause;
 char A[n][n];
 clrscr();
 
 /////////enter massiv
 for(i=1; i<n; i++)
  { for(j=1; j<n; j++)
 
    if ((i+j)%2==0)
    A[i][j]='\xDB'; else
    A[i][j]='\xB1';
  }
  Matr(A);
 
  //////// enter SLON//////////
 
  i=j=n;  // dlia vhoda v cikl
  while (i>8 || j>8 || i<1 || j<1)
  {
    cout<<"\nVvedite koordinaty Slona:\n";
    cout<<"Nomer stroki (1..8)="; cin>>i;
    cout<<"Nomer stolbca(1..8)="; cin>>j; cout<<"\n";
     if (i>8 || j>8 || i<1 || j<1)
     { cout<<"ERROR! Nedopustimoe polojenie!\n"; }
  }
 
   A[i][j]='\x06';
  //   s1=i;
  //   s2=j;
 
  //   for(i=1; i<n; i++)
  //   { for(j=1; j<n; j++)
 
  //     if (s1+s2==i+j && A[i][j]!='\x06')
  //     {A[i][j]='/';}
  //   }
  //    for(i=1; i<n; i++)
  //    { for(j=1; j<n; j++)
 
  //    if(s1-s2==i-j && A[i][j]!='\x06')
  //    {A[i][j]='\x5c';}
  //   }
 
  Matr(A);
 
  ////////// enter enemies/////////
 
 E=6; // dlia vhoda v cikl
 while (E>5 || E<1)
 {
 cout<<"\nVvedite kolichestvo Vragov (1..5):"; cin>>E;
 if (E>5 || E<1)
   { cout<<"ERROR! Nedopustimoe chislo vragov!\n"; }
 }
 for(e=1; e<=E; e++)
 {
 i=j=n;  // dlia vhoda v cikl
  while (i>8 || j>8 || i<1 || j<1 || A[i][j]=='\x06'|| A[i][j]=='\x78')
  {
  cout<<"\nVvedite koordinaty Vraga "<<e<<":\n";
  cout<<"Nomer stroki (1..8)="; cin>>i;
  cout<<"Nomer stolbca(1..8)="; cin>>j; cout<<"\n";
   if (i>8 || j>8 || i<1 || j<1 || A[i][j]=='\x06'|| A[i][j]=='\x78')
    { cout<<"ERROR! Nedopustimoe polojenie!\n"; }
  }
   A[i][j]='\x78';
 }
 Matr(A);
 
 cin>>Pause;
}  ////////////THE END/////////////////
 
 
 //Function vivod massiva
 void Matr(char M[][n])
 {
 int i,j;
 cout<<"    abcdefgh\n";
 for (i=1; i<n; i++)
  { cout<<"  "<<i<<" ";
  for (j=1; j<n; j++)
   {
     cout<<setw(1)<<M[i][j];
   } cout<<" "<<i;
   cout<<endl;
   }
  cout<<"    abcdefgh\n";
  }
Буду благодарен за любую помощь!!! ОООчень нужно.
2
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2011, 21:36
Ответы с готовыми решениями:

На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по
Помогите решить проблему error C2668: fabs: неоднозначный вызов перегруженной функции На...

На шахматной доске отметить все клетки, которые бьет слон
Шахматная доска – игровое поле 8 × 8. Сформировать двумерный массив A – схематическое изображение...

Верно ли высказывание, что слон, расположенный на поле (x1, y1) шахматной доски, «бьет» поле (x2, y2)
Верно ли высказывание, что слон, расположенный на поле (x, y) шахматной доски, «бьет» поле (x1, y1)...

Составить и протестировать функцию БЬЕТ (К1, К2, КМ), которая проверяет, бьет ли карта К1 карту К2
Описать новый структурный тип. Описать требуемые в задаче функции для работы со структурами....

40
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
14.01.2011, 02:00  [ТС] 2
Люди неужели не кому подсказать че дальше делать?????
1
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 13:15 3
Я на 2-ом курсе полностью играбельные шахматы писал, а сейчас переделываю и для тебя есть ответ:
Только здесь логика другая=( Здесь нужно сделать всё как в простых шахматах, но с одним но оценивать ход надо по количеству ходов до того момента как на доске не станет вражеских фигур. Я чуть подумаю, к вечеру скину код, возможно даже рабочий=)
1
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
14.01.2011, 17:00  [ТС] 4
очень буду ждать а то сам с места не сдвинусь
1
13 / 13 / 4
Регистрация: 07.12.2010
Сообщений: 127
14.01.2011, 17:07 5
Тоже хотел бы глянуть на код шахмат
1
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 17:46 6
ЭЭ только если что без обид - у меня тогда баги странные были, и я сними так и не справился поэтому переделываю.
Отдельно выложу код шахмат в целом и примерно мысли о том как нужно модифицировать некоторые части кода.
1
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
14.01.2011, 18:17  [ТС] 7
ждемс!!!
1
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 22:49 8
Лучший ответ Сообщение было отмечено как решение

Решение

Mmain.rar
Это код шахмат. Код был написан на первом семестре второго курса, так что выглядит не оч, но всё очень хорошо закомментировано - у меня курсовик это был. Отлажен правда код не до конца - есть ошибки, правда мне их тогда простили;-) Так что можно понять хотя бы суть. К сожалению кода нового написать под Вашу проблему не успел и до завтрашнего вечера на вряд ли успею - дела, но скажу мысль - в функции оценки хода надо оцениватьне позицию и сумму весов фигур, а количество фигур, которые остались и каким-то образом вычислить расстояние до оставшихся фигур - вот идея, код если можете сами напишите, ну к завтрашнему вечеру я сам постараюсь.
5
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
14.01.2011, 23:49  [ТС] 9
Не удобно просить на самом деле, но очень хочеться чтобы сделали это задание. А то мне тут еще кучу лабороторных надо сделать. полный завал. Но выражаю вам огромную благодарность за то что уже откликнулись. СПАСИБО!!!

Добавлено через 5 минут
А у меня русские буквы не показывает каракули
1
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 00:29 10
Странно=( У Вас Линукс? Если так то есть некоторые проблемы я тода писал тока под виндой и для винды... В visual studio точно работает русский.
В ворде тоже могу скинуть отчёт там ваапще всё расписано.
1
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
15.01.2011, 00:38  [ТС] 11
я тоже в visual studio пишу в windows Xp скомпелировалось все хорошо но каракули вместо русского текста, но это ни чего как руские буквы выводить я знаю, А отчет было бы не плохо.(эх а если бы прям по заданию так это было бы чудо!!!)

Добавлено через 2 минуты
Кстати хочу сказать так к слову, хоть и на форуме много людей. А таких как вы тоесть таких которые реально пытаються помочь маловато!!! я только 3 знаю с вами 4
0
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 00:40 12
Отчёт.7z
Вот архив с отчётом - всё подробненько.
1
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 00:44 13
SergProgC++, Может я просто добрый и стараюсь быть не жадным=) Но не расходитесь, после определённого момента я могу закрыть доступ к своим знаниям=)

Чтобы так сказать прощупать вопрос глубже есть книженция одна она мне сильно помогла:
Автор: Евгений Корнилов
Название: Программирование Шахмат и других логических игр
0
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
15.01.2011, 01:07  [ТС] 14
Цитата Сообщение от knofl Посмотреть сообщение
Чтобы так сказать прощупать вопрос глубже есть книженция одна она мне сильно помогла:
Автор: Евгений Корнилов
Название: Программирование Шахмат и других логических игр
есть такая книга но я там не нашел то что мнебы помогло. Проблемма не в том что я не могу понять как реализовать а проблемма в том что не погу понять что нужно реализовывать и в какой последовательности. (Извиняюсь если что не так и за настойчивость)

Добавлено через 14 минут
что то архив не открываеться, все у меня не ладно
0
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 01:09 15
Когда читал эту книгу та же проблема была=)
0
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
15.01.2011, 01:28  [ТС] 16
У меня просто мало опыта, вот наверно поэтому сразу и не понимаю такие умные книжки

Добавлено через 1 минуту
так еще исконцентрироваться не дают, задают задают, а когда они думают я это делать должен

Добавлено через 12 минут
Я не настаиваю, но очень бы хотелось чтобы хоть кто нибудь реализовал задание мое!!!

Добавлено через 43 секунды
не думаю что я первый с этим столкнулся, полюбому кто то уже делал
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.01.2011, 01:48 17
SergProgC++, Я не могу обещать, но кое-что именно по Вашему заданию придумал.
не думаю что я первый с этим столкнулся, полюбому кто то уже делал
тогда лучше ищите в интернете, а не здесь.
Могу завтра утром поделится мыслями об этой задаче. Если устроит, то будем вместе решать. Я не зря написал "вместе". Вместе, как говорится веселее, быстрее и правильнее.
1
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
15.01.2011, 08:11  [ТС] 18
Согласен вместе!!! Только сразу оговорюсь что я не спец. еще,но буду стараться!!!
0
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
15.01.2011, 10:02 19
Цитата Сообщение от SergProgC++ Посмотреть сообщение
Согласен вместе
Тогда давайте так: сначало я задание задачи немного по другому сформулирую, чем у Вас написано. Если Вас это устроит, то двинемся дальше.
Цитата Сообщение от SergProgC++ Посмотреть сообщение
Найти возможные способы для удара слоном максимального количества вражеских фигур за N проходов исходя из определенного задаваемого поло-жения вражеских фигур, не изменяющих своего положения. Определить кратчайшие.
Я предлагаю так:
Найти способ для удара слоном всех вражеских фигур за минимальное количество проходов исходя из определенного задаваемого положения фигуры слона и вражеских фигур, не изменяющих своего положения.
Подойдет?
Забегая вперед: может быть ситуация, когда слон не сможет вообще убить все вражеские фигуры. Такую ситуацию лучше отслеживать при вводе координат вражеских фигур, например так:
C++
1
2
if((сумма координат слона - четное число && сумма координат вражеской фигуры нечетное число) || (сумма координат слона - нечетное число && сумма координат вражеской фигуры четное число))
// здесь нужно решить что делать с этой ситуацией - или заново вводить координаты вражеской фигуры, или вывести результат, что убить все вражеские фигуры не возможно и закончить программу. В общем это решение должно быть Ваше.
1
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,721
15.01.2011, 15:01  [ТС] 20
согласен

Добавлено через 1 минуту
я думаю можно доверять человеку с репутацией 1236
0
15.01.2011, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2011, 15:01
Помогаю со студенческими работами здесь

Определить, бьет ли слон фигуру
Вот такая чудная задача...Требуется определить, бьет ли слон, стоящий на клетке с указанными...

Определить, бьет ли слон, стоящий на клетке с указанными координатами
Требуется определить, бьет ли слон, стоящий на клетке с указанными координатами (номер строки и...

Верно ли высказывание, что слон, расположенный на поле (x, y) шахматной доски, «бьет» поле (x1, y1)
Верно ли высказывание, что слон, расположенный на поле (x, y) шахматной доски, «бьет» поле (x1, y1)...

ИИ врагов
Я хочу чтобы враг ходил по определенной траектории и когда игрок пересекал эту траекторию, враг...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru