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

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

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

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

12.01.2011, 21:36. Просмотров 2733. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 21:36     Слон бьет врагов ???
Посмотрите здесь:

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

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

Слон - C++
Требуется определить, бьет ли слон, стоящий на клетке с указанными координатами (номер строки и номер столбца), фигуру, стоящую на другой...

Мухи и слон - C++
Написать программу которая решит задчу: МУХА+ МУХА+ МУХА= _____ СЛОН Каждая буква одначает свою цифру, т.е. при составление...

Шахматы: Может ли слон побить слона? - C++
Вот это пример с ладьёй. #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; bool func(char *one, char *two) { ...

Бьет ли карта k1 карту k2 - C++
Здравствуйте, Господа эксперты! Прошу помощи в решении следующей задачи: struct card { /* масть карт */ enum {spades, clubs,...

Бьет ли конь пешку? - C++
даны координаты коня и другой фигуры. вывести: бьет ли конь фигуру? как записать условие? вот что у меня получилось #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
14.01.2011, 02:00  [ТС]     Слон бьет врагов ??? #2
Люди неужели не кому подсказать че дальше делать?????
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 13:15     Слон бьет врагов ??? #3
Я на 2-ом курсе полностью играбельные шахматы писал, а сейчас переделываю и для тебя есть ответ:
Только здесь логика другая=( Здесь нужно сделать всё как в простых шахматах, но с одним но оценивать ход надо по количеству ходов до того момента как на доске не станет вражеских фигур. Я чуть подумаю, к вечеру скину код, возможно даже рабочий=)
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
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
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
14.01.2011, 18:17  [ТС]     Слон бьет врагов ??? #7
ждемс!!!
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
14.01.2011, 22:49     Слон бьет врагов ??? #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Mmain.rar
Это код шахмат. Код был написан на первом семестре второго курса, так что выглядит не оч, но всё очень хорошо закомментировано - у меня курсовик это был. Отлажен правда код не до конца - есть ошибки, правда мне их тогда простили;-) Так что можно понять хотя бы суть. К сожалению кода нового написать под Вашу проблему не успел и до завтрашнего вечера на вряд ли успею - дела, но скажу мысль - в функции оценки хода надо оцениватьне позицию и сумму весов фигур, а количество фигур, которые остались и каким-то образом вычислить расстояние до оставшихся фигур - вот идея, код если можете сами напишите, ну к завтрашнему вечеру я сам постараюсь.
SergProgC++
Эксперт GPSS
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
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
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
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
315 / 317 / 59
Регистрация: 02.07.2010
Сообщений: 1,361
15.01.2011, 01:07  [ТС]     Слон бьет врагов ??? #14
Цитата Сообщение от knofl Посмотреть сообщение
Чтобы так сказать прощупать вопрос глубже есть книженция одна она мне сильно помогла:
Автор: Евгений Корнилов
Название: Программирование Шахмат и других логических игр
есть такая книга но я там не нашел то что мнебы помогло. Проблемма не в том что я не могу понять как реализовать а проблемма в том что не погу понять что нужно реализовывать и в какой последовательности. (Извиняюсь если что не так и за настойчивость)

Добавлено через 14 минут
что то архив не открываеться, все у меня не ладно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2011, 01:09     Слон бьет врагов ???
Еще ссылки по теме:

Требуется определить, бьет ли конь - C++
Здравствуйте, уважаемые программисты! помоги пожалуйста решить задачку на Паскале. Условие задачи - Требуется определить, бьет ли конь,...

Определить сможет ли белый слон одним ходом пройти на поле - C++
Поле шахматной доски определяется парой натуральных целых чисел, каждое из которых не превосходит восьми: Первое число номер вертикали...

Определить, бьет ли ферзь, находящийся в клетке (xy, y1) клетку (x2, y2) - C++
На шахматной доске в клетке (x1, y1) находится шахматный ферзь. Определите, бьет ли он клетку (x2, y2). #include &lt;iostream&gt; using...

Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой - C++
Найти возможные пути для шахматной фигуры «слон» от одной клетки до другой в пределах шахматной доски. Определить кратчайшие.

Шахматы. Каждый ферзь бьет ровного одного ферзя - C++
Всем привет! Помогите решить задачу: Расставить на шахматной доске максимальное число ферзей так, чтобы каждый нападал ровно на одного...


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

Или воспользуйтесь поиском по форуму:
knofl
19 / 19 / 1
Регистрация: 05.04.2010
Сообщений: 122
15.01.2011, 01:09     Слон бьет врагов ??? #15
Когда читал эту книгу та же проблема была=)
Yandex
Объявления
15.01.2011, 01:09     Слон бьет врагов ???
Ответ Создать тему
Опции темы

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