Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2010, 12:26   #11
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А у тебя уже есть какие-нибудь наработки интеллекта или ты ещё делаешь доску с шашками?

Смотрите, что я уже реализовал.
Код:
Uses CRT,GRAPH;
Const
     Enter = #13;
     Esc = #27;
     Space = #32;
     Up = #72;
     Down = #80;
     Left = #75;
     Right = #77;
type
    doska = object
    Constructor Create;
    Procedure Draw;
    Destructor Free;
end;

Constructor Doska.Create;
Begin
End;

Procedure Doska.Draw;
var i:integer;
    j:integer;
    x,y:integer;
    s:integer;
    k:char;
Begin
     x:=40;y:=450;
     for i:=1 to 8 do
     begin
          for j:=1 to 8 do
          begin
               s:=i+j;
               if s mod 2 = 0 then
               SetFillStyle(solidfill,white);
               if s mod 2<> 0 then
               SetFillStyle(solidfill,brown);
               Bar(x,y,x+40,y-40);
               x:=x+40;
          end;
          x:=40;
          y:=y-40;
     end;
     x:=25;y:=430;
     for k:='a' to 'h' do
     begin
          SetColor(white);
          OutTextXy(x,y,k);
          y:=y-40;
     end;
End;

Destructor Doska.Free;
Begin
End;

Type
    shaska = object(doska)
    m,n:integer;
    Constructor Create;
    Procedure Draw(a,b:integer;Color:word);
    Destructor Free;
End;

Constructor Shaska.Create;
Begin
     Inherited Create;
End;

Procedure Shaska.Draw;
Begin
     SetFillStyle(Solidfill,Color);
     SetColor(Color);
     Pieslice(a*40+20,470-b*40,0,360,15);
End;

Destructor Shaska.Free;
Begin
     Inherited Free;
End;
Var
   A:doska;
   B:array[1..12] of shaska;
   gd,gm:integer;
   c,d:integer;
   k:char;
   i:integer;
