![]() |
|
This thread is locked; no one can reply to it.
![]() ![]() |
1
2
|
POB Global Competition Thread [Joke Thread NOT SERIOUS!] |
Specter Phoenix
Member #1,425
July 2001
![]() |
Yes this is a 'tease/joke' thread. I was reading the Santa Hack thread and saw Bamccaig remark a time or two that he hated globals. Since he knows I like him and has offered advice and help when he didn't have to, I couldn't resist this gag thread. Yes I know this isn't really a competition and will have no winner, but figured Bamccaig would at least find some humor in it (or not). Matthew is free to lock it if he feels so inclined of course. ----------------------------------------------- Introducing the POB (P*ss Off Bamccaig) Global Competition Thread Rules are simple, don't have to have working code. Just paste code that has globals declared. I'll start: #include <iostream> bool PISS_OFF_BAMCCAIG = 1; int main() { return 0; } ----------------------------------------------- Sorry bamccaig, couldn't resist.
|
Onewing
Member #6,152
August 2005
![]() |
bool missingParen=true; #define IAMNOTMISSING } int main() { if(missingParen) { IAMNOTMISSING return 0; }
------------ |
Dario ff
Member #10,065
August 2008
![]() |
int x = getX(); if(somethingIsTrue(x)){ doSomethingAboutIt(x); } for(int i=0; i<getLength(); i++){ doSomethingForEach(getItem(i)); } Object foo = getFoo(); if(somethingElseEntirelyIsTrue(foo)){ doSomethingAboutThat(foo); }else{ doSomethingAboutThat(foo + 5); doSomethingDifferently(foo); }
doSomething ( 5 );
Quote: [bamccaig@sephiroth ~]$ cat your_file
Quote: People that drive too fast through intersections and have to skip across 3 lanes to make a corner in their huge-ass PoS pickup trucks, people that cut corners in the road and cut you off, and people that drive down the middle of the fucking road instead of just wearing down the snow on both sides...
int temp1=0; float temp2=3; double temp3_f=2;
All stolen from content he wrote. I just pirated his pet peeves. TranslatorHack 2010, a human translation chain in a.cc. |
jmasterx
Member #11,410
October 2009
|
1#include <sstream>
2#include <vector>
3#include <map>
4#define whilst while
5#define end_of_whilst }
6bool _donethecode = 0;
7int cmpvle = (int)_donethecode;
8int* num1 = new int(43);
9std::vector<std::map<bool,std::string> > m_hlwld;
10int main()
11{
12 if (cmpvle)
13 whilst ( cmpvle )
14 {
15 cmpvle++;
16 end_of_whilst;
17
18 return !cmpvle / *num1;
19}
Agui GUI API -> https://github.com/jmasterx/Agui |
Dario ff
Member #10,065
August 2008
![]() |
Some of those names sounds like something Microsoft would do for the Win32 API. TranslatorHack 2010, a human translation chain in a.cc. |
Arthur Kalliokoski
Second in Command
February 2005
![]() |
#include <stdio.h> char drink[] = "Pepsi"; char attribute[] = "Nectar of the Godz"; int zero = 0; int main(void) { printf("%s is the %s\n",drink,attribute); return zero; }
They all watch too much MSNBC... they get ideas. |
Dizzy Egg
Member #10,824
March 2009
![]() |
1
2const int BE_POSITIVE = 1;
3const int BE_NEGATIVE = 2;
4const int GOOD_NEWS = 1;
5const int BAD_NEWS = 2;
6
7
8int main()
9{
10 int Specter_Phoenix_Response = GetSpecterReply(GOOD_NEWS);
11}
12
13int GetSpecterReply(int News)
14{
15 if(News == BAD_NEWS){
16 return(BE_NEGATIVE);
17 }
18 else{
19 return(BE_NEGATIVE);
20 }
21}
---------------------------------------------------- |
Tobias Dammers
Member #2,604
August 2002
![]() |
Obviously, the language of choice for this is PHP. <?php for ($i = 0; $i < mt_rand(); ++$) { $varname = sprintf("variable%d", $i); $$varname = md5(mt_rand() . "and a bottle of rum"); define($varname, $i); } function add($a, $b) { $varname_a = 'variable' . $a; $varname_b = 'variable' . $b; global $$varname_a, $$varname_b, $$$varname_a, $$$varname_b; return $$$varname_a + $$$varname_b; }
Might even actually work for some cases. And it's secure, because it uses a salt --- |
verthex
Member #11,340
September 2009
![]() |
Tobias Dammers said: Obviously, the language of choice for this is PHP. Is there a really important reason why PHP uses all those dollar signs?
|
Tobias Dammers
Member #2,604
August 2002
![]() |
verthex said: Is there a really important reason why PHP uses all those dollar signs? It's the syntax. $x is a variable; $$x is a variable variable. Normally you don't use these, but the feature is there. What it does is evaluate the original (single-dollared) variable as a string, and use it as a variable name. So if you have this: $a = 'foobar'; $x = 'a'; print($$x); ...it will print "foobar" - $x is 'a', so $$x resolves to $a. Variable variables are loosely comparable to pointers in C, only that you use strings to point to variables instead of binary pointer values (and that memory management is taken care of by the language). The C++ equivalent of the above would be: string a = "foobar"; string* x = &a; cout << *x; Only that PHP uses strings to reference variables, so you can construct variable references by name, as strings. --- |
verthex
Member #11,340
September 2009
![]() |
Thanks for the explanation Tobias, I'd have to say that language is mind numbingly ugly!
|
Tobias Dammers
Member #2,604
August 2002
![]() |
Only if you make it so. PHP has enormous potential for writing hideous code, but that's no excuse for actually doing it, just like owning a knife is not an excuse for stabbing people. (Cue "guns kill people" debate) --- |
van_houtte
Member #11,605
January 2010
![]() |
klaxxzgamemakre ftw ----- Sometimes you may have to send 3-4 messages |
Thomas Fjellstrom
Member #476
June 2000
![]() |
Tobias Dammers said: just like owning a knife is not an excuse for stabbing people. WHAT???!?!!! You mean I've been doing it wrong this entire time?? -- |
Tobias Dammers
Member #2,604
August 2002
![]() |
Thomas Fjellstrom said: WHAT???!?!!! You mean I've been doing it wrong this entire time?? No, certainly not. You just need a better excuse than "I own a knife". For example, you might say, "He looked at me funny", or "I needed something he has, but he wouldn't give it to me", or simply "God told me to do it". --- |
Dario ff
Member #10,065
August 2008
![]() |
{"name":"tumblr_llkdcdAMCT1qd6bglo1_500.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/34acc490fb6ff9c7137313e71535dc56.jpg","w":366,"h":601,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/34acc490fb6ff9c7137313e71535dc56"} TranslatorHack 2010, a human translation chain in a.cc. |
Arthur Kalliokoski
Second in Command
February 2005
![]() |
stabbity stabbity stab is its own excuse. They all watch too much MSNBC... they get ideas. |
Neil Walker
Member #210
April 2000
![]() |
#define RET int #define NAME main() #define GAME {dosomething() #define STARTAWESOMEGAME RET NAME GAME #define ENDAWESOMEGAME return 0;} #define AWESOMEGAME 0; struct GAMESTATE {int a;bool b;} AWESOME_GAMESTATE; class UnrequiredSingleton; void dosomething(); STARTAWESOMEGAME; ENDAWESOMEGAME
Neil. wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie |
weapon_S
Member #7,859
October 2006
![]() |
1#define SINGLETON(x,y,z) class Singleton##x##y { \
2 static #x _instance;\
3 Singleton##x##y();\
4 public:\
5 static #x& contents(){\
6 return _instance;\
7 }\
8} #y;\
9#x Singleton##x##y::_instance = #z;
10
11#define EVER ;;
12
13SINGLETON(int, a, 21)
14SINGLETON(char, b, 21)
15
16int main(void){
17 for(int age =0; age < a.contents(); age++)
18 do_alcohol(false)EVER
19 for(EVER)
20 dont_use_globals()EVER
21 return b.contents();
22}
|
Elias
Member #358
May 2000
|
This made me write a game using only globals. 1#include <allegro5/allegro.h>
2#include <allegro5/allegro_primitives.h>
3#include <allegro5/allegro_color.h>
4#include <math.h>
5
6ALLEGRO_DISPLAY *d;
7ALLEGRO_EVENT_QUEUE *q;
8ALLEGRO_EVENT e;
9ALLEGRO_TIMER *t;
10ALLEGRO_COLOR c;
11bool k[ALLEGRO_KEY_MAX];
12int w = 30;
13int h = 38;
14int s = 16;
15int a, b, g;
16double p = ALLEGRO_PI, f;
17bool r;
18int x, y, px, py, kx, ky, sx, sy;
19int gx[4], gy[4], dx[4], dy[4];
20char n[] =
21" "
22" "
23" "
24" "
25" ############################ "
26" #............##............# "
27" #.####.#####.##.#####.####.# "
28" #.# #.# #.##.# #.# #.# "
29" #.####.#####.##.#####.####.# "
30" #..........................# "
31" #.####.##.########.##.####.# "
32" #.####.##.########.##.####.# "
33" #......##....##....##......# "
34" ######.##### ## #####.###### "
35" #.##### ## #####.# "
36" #.## [] ##.# "
37" #.## ### ### ##.# "
38" ######.## #~~~~~~# ##.###### "
39" . #[][][]# . "
40" ######.## #~~~~~~# ##.###### "
41" #.## ######## ##.# "
42" #.## ##.# "
43" #.## ######## ##.# "
44" ######.## ######## ##.###### "
45" #............##............# "
46" #.####.#####.##.#####.####.# "
47" #.####.#####.##.#####.####.# "
48" #...##.......().......##...# "
49" ###.##.##.########.##.##.### "
50" ###.##.##.########.##.##.### "
51" #......##....##....##......# "
52" #.##########.##.##########.# "
53" #.##########.##.##########.# "
54" #..........................# "
55" ############################ "
56" "
57" "
58" ";
59char *m;
60#define P(x) (((x) - 1) * s)
61#define Q(x) (1 + (x) / s)
62#define M(x, y) m[(y) * w + (x)]
63
64int main() {
65 srand(time(NULL));
66 al_init();
67 al_install_keyboard();
68 al_init_primitives_addon();
69 al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_SUGGEST);
70 al_set_new_display_option(ALLEGRO_SAMPLES, 8, ALLEGRO_SUGGEST);
71 d = al_create_display((w - 2) * s, (h - 2) * s);
72 al_set_window_title(d, "Bambam and the Globals");
73 q = al_create_event_queue();
74 t = al_create_timer(1.0 / 60);
75 al_register_event_source(q, al_get_keyboard_event_source());
76 al_register_event_source(q, al_get_timer_event_source(t));
77 al_register_event_source(q, al_get_display_event_source(d));
78 al_start_timer(t);
79 m = malloc(strlen(n) + 1);
80 restart:
81 strcpy(m, n);
82 b = 0;
83 y = 1;
84 starty:
85 x = 1;
86 startx:
87 if (M(x, y) != '(') goto noparenthesis;
88 px = P(x) + s;
89 py = P(y) + s / 2;
90 noparenthesis:
91 if (M(x, y) != '[') goto nobracket;
92 gx[b] = P(x) + s;
93 gy[b] = P(y) + s / 2;
94 if (b == 0) goto notfirst;
95 sx = gx[0];
96 sy = gy[0];
97 notfirst:
98 b++;
99 nobracket:
100 x++;
101 if (x < w - 1) goto startx;
102 y++;
103 if (y < h - 1) goto starty;
104 mainloop:
105 if (!r || !al_is_event_queue_empty(q)) goto dontdraw;
106 al_clear_to_color(al_color_name("black"));
107 b = 7;
108 loopdrawhighlight:
109 c = al_color_name("blue");
110 if (b == 1) c = al_color_name("wheat");
111 y = 1;
112 loopdrawy:
113 x = 1;
114 loopdrawx:
115 if (M(x, y) != '.') goto nodot;
116 al_draw_filled_rectangle(
117 P(x) + s * 0.4,
118 P(y) + s * 0.4,
119 P(x) + s * 0.6,
120 P(y) + s * 0.6,
121 al_color_name("peachpuff"));
122 nodot:
123 if (M(x, y) != '#') goto nohash;
124 a = 1 * (M(x + 0, y - 1) == '#') +
125 2 * (M(x + 1, y - 1) == '#') +
126 4 * (M(x + 1, y + 0) == '#') +
127 8 * (M(x + 1, y + 1) == '#') +
128 16 * (M(x + 0, y + 1) == '#') +
129 32 * (M(x - 1, y + 1) == '#') +
130 64 * (M(x - 1, y + 0) == '#') +
131 128 * (M(x - 1, y - 1) == '#');
132
133 if (a == 64)
134 al_draw_line(P(x), P(y) + s / 2, P(x) + s,
135 P(y) + s / 2, c, b);
136 else if (a == 4)
137 al_draw_line(P(x), P(y) + s / 2, P(x) + s,
138 P(y) + s / 2, c, b);
139
140
141 else if ((a & 85) == 5)
142 al_draw_arc(P(x) + s, P(y),
143 s / 2, p / 2, p / 2, c, b);
144 else if ((a & 85) == 20)
145 al_draw_arc(P(x) + s, P(y) + s,
146 s / 2, p, p / 2, c, b);
147 else if ((a & 85) == 65)
148 al_draw_arc(P(x), P(y),
149 s / 2, 0, p / 2, c, b);
150 else if ((a & 85) == 80)
151 al_draw_arc(P(x), P(y) + s,
152 s / 2, p * 1.5, p / 2, c, b);
153
154 else if ((a & 7) == 5)
155 al_draw_arc(P(x) + s, P(y),
156 s / 2, p / 2, p / 2, c, b);
157 else if ((a & 28) == 20)
158 al_draw_arc(P(x) + s, P(y) + s,
159 s / 2, p, p / 2, c, b);
160 else if ((a & 193) == 65)
161 al_draw_arc(P(x), P(y),
162 s / 2, 0, p / 2, c, b);
163 else if ((a & 112) == 80)
164 al_draw_arc(P(x), P(y) + s,
165 s / 2, p * 1.5, p / 2, c, b);
166
167 else if ((a & 17) == 17)
168 al_draw_line(P(x) + s / 2, P(y), P(x) + s / 2,
169 P(y) + s, c, b);
170
171 else if ((a & 68) == 68)
172 al_draw_line(P(x), P(y) + s / 2, P(x) + s,
173 P(y) + s / 2, c, b);
174 nohash:
175 x++;
176 if (x < w - 1) goto loopdrawx;
177 y++;
178 if (y < h - 1) goto loopdrawy;
179 b -= 6;
180 if (b > 0) goto loopdrawhighlight;
181
182 b = 0;
183 looptwice:
184 al_draw_filled_pieslice(px + b * (w - 2) * s, py, s,
185 f + p * 0.25 * fabs(sin(2 * p * (g % 60) / 60.0)),
186 p * 2 - p * 0.5 * fabs(sin(2 * p * (g % 60) / 60.0)),
187 al_color_name("yellow"));
188 b++;
189 if (b < 2) goto looptwice;
190 b = 0;
191 loopdrawghosts:
192
193 if (b == 0) c = al_color_name("red");
194 if (b == 1) c = al_color_name("cyan");
195 if (b == 2) c = al_color_name("pink");
196 if (b == 3) c = al_color_name("orange");
197 x = gx[b];
198 y = gy[b];
199 al_draw_filled_pieslice(x, y, s, p * 0.6, p * 1.8, c);
200 al_draw_filled_triangle(x, y, x - s, y, x - s, y + s, c);
201 al_draw_filled_triangle(x, y, x + s, y, x + s, y + s, c);
202 al_draw_filled_rectangle(x - s * 0.5, y,
203 x + s * 0.5, y + s * 0.5, c);
204 al_draw_filled_circle(x - s * 0.5, y, s * 0.25,
205 al_color_name("white"));
206 al_draw_filled_circle(x + s * 0.5, y, s * 0.25,
207 al_color_name("white"));
208
209 b++;
210 if (b < 4) goto loopdrawghosts;
211
212 al_flip_display();
213 g++;
214 r = false;
215
216 dontdraw:
217 al_wait_for_event(q, &e);
218 if (e.type == ALLEGRO_EVENT_DISPLAY_CLOSE) goto done;
219 if (e.type != ALLEGRO_EVENT_TIMER) goto nottimer;
220 if (k[ALLEGRO_KEY_ESCAPE]) goto done;
221 if (k[ALLEGRO_KEY_LEFT]) {kx = -1; ky = 0; f = p;}
222 if (k[ALLEGRO_KEY_RIGHT]) {kx = 1; ky = 0; f = 0;}
223 if (k[ALLEGRO_KEY_UP]) {kx = 0; ky = -1; f = p * 1.5;}
224 if (k[ALLEGRO_KEY_DOWN]) {kx = 0; ky = 1; f = p * 0.5;}
225
226 if (M(Q(px + kx * s / 2), Q(py + ky * s / 2)) == '#') goto cango;
227 px += kx;
228 py += ky;
229 if (px < -s) px += (w - 2) * s;
230 if (px > (w - 3) * s) px -= (w - 2) * s;
231 if (M(Q(px + kx * s), Q(py + ky * s)) == '.')
232 M(Q(px + kx * s), Q(py + ky * s)) = ' ';
233 cango:
234
235 b = 0;
236 loopghosts:
237 x = gx[b] - px;
238 y = gy[b] - py;
239 if (x * x + y * y < s * s * 2 * 2) goto restart;
240 if (dx[b] == 0 && dy[b] == 0) dx[b] = (rand() % 2) * 2 - 1;
241
242 if (M(Q(gx[b]), Q(gy[b])) != '~') goto noteleport;
243 gx[b] = sx;
244 gy[b] = sy;
245 dy[b] = 0;
246 noteleport:
247
248 if (M(Q(gx[b] + dx[b] * s / 2), Q(gy[b] + dy[b] * s / 2)) == '#')
249 goto ghostwall;
250 gx[b] += dx[b];
251 gy[b] += dy[b];
252 goto ghostmoved;
253 ghostwall:
254 if (dx[b] == 0) goto nodx;
255 dx[b] = 0;
256 dy[b] = (rand() % 2) * 2 - 1;
257 goto ghostmoved;
258 nodx:
259 dy[b] = 0;
260 dx[b] = (rand() % 2) * 2 - 1;
261 ghostmoved:
262 b++;
263 if (b < 4) goto loopghosts;
264
265 r = true;
266 goto mainloop;
267 nottimer:
268 if (e.type == ALLEGRO_EVENT_KEY_DOWN) k[e.keyboard.keycode] = true;
269 if (e.type == ALLEGRO_EVENT_KEY_UP) k[e.keyboard.keycode] = false;
270
271 goto mainloop;
272 done:
273 free(m);
274 al_uninstall_system();
275}
-- |
l j
Member #10,584
January 2009
![]() |
I think it would have been much better if you used more gotos.
|
Elias
Member #358
May 2000
|
taron said: I think it would have been much better if you used more gotos. I edited it. Better? -- |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Blocks are evil. if (true) { foo(); bar(); } else { bar(); foo(); } The following is more readable: if (false) goto a; foo(); bar(); goto b; a: bar(); foo(); b:
|
Elias
Member #358
May 2000
|
Matthew Leverton said: The following is more readable: Amazingly so, I edited it again. Someone reading my original version would have had no idea what's going on - now with the labels it all is much clearer. -- |
Matthew Leverton
Supreme Loser
January 1999
![]() |
Yeah, the labels are like self documenting code. There's really no need for comments when you code properly like that. And it removes the need for ugly indentation. Everything lines up very nicely. |
|
1
2
|