Расписывать код комментариями не стал, в нем всего чуть более 60 строчек.
Код:
LoadImage(1,"череп.ico") LoadImage(0,"пусто.bmp") Global Dim tic.b(36) Procedure Open_Window_0() If OpenWindow(0, 216, 0, 430, 450, "ЧЕРЕПА", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar|#PB_Window_ScreenCentered ) d=1 : e=10 : f=10 For b=1 To 6 For a=1 To 6 ButtonImageGadget(d,e,f,60,60,ImageID(1)) tic(d)=1 d+1 : e+70 Next e=10 : f+70 Next EndIf ButtonGadget(37,355,428,70,20,"Сгенерить") EndProcedure Procedure OPRED(a) If a-6>=1 v= tic(a-6)!1 tic(a-6)=v SetGadgetAttribute(a-6, #PB_Button_Image,ImageID(v)) EndIf If a+6<=36 v= tic(a+6)!1 tic(a+6)=v SetGadgetAttribute(a+6, #PB_Button_Image,ImageID(v)) EndIf If a-1>=1 And a-1<>6 And a-1<>12 And a-1<>18 And a-1<>24 And a-1<>30 v= tic(a-1)!1 tic(a-1)=v SetGadgetAttribute(a-1, #PB_Button_Image,ImageID(v)) EndIf If a+1<=36 And a+1<>7 And a+1<>13 And a+1<>19 And a+1<>25 And a+1<>31 v= tic(a+1)!1 tic(a+1)=v SetGadgetAttribute(a+1, #PB_Button_Image,ImageID(v)) EndIf tic(a)=tic(a)!1 SetGadgetAttribute(a, #PB_Button_Image,ImageID( tic(a))) EndProcedure Procedure GENER() Repeat OPRED(Random(35)+1) c+1 Until c=100 EndProcedure Open_Window_0() GENER() Repeat ev=WaitWindowEvent() If ev=#PB_Event_Gadget Select EventGadget() Case 1 To 36 OPRED(GetActiveGadget()) Case 37 GENER() EndSelect ElseIf ev=#PB_Event_CloseWindow End EndIf ForEver
P.S. Заметил баг, подредактировал код, архив тоже обновил
Отредактировано haav (13.04.2010 19:34:43)