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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2010, 01:03   #1
Katmai
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 25
Вопрос Нужна помощь с "Тетрисом"

Всем доброе время суток!
Вобщем я недавно начал учить Delphi(сам), ну и начал с простых програмок, но это как бы не важно

Нашел исходник тетриса в этой теме -->Тут
Решил покапаться, с кодом почти везде разобрался...
После этого мне захотелось сделать еще пару свойств:
1) Бонусы(Тоесть при удалении сразу 2-х полосок+20(всего получаеться +40=20 за 2 полоски удалён(10*2)+бонус) к очкам, за 3 пол+30 ну и так до 5 полосок)
2) сохранение/загрузка
3) Топ 10

Суть помощи состоит в следующем:
1) Помочь в реализации выше написаного.


Как я делал:

1) БОНУСЫ
Код:
procedure bonus;
var i,j,sum: integer;
begin

for i := 1 to stkh do
     for j := 1 to stkw do
          if (stakan[stkh,j]=1) and (stakan[stkh-1,j]=1) then
                         scores:=scores+20;
end;
stkh-высота
stkw-ширина
Если все елементы последне и предпослдней строки =1, то к общей суммы очком добовляем +20 <-- я правельно говорю


2) В гугле искал и вот что нашел:

СОХРАНЕНИЕ

Код:
procedure TForm1.N2Click(Sender: TObject);
var
x,y:Integer;
t:TextFile;
begin
       AssignFile(t,'1.txt');
       Rewrite(t);
for x := 1 to stkh do
begin
  for y := 1 to stkw do
    begin
      Write(t,stakan[y,x]);
    end;
Writeln(t);
end;
begin
Append(t);
Writeln(t, scores);
end;
    CloseFile(t);
 end;
ЗАГРУЗКА

Код:
procedure TForm1.N3Click(Sender: TObject);
var
x,y:Integer;
t:TextFile;
st,nk:integer;
te : Boolean;
n: string;
begin
te := Timer1.Enabled;
if te then Timer1.Enabled := False;
if Application.MessageBox(PChar('Продолжение сохраненной игры!'),
PChar('Загрузка'), MB_ICONQUESTION+MB_OK) = IDOK then
begin
FileMode := fmOpenRead;
Reset(t, '1.txt');
 begin
   for x:=1 to stkh do
   begin
    for y:=1 to stkw do
    begin
      read(t,n);
      stakan[x, y]:=StrToint(n);
    end;
   end;
  end;
  if (Последнея строка в файле)>0 then  
begin
  Readln(t, st);
  scores:=st;
else scores:=0;
Timer1.Enabled := true;
CloseFile(t);
end;
Немного переделал вышеуказаный код

Сохранение:
1)Значиние очков сохраняет правельно
2) Но я не знаю что делать с масивом, в данном коде я сохраняю начальный масив, тоесть 20*10(в моём случае значение stkh*stkw) и везде *00000000*
Как сохранить масив, который выводиться в данный момент на екран я так и не понял

Загрузка:
1)Сам масив вроде загружает, но при этом экран от 'старого' не очищаеться, тоесть прорисовка кубиков остаёться такая же!
А как его очистить не знаю !

2) возникли проблемы с загрузкой очков( подскажите как прчоесть последнюю строку в TXT файле ...

3) Топ 10,
Кто знает как реализовать, подскажите !

Не проходите мимо ! Подскажите!
Пытаюсь это сделать 3 день, но ничего путнего так и не получилось

P.S. Модераторы, если что-то не так оформил не удаляйте тему, мне очень она интересна !
Katmai вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НУЖНА ПОМОЩЬ "Программирование алгоритмов с вложенными арифметическими циклами при работе с матрицами" krolya838 Паскаль, Turbo Pascal, PascalABC.NET 0 02.06.2009 17:29
Создаю "тестирующую систему" для проверки задач. Программисты, нужна ваша помощь! alexfmf Помощь студентам 12 30.04.2009 20:19
нужна помощь как мне сказали: "простейщей задачкой" =) xScorp1oNx Общие вопросы C/C++ 3 03.02.2009 02:13
Нужна помощь в решении задачек, тема "Циклы с переменным количеством шагов" DJ Kost Помощь студентам 3 16.01.2009 13:26