Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кто угадает, что это за код?=)

301
22 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Поробуйте понять, что жта программа делает (ясное дело не компилируя=) )
Код:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#define pos(I,n) gotoxy((I&255)*2,I>>8 ),printf("%c%c",n,n)

void main()
{
 int I[21],d=1,*i;
 for(i=I;i<I+20;i++)*i=276+I-i;
 clrscr();
 for(;; )
 {
  if(kbhit()&&!(d=0))switch(getch())
  {
   case 27 : return;
   case  0 : continue;
   case 72 : d-=512;
   case 80 : d+=257;
   case 75 : d-=2;
   case 77 : d+=1;
  }
  pos(I[20],32);
  for(i=I+20;i>I;i--)pos((*i=*(i-1)),219);
  *I+=d;
  pos(*I,219);
  delay(50);
 }
}

Если вы хотите наисать "Фуу! Да это же ...! И это очевидно", то лучше промолчите=))))).
294
23 декабря 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by lord Kelvin
Поробуйте понять, что жта программа делает (ясное дело не компилируя=) )


Ну, змею по экрану гоняет с управлением стрелками и некорректной обработкой достижения границ экрана.
Кстати, вычитание указателя из указателя не есть гуд, особенно под ДОСом и не в модели памяти Huge.

301
23 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Plisteron

Ну, змею по экрану гоняет с управлением стрелками и некорректной обработкой достижения границ экрана.
Кстати, вычитание указателя из указателя не есть гуд, особенно под ДОСом и не в модели памяти Huge.


Все же, я думаю, стоило сказать, что некорректно не обрабатывает пересечения...=)

301
23 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Последняя версия. Что добавилось?
Код:
#include<conio.h>
#include<dos.h>
unsigned long far *S=(unsigned long*)3087007744L;

void main()
{
 unsigned int I[21],*i,d=1,q;
 for(i=I;i<I+21;i++)*i=276+I-i;
 clrscr();
 for(;; )
 {
  if(kbhit())if(!(q=getch()))continue;
  else d=(21L*q*q*q-4788L*q*q+363872L*q)/5-1843456L;
  S[(I[20]&255)+(I[20]>>8 )*40]=119539488L;
  for(i=I+20;i>I;i--)S[((*i=*(i-1))&255)+((*(i-1))>>8 )*40]=131794907L;
  if(S[((*I+d)&255)+((*I+d)>>8 )*40]!=119539488L)return;
  S[((*I+=d)&255)+(*I>>8 )*40]=131794907L;
  if((*I&255)<1||(*I&255)>38||(*I>>8 )<1||(*I>>8 )>24)return;
  delay(50);
 }
}
294
24 декабря 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by lord Kelvin
Последняя версия. Что добавилось?


Убавились функции printf();
Положа руку на сердце, просто лень разбираться.

301
24 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Plisteron

Убавились функции printf();
Положа руку на сердце, просто лень разбираться.


А еще добавились проверки на столкновение и на выход за пределы.

243
25 декабря 2004 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by lord Kelvin

А еще добавились проверки на столкновение и на выход за пределы.


Ну и к чему ты все это ведешь?

301
25 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by pacific_7

Ну и к чему ты все это ведешь?


Я? Ну... Пытаюсь сделать короткий и сложный код. Мне это удовольствие доставляет.

Код:
#include<conio.h>
#include<dos.h>

void main()
{
 unsigned int I[64]={258,257,256},*i,d=1,q,l=2,R=12;
 clrscr();
 ((long far*)0xB8000000)[(R=(R*9301+49267)%233280)%1000]=0x7440743;
 for(;; )
 {
  if(kbhit())if(!(q=getch()))continue;
  else d=(21L*q*q*q-4788L*q*q+363872L*q)/5-1843456L;
  ((long far*)0xB8000000)[(I[l]&255)+(I[l]>>8 )*40]=0x7200720;
  for(i=I+l;i>I;i--)
   ((long far*)0xB8000000)[((*i=*(i-1))&255)+(*(i-1)>>8 )*40]=0x7DB07DB;
  if(((long far*)0xB8000000)[(*I+d&255)+(*I+d>>8 )*40]==0x7440743)
   ((long far*)0xB8000000)[(R=(R*9301+49267)%233280)%1000]= 0x7440743,l++;
  else if(((long far*)0xB8000000)[(*I+d&255)+(*I+d>>8 )*40]!=0x7200720)return;
  if(((*I+d)&255)>39||(*I+d)>6400)return;
  ((long far*)0xB8000000)[((*I+=d)&255)+(*I>>8 )*40]=0x7DB07DB;
  delay(75);
 }
}

Теперь можно есть яблоки. Вот.
310
25 декабря 2004 года
fellow
853 / / 17.03.2003
Вот через полгодика вернёшься к этакому коду, и будешь тупо пялиться на листинг, недоумевая, как это тебя могло так расплющить... :D
301
25 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by fellow
Вот через полгодика вернёшься к этакому коду, и будешь тупо пялиться на листинг, недоумевая, как это тебя могло так расплющить... :D


Fellow! Ты чертовски прав! Я именно так себя ощущаю сейчас.=)

243
29 декабря 2004 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by lord Kelvin

Fellow! Ты чертовски прав! Я именно так себя ощущаю сейчас.=)


Вот что бывает, когда медведь летает...
Это тебе наверное очень сильно нечего делать. Мне бы так: даже в инет времени выйти не хватает.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог