Author Topic: Weekly Programming Challenges  (Read 8231 times)

0 Members and 1 Guest are viewing this topic.

Offline willrandship

  • Omnimagus of the Multi-Base.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2953
  • Rating: +98/-13
  • Insert sugar to begin programming subroutine.
    • View Profile
Weekly Programming Challenges
« on: October 12, 2012, 01:50:46 am »
So, this is an idea that would help boost activity, while also helping members get more acquanted with programming.

Programming Challenges

Community based programming events seem to have boosted activity in the past. Ie, portal X, the Summer programming contests, ndless, etc. so I figure we could get a more stabilized activity base by having continuous events.

Types of Events

Individual
Team [Up to 2, Up to 4, etc.]
Super Co-Op (The whole community contributes to one project, excepting one impartial person who then judges each person's contributions for points. It's mostly for the awesomeness of doing something, though)

TI-84+
Prizm
Nspire

Easy [expected <24 hrs]
Medium [expected <3 days]
Hard [expected <1 Week]
Insane [>1 week]
Lunatic [>1 month] (go Touhou :P)

You start a new Easy and Medium challenge every week, and one Hard, Lunatic and Insane challenge after 1 month.

Graphics-based
Math
Random

We should have randomly chosen teams, but each would contain a certain amount from different pools. As in, there would be a pool of users good at graphics, a pool good at the programming, map design, etc.


