Sponsored Content
Top Forums Shell Programming and Scripting awk diamond code golf (just for fun!) Post 302986555 by Scrutinizer on Sunday 27th of November 2016 07:22:58 AM
Old 11-27-2016
Thanks pilnet101 Smilie . Basically it increases the line length by 2 every line and memorizes the line. Then at maximum length, the loop starts to decrement, rather than increment and only prints the lines memorized in the increment phase.

With regards to the setting of the quotient q and the line n where the maximum line length occurs, and using the name m for maximum line length rather than l which is easily confused with the number 1), perhaps this is a bit clearer:
Code:
awk -v m=15 -v c=\* 'BEGIN{q=!(m%2);n=int(m/2);for(i=k=1;i>=1;i+=k){s=s c;if(k==1)A[i]=sprintf("% *s%.*s",n,s,i+q-1,s);print A[i];if(i==n)k=-1}}'


Last edited by Scrutinizer; 11-27-2016 at 01:05 PM..
This User Gave Thanks to Scrutinizer For This Post:
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Diamond operator in Until Statement (perl)

Hello: I have the following perl script which is giving me trouble inside the second elsif statement. The purpose of the script is to go through a file and print out only those lines which contain pertinent information. The tricky part came when I realized that certain items actually spanned... (5 Replies)
Discussion started by: erichpowell
5 Replies

2. Shell Programming and Scripting

Fun with awk

uggc://ra.jvxvcrqvn.bet/jvxv/EBG13 #!/usr/bin/awk -f BEGIN { for (n=0;n<26;n++) { x=sprintf("%c",n+65); y=sprintf("%c",(n+13)%26+65) r=y; r=tolower(y) } } { b = "" for (n=1; x=substr($0,n,1); n++) b = b ((y=r)?y:x) print b } ... (0 Replies)
Discussion started by: colemar
0 Replies

3. Shell Programming and Scripting

More fun with awk

#!/usr/bin/ksh ls -l $@ | awk ' /^-/ { l = 5*log($5) h = sprintf("%7d %-72s",$5,$8) print "\x1B ls command with histogram of file sizes. The histogram scale is logaritmic, to avoid very short bars for smaller files or very long bars for bigger files. Screenshot: (4 Replies)
Discussion started by: colemar
4 Replies

4. Shell Programming and Scripting

Perl Diamond Operator

I know that when using 'while (<FILE>) {}', Perl reads only one line of the file at one time, and store it in '$_'. Can I change some parameters so that 'while (<>) {}' can read more than one lines, like 2 or 5 lines at one time? Thanks for the help! (1 Reply)
Discussion started by: zx1106
1 Replies

5. UNIX for Dummies Questions & Answers

fun and easy awk question

I have a file called mytitles.txt containing a list of book titles I have a second file called abfile.txt containing a list of book titles (in the 3rd field) and it has author info and copyright year info as well.. I want to search mytitles.txt for a match in the 3rd field of abfiles.txt, and... (2 Replies)
Discussion started by: glev2005
2 Replies

6. What is on Your Mind?

Place your bets! - Ryder Cup 2012 (Golf)

Who will win the 2012 Ryder Cup. Europe vs USA There is an open event in the Event Prediction Forum. The event closes on 27th Sep 2012. 2012 Ryder Cup - Wikipedia, the free encyclopedia (0 Replies)
Discussion started by: ni2
0 Replies

7. Shell Programming and Scripting

To print diamond asterisk pattern based on inputs

I have to print the number of stars that increases on each line from the minimum number until it reaches the maximum number, and then decreases until it goes back to the minimum number. After printing out the lines of stars, it should also print the total number of stars printed. I have tried... (13 Replies)
Discussion started by: rohit_shinez
13 Replies
XSetDashes()															      XSetDashes()

Name
  XSetDashes - set a pattern of line dashes in a graphics context.

Synopsis
  XSetDashes(display, gc, dash_offset, dash_list, n)
	Display *display;
	GC gc;
	int dash_offset;
	char dash_list[];
	int n;

Arguments
  display   Specifies a connection to an X server; returned from XOpenDisplay().

  gc	    Specifies the graphics context.

  dash_offset
	    Specifies the phase of the pattern for the dashed line style.

  dash_list Specifies the dash list for the dashed line style.	An odd-length list is equivalent to the same list concatenated with itself to
	    produce an even-length list.

  n	    Specifies the length of the dash list argument.

Description
  XSetDashes() sets the dashes component of a GC.  The initial and alternating elements of the dash_list argument are the dashes, the  others
  are  the  gaps.   All of the elements must be non-zero, with lengths measured in pixels.  The dash_offset argument defines the phase of the
  pattern, specifying how many pixels into the dash_list the pattern should actually begin in the line drawn by the request.

  n specifies the length of dash_list.	An odd value for n is interpreted as specifying the dash_list concatenated  with  itself  to  produce
  twice as long a list.

  Ideally,  a dash length is measured along the slope of the line, but server implementors are only required to match this ideal for horizon-
  tal and vertical lines.  Failing the ideal semantics, it is suggested that the length be measured along the major axis of  the  line.   The
  major  axis  is  defined as the x axis for lines drawn at an angle of between -45 and +45 degrees or between 315 and 225 degrees from the x
  axis.  For all other lines, the major axis is the y axis.

  See Volume One, Chapter 5, The Graphics Context, for further information.

Errors
  BadAlloc

  BadGC

  BadValue  No values in dash_list.
	    Element in dash_list is 0.

See Also
  XDefaultGC(), XChangeGC(), XCopyGC(), XCreateGC(), XFreeGC(), XGContextFromGC(), XSetArcMode(), XSetBackground(), XSetClipMask(),  XSetCli-
  pOrigin(),  XSetClipRectangles(),  XSetFillRule(),  XSetFillStyle(), XSetForeground(), XSetFunction(), XSetGraphicsExposures(), XSetLineAt-
  tributes(), XSetPlaneMask(), XSetState(), XSetStipple(), XSetSubwindowMode(), XSetTSOrigin().

Xlib - Graphics Context 													      XSetDashes()
All times are GMT -4. The time now is 07:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy