SHOW:
|
|
- or go back to the newest paste.
1 | ; simulator_v0.1 | |
2 | ; вопросы: как избежать повторения кода? | |
3 | ||
4 | Enumeration | |
5 | #forum | |
6 | #mkSite | |
7 | #sellSite | |
8 | #siteCnt | |
9 | #mnyCnt | |
10 | #status | |
11 | #yw | |
12 | EndEnumeration | |
13 | ||
14 | - | k=0 |
14 | + | |
15 | - | m=0 |
15 | + | |
16 | ; это не нужно, потому что по умолчанию необъявленные переменные и так равны 0 | |
17 | ;k=0 | |
18 | ;m=0 | |
19 | ||
20 | ; вообще пара дополнений по стилю: | |
21 | ; If k>=0 | |
22 | ; то же самое что и | |
23 | ; If k | |
24 | ; | |
25 | ; не нужно лишних движений | |
26 | ; k=k+1 | |
27 | ; можно писать просто | |
28 | ; k+1 | |
29 | ||
30 | ; вообще все эти k, m, i жутко неудобны для чтения | |
31 | ; почему бы не называть их нормально? | |
32 | ||
33 | ; для того чтобы избавиться от копипаста обычно используют процедуры | |
34 | - | If k>=0 |
34 | + | Procedure setInfo(sites.l,money.l) |
35 | - | ButtonGadget(#sellSite, 10, 110, 120, 40, "Продать сайт") |
35 | + | ; твой код: |
36 | ;text2$ = "Денег: " + m | |
37 | - | k=k+1 |
37 | + | ;TextGadget(#mnyCnt, 140, 120, 100, 25, text2$) |
38 | - | text$ = "Сайтов: " + k |
38 | + | ;text$ = "Сайтов: " + k |
39 | - | TextGadget(#siteCnt, 140, 70, 100, 25, text$) |
39 | + | ;TextGadget(#siteCnt, 140, 70, 100, 25, text$) |
40 | ; ты каждый раз пересоздаешь гаджет на том же месте с тем же айди | |
41 | ; это лишнее, поэтому делаем так | |
42 | moneyString.s = "Денег: " + Str(money) | |
43 | siteString.s = "Сайтов: " + Str(sites) | |
44 | ||
45 | ; меняем статусы | |
46 | If Not IsGadget(#mnyCnt) | |
47 | TextGadget(#mnyCnt,140,120,100,25,moneyString) | |
48 | Else | |
49 | SetGadgetText(#mnyCnt,moneyString) | |
50 | EndIf | |
51 | If Not IsGadget(#siteCnt) | |
52 | TextGadget(#siteCnt,140,70,100,25,siteString) | |
53 | Else | |
54 | - | ButtonGadget(#sellSite, 10, 110, 120, 40, "Продать сайт") : DisableGadget(#sellSite, 1) |
54 | + | SetGadgetText(#siteCnt,siteString) |
55 | - | k=k-1 |
55 | + | EndIf |
56 | - | m=m+1 |
56 | + | |
57 | - | text2$ = "Денег: " + m |
57 | + | ; активируем/деактивируем кнопочку когда надо |
58 | - | TextGadget(#mnyCnt, 140, 120, 100, 25, text2$) |
58 | + | If sites |
59 | - | text$ = "Сайтов: " + k |
59 | + | If Not IsGadget(#sellSite) |
60 | - | TextGadget(#siteCnt, 140, 70, 100, 25, text$) |
60 | + | ButtonGadget(#sellSite, 10, 110, 120, 40, "Продать сайт") |
61 | Else | |
62 | - | k=k-1 |
62 | + | DisableGadget(#sellSite,0) |
63 | - | m=m+1 |
63 | + | EndIf |
64 | - | text2$ = "Денег: " + m |
64 | + | Else |
65 | - | TextGadget(#mnyCnt, 140, 120, 100, 25, text2$) |
65 | + | DisableGadget(#sellSite,1) |
66 | - | text$ = "Сайтов: " + k |
66 | + | EndIf |
67 | - | TextGadget(#siteCnt, 140, 70, 100, 25, text$) |
67 | + | EndProcedure |
68 | ; теперь мы просто вызываем эту процедуру с указанными параметрами | |
69 | ; когда нам нужно обновить инфу | |
70 | ||
71 | ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум") | |
72 | ||
73 | Repeat | |
74 | ev = WaitWindowEvent() | |
75 | Select ev | |
76 | Case #PB_Event_Gadget | |
77 | Select EventGadget() | |
78 | Case #forum | |
79 | ; и что за тип ивента | |
80 | Select EventType() | |
81 | Case #PB_EventType_LeftClick | |
82 | TextGadget(#status, 140, 20, 230, 25, "Вы изучили: разработка сайтов") | |
83 | ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум") : DisableGadget(#forum, 1) | |
84 | ButtonGadget(#mkSite, 10, 60, 120, 40, "Сделать сайт") | |
85 | EndSelect | |
86 | Case #mkSite | |
87 | Select EventType() | |
88 | Case #PB_EventType_LeftClick | |
89 | k + 1 | |
90 | setInfo(k,m) | |
91 | EndSelect | |
92 | Case #sellSite | |
93 | Select EventType() | |
94 | Case #PB_EventType_LeftClick | |
95 | If m>18 | |
96 | ; ты можешь не закрывать текущее окно, а просто удалить или скрыть гаджеты на текущем | |
97 | ; изменить его размер и название | |
98 | CloseWindow(0) | |
99 | OpenWindow(1,100,100,380,190,"Симулятор вебмастера - победа",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) | |
100 | LoadFont(#yw,"Arial Narrow", 48) | |
101 | TextGadget(#yw, 10, 10, 360, 170, "You WIN") | |
102 | SetGadgetFont(#yw, FontID(#yw)) | |
103 | Repeat : Until #PB_Event_CloseWindow | |
104 | ; для урлов есть HyperLinkGadget() | |
105 | ; по клику на него можно повесить OpenProgram() с url в качестве параметра | |
106 | ; и сразу откроется твоя ссылка | |
107 | StringGadget(#PB_Any, 10, 150, 360, 25, "Source: http://anatolt.ru") | |
108 | Else | |
109 | If k=1 | |
110 | k - 1 | |
111 | m + 1 | |
112 | setInfo(k,m) | |
113 | Else | |
114 | k - 1 | |
115 | m + 1 | |
116 | setInfo(k,m) | |
117 | EndIf | |
118 | EndIf | |
119 | EndSelect | |
120 | EndSelect | |
121 | EndSelect | |
122 | Until ev = #PB_Event_CloseWindow |