Example scoring system (I'm coming up with it on the spot. Criticism is welcome. )

100 points for every hour after it has been announced. (you do percentages of hours rounded to 1 point)
24000 points for not working 100% (This is for those Lunatic Challenges. It would give people 10 days to beat a nonworking entry)
1 point for each byte in the runtime file. This gives an advantage to Axe/Asm over BASIC/Grammer.
1 point for every frame/millisecond/whatever it takes to run, past the execution point. (pressing enter)
-(A fair amount) for creativity, etc. (If someone mimics another person's program, they would get less creativity, so they would have to come up with a big optimization to compensate. I don't think basing off another's program is bad this way, since they'd also be behind on time.)

What counts for the bytes is any non-language based (grammer, Axe Fusion) requirement for a program to run. If it needs external variables defined BEFORE execution, then those variables count as well.
(I'm looking at basic here: Defining 10->A where A is unknown does NOT count A)
Basically, if you need to send it to the calc for your program, and not for any other program, it counts.

Points are BAD.

Asm programs should be run with Asm(prgmNAME), and Axe programs should be compiled so they can run the same way. This is because timing problems would result from running MirageOS/DoorsCS/Ion start methods.

There should be a website with a live-updating countdown method of some sort, so it shows the challenge to everyone at the same time regardless of refreshes.


Prizes

Since they're weekly, there shouldn't be IRL prizes (money is expensive!) but maybe we should bring back the trophy system, but for this. Clicking on the trophy would take you to their zip in the file archives.

Oh, and the entries should be open source. We should have the community development skill increase as people see others' methods for running programs faster. These programs aren't going to be massive games or anything, and it's not a huge deal if someone undercuts you.

[size=24]Some Details[/size]

Reentries are allowed, but invalidate previous entries. If it's the same entry twice, then you just add to your time score.
Entering code that is not all yours is fine. (Axioms, Grammer Libs, Someone else's source) If you have the resources to find something for this contest that fast, then the community will benefit from it. If you rip off someone's entry, you're behind them on both time AND creativity.

A few example challenges: [stuff] means replace with specifics.
* make a program that displays the result of [some (hard) math operation]
* make a program that can draw [3d, lots of grey, etc.]
* make a program that [does something] in an especially creative way.

One potential problem is the time delay between the different time zones we are in. I believe we have 3 separate general regions to deal with (americas, europe, eastern asia) and I have a few thoughts on that as well.
* Have the start base on local time, so everyone starts at 5:00 PM in their area.
* Ignore the problem, and make the challenges hard enough that it's negligible. (ie they take 3-4 days)
* Cycle through starting times, so everyone gets a head start at some point.
« Last Edit: October 12, 2012, 01:56:43 am by willrandship »

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Weekly Programming Challenges
« Reply #1 on: October 12, 2012, 01:53:02 am »
If that happens, it should be non-text-based games. Eg no IRC bots, no Zork clones, no Drug Wars-like graphic-less games, even if the time frame is short. Otherwise, as you could see in Ruler501's contest with the IRC bots, it generates very little interest since menu-based games repels many people.

Offline willrandship

  • Omnimagus of the Multi-Base.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2953
  • Rating: +98/-13
  • Insert sugar to begin programming subroutine.
    • View Profile
Re: Weekly Programming Challenges
« Reply #2 on: October 12, 2012, 01:58:38 am »
The actual requirements would be vague on how exactly you would do it. Menu based games would get less creativity.

The Easy category should be easy enough that it only takes one day's worth of interest to finish anyway.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Weekly Programming Challenges
« Reply #3 on: October 12, 2012, 02:05:21 am »
Yeah but I'm sure it's still possible to create something graphical (including ASCII-based) in one or two day. It would just suck if there was a contest to make menu-based games, since almost nobody would be interested. Menu-based games are the back sheep of the TI community because of how hard they made it to find a decent BASIC program on ticalc.org from 1996 to 2006 (after which they were split into their own directory on ticalc) and how everyday 99% of ticalc uploads are just menu games with no graphic.

But again to really understand that you have to have been active in the TI community before the ticalc.org directory separation, back when the TI-83 Plus BASIC Games page alone was 6 MB large.

http://web.archive.org/web/20061107092325/http://www.ticalc.org/pub/83plus/basic/games/
« Last Edit: October 12, 2012, 02:14:20 am by DJ_O »

Offline willrandship

  • Omnimagus of the Multi-Base.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2953
  • Rating: +98/-13
  • Insert sugar to begin programming subroutine.
    • View Profile
Re: Weekly Programming Challenges
« Reply #4 on: October 12, 2012, 02:19:01 am »
Oh, sure, I understand the dilemma. BASIC menus are ugly. :P and I promise NONE of the contests will say "You must use the menu function" especially since neither Axe or Asm have one. Not sure about grammer, but since the languages are all open for entry, that invalidates that as a requirement.

Oh, and the speed test goes out the window for anything overly interactive. That rating only applies when you're operating on something ONCE, and the user input is a negligible part of the time.

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Weekly Programming Challenges
« Reply #5 on: October 12, 2012, 02:34:24 am »
I would be interested in weekly challenges. Another idea could be working on the parts of a certain type of game, where each week builds on the previous ones. You could have weeks working on enemy paths, power-ups, bullets, physics, etc. to try to think of new ideas/ways of doing things. They don't necessarily have to be implemented together to form a full game, though.

Thinking up ideas every week could end up being pretty hard, it might be worthwhile to have a stockpile of ideas from the start just to make sure you don't run out of ideas.

Offline deeph

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 138
  • Rating: +6/-0
    • View Profile
    • deeph.servhome.org
Re: Weekly Programming Challenges
« Reply #6 on: October 12, 2012, 05:34:48 am »
I would rather be interested in themed contests where we must make (small but entire) games relative to them in a restricted amount of time (a week seems enough) :)

A little like what's done on Planète Casio.

Offline Yeong

  • Not a bridge
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3739
  • Rating: +278/-12
  • Survivor of Apocalypse
    • View Profile
Re: Weekly Programming Challenges
« Reply #7 on: October 12, 2012, 08:14:52 am »
I agree with the super co-op ;D
Sig wipe!

Offline zeldaking

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 197
  • Rating: +15/-0
    • View Profile
Re: Weekly Programming Challenges
« Reply #8 on: October 12, 2012, 11:06:38 am »
I think this is a great idea. Good luck coming up with ideas.

Offline Augs

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 306
  • Rating: +30/-29
    • View Profile
Re: Weekly Programming Challenges
« Reply #9 on: October 12, 2012, 11:58:47 am »
Physics Challenge

Write a program to model a weight attached to one end of a spring.  The other end of the spring is stationary.

Extend to the model if you can to have several springs attached to the weight.


Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Weekly Programming Challenges
« Reply #10 on: October 12, 2012, 01:28:26 pm »
Hmm  I like that idea. That or a rope

Offline Yeong

  • Not a bridge
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3739
  • Rating: +278/-12
  • Survivor of Apocalypse
    • View Profile
Re: Weekly Programming Challenges
« Reply #11 on: October 12, 2012, 01:51:12 pm »
Physics Challenge

Write a program to model a weight attached to one end of a spring.  The other end of the spring is stationary.

Extend to the model if you can to have several springs attached to the weight.


hooke's law?
Sig wipe!

Offline willrandship

  • Omnimagus of the Multi-Base.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2953
  • Rating: +98/-13
  • Insert sugar to begin programming subroutine.
    • View Profile
Re: Weekly Programming Challenges
« Reply #12 on: October 12, 2012, 05:32:25 pm »
Just the kind of thing I was thinking of.

Offline Rhombicuboctahedron

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 437
  • Rating: +41/-6
    • View Profile
Re: Weekly Programming Challenges
« Reply #13 on: October 13, 2012, 11:51:01 am »
I believe this would be very easy to do with OS 3.2 Lua Physics.
That allows for weight and springs, and a lot of other things too.
But I am still learning the functions, so I can’t program this.

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Weekly Programming Challenges
« Reply #14 on: October 13, 2012, 01:08:23 pm »
Another idea could be working on the parts of a certain type of game, where each week builds on the previous ones. You could have weeks working on enemy paths, power-ups, bullets, physics, etc. to try to think of new ideas/ways of doing things. They don't necessarily have to be implemented together to form a full game, though.

Thinking up ideas every week could end up being pretty hard, it might be worthwhile to have a stockpile of ideas from the start just to make sure you don't run out of ideas.

Actually, that's a really awesome idea. :D
« Last Edit: October 13, 2012, 01:08:51 pm by Art_of_camelot »