КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Использование списочных структур для построения игры на выбываниеunit Unit_game_n;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type TForm1 = class(TForm) ListBox1: TListBox; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; Edit1: TEdit; Label1: TLabel; ListBox2: TListBox; Label2: TLabel; Label3: TLabel; procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure N7Click(Sender: TObject);
private { Private declarations } public { Public declarations } end; Plist=^list; List=record igr:integer; next:Plist; end;
var Form1: TForm1; Head,pl,lp,ls:Plist; n,k:integer; implementation
{$R *.dfm} Function create_l(k:integer):Plist; var lp,ls:plist; i:integer; begin i:=1; while i<=k do begin if pl=nil then begin new(lp); lp^.igr:=i; lp^.next:=nil; pl:=Lp;//начало списка end else begin new(ls); lp^.next:=ls; ls^.igr:= i; ls^.next:=nil; lp:=ls; end; i:=i+1; end; Result:=pl; end; Procedure Vivod_spisok(var pp:plist;b:boolean); var lp:plist; begin lp:=pp; while lp<>nil do begin if b then Form1. ListBox1.Items.Add(inttostr(lp^.igr)) else Form1. ListBox2.Items.Add(inttostr(lp^.igr)); lp:=lp^.next; end; end; Procedure Del_gamer(var pp:plist;kk:integer); var dp,dl,lx:plist; begin lx:=pp; if lx=nil then Form1.label3.Caption:='Список пуст' else if (lx=pp)and (lx^.igr=kk)then begin pp:=pp^.next; dispose(lx); end; lx:=pp; while (lx<> nil) do if (lx^.igr <>kk) then begin dl:=lx; lx:=lx^.next; end else begin dl^.next:= lx^.next; dispose(lx); lx:=dl; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin pl:=nil; end;
procedure TForm1.N1Click(Sender: TObject);
begin randomize; n:=random(12)+5; pl:=nil; ListBox1.Clear; Head:=create_l(n); end;
procedure TForm1.N2Click(Sender: TObject); var t:boolean; begin t:=true; Listbox1.Clear; Vivod_spisok(head,t); end;
procedure TForm1.N4Click(Sender: TObject); var i:integer; begin i:=Strtoint(Edit1.Text); k:=i; end;
procedure TForm1.N5Click(Sender: TObject);
begin ListBox2.Clear; Del_gamer(head,k); end;
procedure TForm1.N6Click(Sender: TObject); var pp:plist; t:boolean; begin ListBox2.Clear; t:=false; vivod_spisok(head,t); end;
procedure TForm1.N7Click(Sender: TObject); begin close; end;
end.
Рис.2
Дата добавления: 2014-01-07; Просмотров: 248; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |