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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.82
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
#1

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

12.01.2011, 21:36. Просмотров 2686. Ответов 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";
  }
Буду благодарен за любую помощь!!! ОООчень нужно.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
14.01.2011, 02:00  [ТС]     Слон бьет врагов ??? #2
Люди неужели не кому подсказать че дальше делать?????
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 13:15     Слон бьет врагов ??? #3
Я на 2-ом курсе полностью играбельные шахматы писал, а сейчас переделываю и для тебя есть ответ:
Только здесь логика другая=( Здесь нужно сделать всё как в простых шахматах, но с одним но оценивать ход надо по количеству ходов до того момента как на доске не станет вражеских фигур. Я чуть подумаю, к вечеру скину код, возможно даже рабочий=)
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
14.01.2011, 17:00  [ТС]     Слон бьет врагов ??? #4
очень буду ждать а то сам с места не сдвинусь
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
14.01.2011, 17:07     Слон бьет врагов ??? #5
Тоже хотел бы глянуть на код шахмат
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 17:46     Слон бьет врагов ??? #6
ЭЭ только если что без обид - у меня тогда баги странные были, и я сними так и не справился поэтому переделываю.
Отдельно выложу код шахмат в целом и примерно мысли о том как нужно модифицировать некоторые части кода.
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
14.01.2011, 18:17  [ТС]     Слон бьет врагов ??? #7
ждемс!!!
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 22:49     Слон бьет врагов ??? #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Mmain.rar
Это код шахмат. Код был написан на первом семестре второго курса, так что выглядит не оч, но всё очень хорошо закомментировано - у меня курсовик это был. Отлажен правда код не до конца - есть ошибки, правда мне их тогда простили;-) Так что можно понять хотя бы суть. К сожалению кода нового написать под Вашу проблему не успел и до завтрашнего вечера на вряд ли успею - дела, но скажу мысль - в функции оценки хода надо оцениватьне позицию и сумму весов фигур, а количество фигур, которые остались и каким-то образом вычислить расстояние до оставшихся фигур - вот идея, код если можете сами напишите, ну к завтрашнему вечеру я сам постараюсь.
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
14.01.2011, 23:49  [ТС]     Слон бьет врагов ??? #9
Не удобно просить на самом деле, но очень хочеться чтобы сделали это задание. А то мне тут еще кучу лабороторных надо сделать. полный завал. Но выражаю вам огромную благодарность за то что уже откликнулись. СПАСИБО!!!

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

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

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

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

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

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

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

Требуется определить, бьет ли конь C++
Шахматы. Каждый ферзь бьет ровного одного ферзя C++
На шахматной доске отметить все клетки, которые бьет слон C++
C++ На шахматной доске стоят черный король и белые ладья и слон (ладья бьет по горизонтали и вертикали, слон – по
Определить, бьет ли ферзь, находящийся в клетке (xy, y1) клетку (x2, y2) C++

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

Или воспользуйтесь поиском по форуму:
SergProgC++
Эксперт GPSS
314 / 316 / 59
Регистрация: 02.07.2010
Сообщений: 1,360
15.01.2011, 15:01  [ТС]     Слон бьет врагов ??? #20
согласен

Добавлено через 1 минуту
я думаю можно доверять человеку с репутацией 1236
Yandex
Объявления
15.01.2011, 15:01     Слон бьет врагов ???
Ответ Создать тему
Опции темы

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