Advertisement
anatolt

Sim_v0.4

Jan 28th, 2015
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; simulator_v0.4
  2. ; .2 Ваня внедрил процедуры
  3. ; .3 Толя заменил текстовое поле со ссылкой на исходники на гиперссылку
  4. ; .4 Толя добавил закрытие по эскейпу, переделал финальное окно + результаты
  5.  
  6. Enumeration
  7.   #link
  8.   #forum
  9.   #mkSite
  10.   #sellSite
  11.   #siteCnt
  12.   #mnyCnt
  13.   #status
  14.   #yw ;you win
  15. EndEnumeration
  16.  
  17. Sourse$ = "http://pastebin.com/bymvnHVd"
  18. LoadFont(#yw,"Arial Narrow", 48)
  19. OpenWindow(0,100,100,380,190,"Симулятор вебмастера v0.4",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  20.  
  21. ; для того чтобы избавиться от копипаста обычно используют процедуры
  22. Procedure setInfo(sites.l,money.l)
  23.   ; твой код:
  24.   ;text2$ = "Денег: " + bablo
  25.   ;TextGadget(#mnyCnt, 140, 120, 100, 25, text2$)
  26.   ;text$ = "Сайтов: " + k
  27.   ;TextGadget(#siteCnt, 140, 70, 100, 25, text$)
  28.   ; ты каждый раз пересоздаешь гаджет на том же месте с тем же айди
  29.   ; это лишнее, поэтому делаем так
  30.   moneyString.s = "Денег: " + Str(money)
  31.   siteString.s = "Сайтов: " + Str(sites)
  32.  
  33.   ; меняем статусы
  34.   If Not IsGadget(#mnyCnt)
  35.     TextGadget(#mnyCnt,140,120,100,25,moneyString)
  36.   Else
  37.     SetGadgetText(#mnyCnt,moneyString)
  38.   EndIf
  39.   If Not IsGadget(#siteCnt)
  40.     TextGadget(#siteCnt,140,70,100,25,siteString)
  41.   Else
  42.     SetGadgetText(#siteCnt,siteString)
  43.   EndIf
  44.  
  45.   ; активируем/деактивируем кнопочку когда надо
  46.   If sites
  47.     If Not IsGadget(#sellSite)
  48.       ButtonGadget(#sellSite, 10, 110, 120, 40, "Продать сайт")
  49.     Else
  50.       DisableGadget(#sellSite,0)
  51.     EndIf
  52.   Else
  53.     DisableGadget(#sellSite,1)
  54.   EndIf
  55. EndProcedure
  56. ; теперь мы просто вызываем эту процедуру с указанными параметрами
  57. ; когда нам нужно обновить инфу
  58.  
  59. ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум")
  60.  
  61. Repeat
  62.   ev = WaitWindowEvent()
  63.  
  64.   Select ev
  65.     Case #PB_Event_Gadget
  66.       Select EventGadget()
  67.         Case #forum
  68.           ; и что за тип ивента
  69.           Select EventType()
  70.             Case #PB_EventType_LeftClick
  71.               TextGadget(#status, 140, 20, 230, 25, "Вы изучили: разработка сайтов")
  72.               ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум") : DisableGadget(#forum, 1)
  73.               ButtonGadget(#mkSite, 10, 60, 120, 40, "Сделать сайт")
  74.           EndSelect
  75.         Case #mkSite
  76.           Select EventType()
  77.             Case #PB_EventType_LeftClick
  78.               easysite + 1
  79.               setInfo(easysite,bablo)
  80.           EndSelect
  81.         Case #sellSite
  82.           Select EventType()
  83.             Case #PB_EventType_LeftClick
  84.               If bablo>0
  85.                 For i=#forum To #status : FreeGadget(i) : Next
  86.                 ;FreeGadget(#forum) : FreeGadget(#mkSite) : FreeGadget(#sellSite) : FreeGadget(#siteCnt) : FreeGadget(#mnyCnt) : FreeGadget(#status)
  87.                 ;OpenWindow(1,100,100,380,190,"Симулятор вебмастера - победа",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  88.                 TextGadget(#yw, 10, 10, 360, 100, "You WIN")
  89.                 SetGadgetFont(#yw, FontID(#yw))
  90.                 HyperLinkGadget(#link, 10, 150, 360, 25, Sourse$, RGB(0,0,255))
  91.                 finalTxt$ = "Сделано сайтов " + easysite + ". Заработано денег " + bablo
  92.                 TextGadget(#PB_Any, 10, 130, 360, 25, finalTxt$)
  93.               Else
  94.                 If easysite = 1
  95.                   easysite - 1
  96.                   bablo + 1
  97.                   setInfo(easysite,bablo)
  98.                 Else
  99.                   easysite - 1
  100.                   bablo + 1
  101.                   setInfo(easysite,bablo)
  102.                 EndIf
  103.               EndIf
  104.           EndSelect
  105.         Case #link
  106.           Select EventType()
  107.             Case #PB_EventType_LeftClick  
  108.               RunProgram(Sourse$)
  109.           EndSelect
  110.       EndSelect
  111.   EndSelect
  112.   ; ссылка на исходник
  113.   ; If ev = #PB_Event_Gadget And EventGadget() = #link : RunProgram(Sourse$) : EndIf
  114.   ; закрытие по Esc
  115.   If CreatePopupMenu(0) : MenuItem(1, "Quit") : EndIf
  116.   If ev = #PB_Event_Menu And EventMenu() = 1 : End : EndIf
  117.   AddKeyboardShortcut(0, #PB_Shortcut_Escape, 1)
  118. Until ev = #PB_Event_CloseWindow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement