• Важно
    Имате проблем со најава или регистрација на it.mk?
    Побарајте го решението на вашиот проблем ТУКА!

[C] Полиња од шаховска табла (матрици)

ace_paun

Intern
15 јануари 2008
16
0
Да се одредат сите полиња од шаховска табла, кои ги бие ловецот од полето (k,p), каде k и p се внесени преку тастатура
Ako ja znajt nekoj zadacava neka pomognit
 

Alexandar

Gaining Experience
21 мај 2007
2.514
90
Можни полиња се:
(k+1,p+2) ; (k+2,p-1) ; (k-1,p-2) ; (k-2,p+1)
(k-1,p+2) ; (k+2,p+1) ; (k+1,p-2) ; (k-2,p-1)

За да видиш кои од овие се точни ќе провериш услов дали вредностите на k и p припаѓаат на соодветните интервали.
 

StenmarC

Intern
16 април 2007
716
13
stenmarc.blog.com.mk
Можни полиња се:
(k+1,p+2) ; (k+2,p-1) ; (k-1,p-2) ; (k-2,p+1)
(k-1,p+2) ; (k+2,p+1) ; (k+1,p-2) ; (k-2,p-1)

За да видиш кои од овие се точни ќе провериш услов дали вредностите на k и p припаѓаат на соодветните интервали.

Oва е за коњ, а не за ловец :)
Ај ја ќе пробам да помогнам малце...

Код:
i=1;
while (((k+i) <=7) && ((p-i) >=0)))
{
  printf("red %d i kolona %d", k+i, p-i);
  i++;
}
i=1;
while (((k-i) >=0) && ((p-i) >=0)))
{
  printf("red %d i kolona %d", k-i, p-i);
  i++;
}
i=1;
while (((k-i) >=0) && ((p+i) <=7)))
{
  printf("red %d i kolona %d", k-i, p+i);
  i++;
}
i=1;
while (((k+i) <=7) && ((p+i) <=7)))
{
  printf("red %d i kolona %d", k+i, p+i);
  i++;
}

Матрицата ти е дефинирна со редови и колони од 0 до 7. Ова ми изгледа малце амалско решение, али мислам дека работи. Провери па кажи
 

Alexandar

Gaining Experience
21 мај 2007
2.514
90
Моја грешка, имам напишано за коњ наместо за ловец, не го дочитав прашањето, се извинувам на сите. Решението на StenmarC е точното.
 

ace_paun

Intern
15 јануари 2008
16
0
Oва е за коњ, а не за ловец :)
Ај ја ќе пробам да помогнам малце...

Код:
i=1;
while (((k+i) <=7) && ((p-i) >=0)))
{
  printf("red %d i kolona %d", k+i, p-i);
  i++;
}
i=1;
while (((k-i) >=0) && ((p-i) >=0)))
{
  printf("red %d i kolona %d", k-i, p-i);
  i++;
}
i=1;
while (((k-i) >=0) && ((p+i) <=7)))
{
  printf("red %d i kolona %d", k-i, p+i);
  i++;
}
i=1;
while (((k+i) <=7) && ((p+i) <=7)))
{
  printf("red %d i kolona %d", k+i, p+i);
  i++;
}

Матрицата ти е дефинирна со редови и колони од 0 до 7. Ова ми изгледа малце амалско решение, али мислам дека работи. Провери па кажи
ne be brat, pecatit nesto sosema drugo
 

Нови мислења

Последни Теми

Статистика

Теми
44.148
Мислења
891.574
Членови
31.491
Огласи
25
Најнов член
Aleksandarst55
На врв Дно