Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,381
#1

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

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

Приветствую, всех! Кто то скажет опять эти шахматы, сам спекся когда получил задание. Но дорогие форумчани помогите с задание. Не понимаю даже с чего начать. Набрасал только начало,а дальше в ступоре
Задание следующее:
Найти возможные способы для удара слоном максимального количества вражеских фигур за 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 21:36
Ответы с готовыми решениями:

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

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

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

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

Мухи и слон
Написать программу которая решит задчу: МУХА+ МУХА+ МУХА= _____ СЛОН ...

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

Решение

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

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

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

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

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

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

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

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

Добавлено через 1 минуту
я думаю можно доверять человеку с репутацией 1236
0
15.01.2011, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2011, 15:01

Вирус-слон
Я вообще форумов не люблю, стараюсь находить все сам исходя из уже поставленных...

Шахматы: Может ли слон побить слона?
Вот это пример с ладьёй. #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Бьет ли карта k1 карту k2
Здравствуйте, Господа эксперты! Прошу помощи в решении следующей задачи:...


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

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

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