#include <stdio.h>
#include <stdlib.h>
void Brezenhem(int size, char z[][size], int x0, int y0, int x1, int y1)
{
int A, B, sign;
A = y1 - y0;
B = x1 - x0;
if (abs(A
) > abs(B
)) sign
= 1; else sign = -1;
int signa, signb;
if (A < 0) signa = -1;
else signa = 1;
if (B < 0) signb = -1;
else signb = 1;
int f = 0;
int x = x0, y = y0;
if (sign == -1)
{
do {
z[y][x] = '*';
f += A;
if (f >= B) {
f -= B;
y += signa;
}
x += signb;
} while (x != x1 + signb);
}
else
{
do {
z[y][x] = '*';
f += B;
if (f >= A) {
f -= A;
x += signb;
}
y += signa;
} while (y != y1 + signa);
}
}
int main()
{
#define SIZE 25 // размер поля
int x1, x2, y1, y2;
char z[SIZE][SIZE];
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
z[i][j] = '-';
}
}
Brezenhem(SIZE, z, x1, y1, x2, y2);
for (int i = 0; i < SIZE; i++)
{
for (int j = 0; j < SIZE; j++)
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgQnJlemVuaGVtKGludCBzaXplLCBjaGFyIHpbXVtzaXplXSwgaW50IHgwLCBpbnQgeTAsIGludCB4MSwgaW50IHkxKQp7CiAgaW50IEEsIEIsIHNpZ247CiAgQSA9IHkxIC0geTA7CiAgQiA9IHgxIC0geDA7CiAgaWYgKGFicyhBKSA+IGFicyhCKSkgc2lnbiA9IDE7CiAgZWxzZSBzaWduID0gLTE7CiAgaW50IHNpZ25hLCBzaWduYjsKICBpZiAoQSA8IDApIHNpZ25hID0gLTE7CiAgZWxzZSBzaWduYSA9IDE7CiAgaWYgKEIgPCAwKSBzaWduYiA9IC0xOwogIGVsc2Ugc2lnbmIgPSAxOwogIEEgPSBhYnMoQSkgKyAxOwogIEIgPSBhYnMoQikgKyAxOwogIGludCBmID0gMDsKICBpbnQgeCA9IHgwLCB5ID0geTA7CiAgaWYgKHNpZ24gPT0gLTEpIAogIHsKICAgIGRvIHsKICAgICAgelt5XVt4XSA9ICcqJzsKICAgICAgZiArPSBBOwogICAgICBpZiAoZiA+PSBCKSB7CiAgICAgICAgZiAtPSBCOwogICAgICAgIHkgKz0gc2lnbmE7CiAgICAgIH0KICAgICAgeCArPSBzaWduYjsKICAgIH0gd2hpbGUgKHggIT0geDEgKyBzaWduYik7CiAgfQogIGVsc2UKICB7CiAgICBkbyB7CiAgICAgIHpbeV1beF0gPSAnKic7CiAgICAgIGYgKz0gQjsKICAgICAgaWYgKGYgPj0gQSkgewogICAgICAgIGYgLT0gQTsKICAgICAgICB4ICs9IHNpZ25iOwogICAgICB9CiAgICAgIHkgKz0gc2lnbmE7CiAgICB9IHdoaWxlICh5ICE9IHkxICsgc2lnbmEpOwogIH0KfQppbnQgbWFpbigpCnsKICAjZGVmaW5lIFNJWkUgMjUgLy8g0YDQsNC30LzQtdGAINC/0L7Qu9GPCiAgaW50IHgxLCB4MiwgeTEsIHkyOwogIGNoYXIgeltTSVpFXVtTSVpFXTsKICBmb3IgKGludCBpID0gMDsgaSA8IFNJWkU7IGkrKykgewogICAgZm9yIChpbnQgaiA9IDA7IGogPCBTSVpFOyBqKyspIHsKICAgICAgeltpXVtqXSA9ICctJzsKICAgIH0KICB9CiAgcHJpbnRmKCJ4MSA9ICIpOwogIHNjYW5mKCIlZCIsICZ4MSk7CiAgcHJpbnRmKCJ5MSA9ICIpOwogIHNjYW5mKCIlZCIsICZ5MSk7CiAgcHJpbnRmKCJ4MiA9ICIpOwogIHNjYW5mKCIlZCIsICZ4Mik7CiAgcHJpbnRmKCJ5MiA9ICIpOwogIHNjYW5mKCIlZCIsICZ5Mik7CiAgQnJlemVuaGVtKFNJWkUsIHosIHgxLCB5MSwgeDIsIHkyKTsKICBmb3IgKGludCBpID0gMDsgaSA8IFNJWkU7IGkrKykgCiAgewogICAgZm9yIChpbnQgaiA9IDA7IGogPCBTSVpFOyBqKyspCiAgICAgIHB1dGNoYXIoeltpXVtqXSk7CiAgICBwdXRzKCIiKTsKICB9CiAgcmV0dXJuIDA7Cn0=