Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [pascal --> delphi] морской бой, переделать программу 
V
    Опции темы
Blondy
Дата 19.2.2008, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.2.2008

Репутация: нет
Всего: нет



 Моя курсовая работа - создание игры "морской бой".Надо сдавать в Делфи. Мы в школе делали это, только на паскале и уже есть код

Код

uses
    crt,graph;
const
     n=10;
     h=14;
     x1=50;
     y1=50;
     x2=50;
     y2=300;
type
    Mass=array[0..n+1,0..n+1]of integer;
var
   M1,M2:mass;
   dr,dv,hod,i,c,d,kol1,kol2,x0,y0:integer;
   ch:char;
   procedure OutDesk(M:Mass;y0,x0,h:integer);
   var
      i,j,color:integer;
   begin
     setcolor(9);
     for i:=1 to n+1 do
     begin
          line (x0, y0+(i-1)*h,x0+n*h,y0+(i-1)*h);
          line (x0+(i-1)*h,y0,x0+(i-1)*h,y0+n*h);
     end;
     for i:=1 to n do
         for j:=1 to n do
         begin
              case m[i,j] of
                   0:color:=0;
                   1:color:=1;
                   5:color:=2;
                   6:color:=4;
              end;
              setfillstyle (1,color);
              floodfill(x0+(h*j-(h div 2)),y0+(h*i-(h div 2)),9);
         end;
     end;
    function Chek(M:mass;x,y:integer):boolean;
      var
         s,i,j:integer;
         begin
              s:=0;
              for i:=x-1 to x+1 do
                  for j:=y-1 to y+1 do
                      s:=s+M[i,j];
              if s>0 then chek:=false else chek:=true;
         end;
      procedure NewGame(var M:Mass;hod:integer);
      var
         x,y,count:integer;
      begin
           for i:=1 to n do
           begin
             M[0,i]:=0;
             M[n+1,i]:=0;
             M[i,0]:=0;
             M[i,i-1]:=0;
           end;
           count:=0;
           while (count<4) do
           begin
                 x:=random(n)+1;
                 y:=random(n)+1;
                 if chek(M,x,y)=true then
                 begin
                      M[x,y]:=5;
                      count:=count+1;
                 end;
           end;
      end;
      procedure Poisk(var M:mass;var c,d,kol:integer);
      begin
           c:=random(n)+1;
           d:=random(n)+1;
           if (M[c,d]=5)or(M[c,d]=6) then
           begin
              if M[c,d]=5 then
                 kol:=kol+1;
              M[c,d]:=6;
           end
           else M[c,d]:=1;
      end;
   begin
        clrscr;
        hod:=1;
        randomize;
        dr:=detect;
        initgraph(dr,dv,'e:\TP71\Bgi');
        NewGame(M1,hod);
        Outdesk(M1,x1,y1,h);
        NewGame(M2,hod);
        OutDesk(M2,x2,y2,h);
        delay(10000);
        kol1:=0;
        kol2:=0;
        ch:=readkey;
        repeat
              poisk (m1,c,d,kol1);
              outdesk (m1,x1,y1,h);
              poisk(m2,c,d,kol2);
              hod:=2;
              setcolor(white);
              outtextxy(90,20,'1 player');
              outtextxy(340,20,'2 player');
              outdesk (m2,x2,y2,h);
        until (kol1>3) or (kol2>3) or keypressed;
        setcolor(4);
        if kol1>3 then outtextxy(50,240,'1 player are win!!!')else
        outtextxy(30,240,'2 player are win!!!');
        readkey;
        closegraph;
        readln;
   end.


Пожалуйста помогите!

Если ктонибудь знает, как написать эту игру лучше, может с интерфейсом, то принимаю предложения, тогда в аське спишемся и договоримся обо всем поподробнее

Это сообщение отредактировал(а) Rodman - 20.2.2008, 09:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.