Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.