Begin
     gd:=detect;
     initgraph(gd,gm,'e:\bp\bgi\');
     A.Create;
     A.Draw;
     for c:=1 to 12 do
     B[c].Create;
     for c:=1 to 4 do
     B[c].M:=c;
     for c:=1 to 4 do
     begin
          B[c].N:=1;
          B[c].M:=B[c].M+B[c].M;
     end;
     for c:=5 to 8 do
     B[c].M:=c-4;
     for c:=5 to 8 do
     begin
          B[c].N:=2;
          B[c].M:=B[c].M+B[c].M-1;
     end;
     for c:=9 to 12 do
     B[c].M:=c-8;
     for c:=9 to 12 do
     begin
          B[c].N:=3;
          B[c].M:=B[c].M+B[c].M;
     end;
     for c:=1 to 12 do
     B[c].Draw(B[c].M,B[c].N,Green);
     {repeat
           k:=readkey;
                if k = up then begin
                if n<=7 then n:=n+1;end;
                if k = down then begin
                if n>=2 then n:=n-1;end;
                if k = left then begin
                if m>=2 then m:=m-1;end;
                if k = right then begin
                if m<=7 then m:=m+1;end;
                A.Draw;
                Draw(m,n,Green);
           end;
     until k = #13; }
     readln;
     CloseGraph;
end.
P.S.Цикл пока что не рабочий, на него не обращайте внимания

Последний раз редактировалось Stilet; 15.07.2010 в 14:26.
_-Re@l-_ вне форума Ответить с цитированием
Старый 11.07.2010, 15:29   #12
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
А у тебя уже есть какие-нибудь наработки интеллекта или ты ещё делаешь доску с шашками?
какую нафиг доску,доску я еще вчера нарисовал и вчера начал делать игру
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 11.07.2010, 15:35   #13
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Смотрите, что я уже реализовал.
Код:
Uses CRT,GRAPH;
Const
     Enter = #13;
     Esc = #27;
     Space = #32;
     Up = #72;
     Down = #80;
     Left = #75;
     Right = #77;
type
    doska = object
    Constructor Create;
    Procedure Draw;
    Destructor Free;
end;

Constructor Doska.Create;
Begin
End;

Procedure Doska.Draw;
var i:integer;
    j:integer;
    x,y:integer;
    s:integer;
    k:char;
Begin
     x:=40;y:=450;
     for i:=1 to 8 do
     begin
          for j:=1 to 8 do
          begin
               s:=i+j;
               if s mod 2 = 0 then
               SetFillStyle(solidfill,white);
               if s mod 2<> 0 then
               SetFillStyle(solidfill,brown);
               Bar(x,y,x+40,y-40);
               x:=x+40;
          end;
          x:=40;
          y:=y-40;
     end;
     x:=25;y:=430;
     for k:='a' to 'h' do
     begin
          SetColor(white);
          OutTextXy(x,y,k);
          y:=y-40;
     end;
End;

Destructor Doska.Free;
Begin
End;

Type
    shaska = object(doska)
    m,n:integer;
    Constructor Create;
    Procedure Draw(a,b:integer;Color:word);
    Destructor Free;
End;

Constructor Shaska.Create;
Begin
     Inherited Create;
End;

Procedure Shaska.Draw;
Begin
     SetFillStyle(Solidfill,Color);
     SetColor(Color);
     Pieslice(a*40+20,470-b*40,0,360,15);
End;

Destructor Shaska.Free;
Begin
     Inherited Free;
End;
Var
   A:doska;
   B:array[1..12] of shaska;
   gd,gm:integer;
   c,d:integer;
   k:char;
   i:integer;
Begin
     gd:=detect;
     initgraph(gd,gm,'e:\bp\bgi\');
     A.Create;
     A.Draw;
     for c:=1 to 12 do
     B[c].Create;
     for c:=1 to 4 do
     B[c].M:=c;
     for c:=1 to 4 do
     begin
          B[c].N:=1;
          B[c].M:=B[c].M+B[c].M;
     end;
     for c:=5 to 8 do
     B[c].M:=c-4;
     for c:=5 to 8 do
     begin
          B[c].N:=2;
          B[c].M:=B[c].M+B[c].M-1;
     end;
     for c:=9 to 12 do
     B[c].M:=c-8;
     for c:=9 to 12 do
     begin
          B[c].N:=3;
          B[c].M:=B[c].M+B[c].M;
     end;
     for c:=1 to 12 do
     B[c].Draw(B[c].M,B[c].N,Green);
     {repeat
           k:=readkey;
                if k = up then begin
                if n<=7 then n:=n+1;end;
                if k = down then begin
                if n>=2 then n:=n-1;end;
                if k = left then begin
                if m>=2 then m:=m-1;end;
                if k = right then begin
                if m<=7 then m:=m+1;end;
                A.Draw;
                Draw(m,n,Green);
           end;
     until k = #13; }
     readln;
     CloseGraph;
end.
P.S.Цикл пока что не рабочий, на него не обращайте внимания
Я все делал с циклом,так легче
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)

Последний раз редактировалось DRAgon™; 11.07.2010 в 15:44.
DRAgon™ вне форума Ответить с цитированием
Старый 11.07.2010, 17:46   #14
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Я все делал с циклом,так легче
э-э-э...Я не совсем тебя понимаю....
Цитата:
какую нафиг доску,доску я еще вчера нарисовал и вчера начал делать игру
Интересно. Если не секрет, кинь исходник того что готово.(разумеется, в ЛС)
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 12:43   #15
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

REAL сюда____
Вложения
Тип файла: zip Архив.zip (1.3 Кб, 9 просмотров)
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 15.07.2010, 12:54   #16
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ща посмотрю...

О, вот чё спалил.При движении прямоугольника старый не затирается, и весь экран становится зарисованным в прямоугольниках....

Последний раз редактировалось Stilet; 15.07.2010 в 14:27.
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 13:00   #17
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
О, вот чё спалил.При движении прямоугольника старый не затирается, и весь экран становится зарисованным в прямоугольниках....
ну вот из-за этого квадрата я и застрял
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 15.07.2010, 13:04   #18
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ууу..Так ты при нажатии клавиш двигай его не на 5 пикселей а на одну клетку, и предыдущий прямоугольник закрашивай цветом предыдущей клетки.
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.07.2010, 19:27   #19
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

сюда________________
Вложения
Тип файла: rar Архив WinRAR.rar (2.0 Кб, 9 просмотров)
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 15.07.2010, 20:03   #20
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
m,n,l,k:real;
Эти переменные должны быть Integer
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler. Заполнение областей памяти Filutki Помощь студентам 1 01.06.2010 22:34
Скриншот экрана dradysman Общие вопросы Delphi 2 14.04.2010 15:17
Проблема с закреплением областей и автофильтрами. Евгений ГВС Microsoft Office Excel 0 13.10.2009 21:56
Проблема с отрисовкой дочрних областей. DJ_Rain Win Api 0 30.04.2009 18:31
Копирование части экрана консоли в C# Skrutik Общие вопросы .NET 3 03.03.2009 19:13