Qbasicnews.com

Full Version: New Challenge Forum
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Welcome to the new challenge forum. There will be a weekly or bi-weekly challenges. Each challenge will require different skills to the previous ones. So for the first challenge I've let it be decided by a poll for the type of challenge.

Each challenge should not take long to complete but there will be no maximum time allowed(therefore take as much time as you need).
The poll seems to show a game but it'll only finish within 6 more days, after then the challenge will be posted.
You can also do a GFX-Demo compo.

Making a graphical or sound demo. (Or somethin' else).

-Neo
Im a bit of a geek so I like the more mathy challenges.

I dont know how many people would be interested but you could hold an obfuscated qb code contest. The object is to create a complete program that does something, but is almost impossible to understand. www.ioccc.org hold an obfuscated C code contest every year (I have a half finished entry).

I have done some cool coding challenges where you have to write a program (usually only a few lines) to perform a certain task, but with heavy constraints (such as only being allowed one for-loop or not using some statements), this really challenge peoples ability to use a language to its fullest.

Just my 2 cents
Writing very complex programs, that do something simple, sound good :bounce: !

-Neo
Well, if you intend us to finish it within a week or two, it'll have to be relatively simple. I recommend that most or all of the challenges be pureQB. That way there isn't preference to one library (since often one is more appropriate than another in a particular situation -- eg. DirectQB has more functions like rotation and scaling and so on, but RelLib is faster.)

I also propose that rather than having really general stuff like 'make a cool minigame', give very specific direction like 'make a platformer that sidescrolls in Screen 12 and involves a multiple on-screen projectile weapon, and allows the player to perform at least five basic operations: Left, Right, Jump, Duck, and Fire.

Evaluation should be on a per-contest basis. As in, a different rubric for each time around. Fun Factor, Graphics, and GUI might be categories in a game, but in a graphical demo, it might be more like Ingenuity, First Impression, and Attention to Detail.

Finally, having a contest every single week isn't necessarily a good idea. Particularly with us all going back to school this week. For the example I laid out above, a more realistic deadline would be two or three months down the road. But that doesn't mean the forum would have to fall silent for that time: Each entrant could start a thread for their project and then post updates and screenshots and whatever other hype material.

Just my suggestions.
I vote for wizardlife's suggestions.

Also I challenge you all to write a short program which inputs your name and writes "Hello, "+name$ on screen without using PRINT, INPUT nor INKEY$. C'mon!!
Agreed, I'm aimimg for different aspects for each challenge. I think I'll move them to a monthly or bi-monthly minimum(time isn't always freely available, I know).
Oh - Nobody even tried... Here's my sollution Big Grin Big Grin Big Grin

The input routine needs much improvement as it doesn't still support all the keys nor CAPS / ALT+GR combinations, but, oh well, I coded this straight from scratch in ten minutes... Don't ask me more Big Grin

Code:
DECLARE SUB myLocate (xx%, yy%)
DECLARE FUNCTION myInput$ ()
DECLARE SUB NL ()
DECLARE SUB myPrint (a$)
DECLARE SUB myCls ()
DECLARE SUB ScrollScreen ()
' Write an INPUT "what's your name";a$:PRINT "Hello "+a$ program without
' using INPUT nor PRINT nor INKEY$

DIM SHARED myPrintX%, myPrintY%
DIM SHARED kc$(127)      ' Far from complete

DIM SHARED MaxKey%

myCls

tecladata:
kc$(1) = CHR$(27)
kc$(2) = "1"
kc$(3) = "2"
kc$(4) = "3"
kc$(5) = "4"
kc$(6) = "5"
kc$(7) = "6"
kc$(8) = "7"
kc$(9) = "8"
kc$(10) = "9"
kc$(11) = "0"
kc$(12) = "-"
kc$(13) = "+"
kc$(14) = CHR$(8)

kc$(15) = CHR$(9)
kc$(16) = "q"
kc$(17) = "w"
kc$(18) = "e"
kc$(19) = "r"
kc$(20) = "t"
kc$(21) = "y"
kc$(22) = "u"
kc$(23) = "i"
kc$(24) = "o"
kc$(25) = "p"
kc$(26) = "{"
kc$(27) = "}"
kc$(28) = CHR$(13)

kc$(29) = CHR$(0)
kc$(30) = "a"
kc$(31) = "s"
kc$(32) = "d"
kc$(33) = "f"
kc$(34) = "g"
kc$(35) = "h"
kc$(36) = "j"
kc$(37) = "k"
kc$(38) = "l"
kc$(39) = ":"
kc$(40) = CHR$(34)
kc$(41) = "~"

kc$(42) = CHR$(0)
kc$(43) = "|"
kc$(44) = "z"
kc$(45) = "x"
kc$(46) = "c"
kc$(47) = "v"
kc$(48) = "b"
kc$(49) = "n"
kc$(50) = "m"
kc$(51) = "<"
kc$(52) = ">"
kc$(53) = "?"
kc$(54) = CHR$(0)

kc$(55) = "*"
kc$(56) = CHR$(0)
kc$(57) = " "
kc$(58) = CHR$(0)
kc$(59) = "F1"
kc$(60) = "F2"
kc$(61) = "F3"
kc$(62) = "F4"
kc$(63) = "F5"
kc$(64) = "F6"
kc$(65) = "F7"
kc$(66) = "F8"
kc$(67) = "F9"

kc$(68) = "F10"
kc$(69) = CHR$(0)
kc$(70) = CHR$(0)

kc$(71) = "7"
kc$(72) = "8"
kc$(73) = "9"
kc$(74) = "-"
kc$(75) = "4"
kc$(76) = "5"
kc$(77) = "6"
kc$(78) = "+"
kc$(79) = "1"
kc$(80) = "2"
kc$(81) = "3"
kc$(82) = "0"
kc$(83) = "."
kc$(84) = "END!"
MaxKey% = 84

myPrint "Enter your name: "
a$ = myInput
NL
myPrint "Hello, " + a$ + "!"

SUB myCls
   myPrintX% = 1
   myPrintY% = 1
   CLS
END SUB

FUNCTION myInput$
   t% = 0
   o$ = ""
   x% = myPrintX%
   y% = myPrintY%
   myLocate x%, y%
   myPrint ">"
   x% = x% + 1
   WHILE NOT t%
      ' Clear buffer
      DEF SEG = &H40
      POKE &H1A, PEEK(&H1C)      ' Head = Tail so clear :)
      DEF SEG
      ' Inp:
      k% = INP(&H60)
      IF k% < MaxKey% THEN
         ch$ = kc$(k%)
         SELECT CASE ch$
            CASE CHR$(8):
               IF LEN(o$) > 0 THEN
                  o$ = LEFT$(o$, LEN(o$) - 1)
               END IF
            CASE CHR$(13):
               t% = -1
            CASE ELSE
               o$ = o$ + ch$
         END SELECT
         WHILE INP(&H60) = k%: WEND    ' Depress
      END IF
      myLocate x%, y%
      myPrint o$ + "_ "
   WEND
   myInput$ = o$
END FUNCTION

SUB myLocate (xx%, yy%)
   myPrintX% = xx%
   myPrintY% = yy%
END SUB

SUB myPrint (a$)
   DEF SEG = &HB800
   FOR i% = 1 TO LEN(a$)
      m$ = MID$(a$, i%, 1)
      POKE (myPrintX% - 1) * 2 + (myPrintY% - 1) * 160, ASC(m$)
      myPrintX% = myPrintX% + 1
      IF myPrintX% = 81 THEN
         myPrintX% = 1
         myPrintY% = myPrintY% + 1
         IF myPrintY% = 26 THEN
            ScrollScreen
            myPrintY% = 25
         END IF
      END IF
   NEXT i%
   DEF SEG
END SUB

SUB NL
   ' CRLF :)
   myPrintX% = 1
   myPrintY% = myPrintY% + 1
   IF myPrintY% = 26 THEN
      ScrollScreen
      myPrintY% = 25
   END IF
END SUB

SUB ScrollScreen
   DEF SEG = &HB800
   FOR y% = 1 TO 24
      FOR x% = 0 TO 79
         POKE (y% - 1) * 160 + x% * 2, PEEK(y% * 160 + x% * 2)
   NEXT x%, y%
   FOR x% = 0 TO 79
      POKE 25 * 160 + x% * 2, 32
   NEXT x%
   DEF SEG
END SUB
Sorry na_th_an but I caused some problems on the site by accident so many people can't access it unless they know to go via http://hybd.net/~qbnews
Pages: 1 2 3 4 5