Pinstripe/Display
You are encouraged to solve this task according to the task description, using any language you may know.
The task is to demonstrate the creation of 1 pixel wide pinstripes across the width of the display. The pinstripes should alternate one pixel white, one pixel black.
Quarter of the way down the display, we can switch to a wider 2 pixel wide pinstripe pattern, alternating two pixels white, two pixels black. Half way down the display, we switch to 3 pixels wide, and for the lower quarter of the display we use 4 pixels.
PureBasic
Generating the Pinstripe picture <lang PureBasic>Procedure PinstripeDisplay(Width=800)
Protected x, l=1, imgID imgID=CreateImage(#PB_Any, Width, 1) If imgID StartDrawing(ImageOutput(imgID)) Repeat Line(x, 0, l, 1, #White) If x>=3*Width/4 : l=4 ElseIf x>=Width/2 : l=3 ElseIf x>=Width/4 : l=2 EndIf x+2*l Until x >= Width StopDrawing() EndIf ProcedureReturn imgID
EndProcedure</lang> Test the code, and save the result. <lang PureBasic>PicID=PinstripeDisplay() If PicID And UsePNGImageEncoder()
Path$=GetSpecialFolder(#CSIDL_DESKTOP)+"PB_Pinstripe.png" SaveImage(PicID, Path$,#PB_ImagePlugin_PNG,0,2)
EndIf</lang> Result
Tcl
<lang tcl>package require Tcl 8.5 package require Tk 8.5
wm attributes . -fullscreen 1 pack [canvas .c -highlightthick 0] -fill both -expand 1 set colors {black white}
set dy [expr {[winfo screenheight .c]/4}] set y 0 foreach dx {1 2 3 4} {
for {set x 0} {$x < [winfo screenwidth .c]} {incr x $dx} {
.c create rectangle $x $y [expr {$x+$dx}] [expr {$y+$dy}] \
-fill [lindex $colors 0] -outline {}
set colors [list {*}[lrange $colors 1 end] [lindex $colors 0]]
} incr y $dy
}</lang>