Annotation of 43BSDReno/share/doc/ps1/18.curses/appen.C, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted
                      5: .\" provided that the above copyright notice and this paragraph are
                      6: .\" duplicated in all such forms and that any documentation,
                      7: .\" advertising materials, and other materials related to such
                      8: .\" distribution and use acknowledge that the software was developed
                      9: .\" by the University of California, Berkeley.  The name of the
                     10: .\" University may not be used to endorse or promote products derived
                     11: .\" from this software without specific prior written permission.
                     12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     15: .\"
                     16: .\"    @(#)appen.C     6.2 (Berkeley) 3/17/89
                     17: .\"
                     18: .ie t .oh '\*(Ln Appendix C''PS1:18-%'
                     19: .eh 'PS1:18-%''\*(Ln Appendix C'
                     20: .el .he ''\fIAppendix C\fR''
                     21: .bp
                     22: .(x
                     23: .ti 0
                     24: .b "Appendix C"
                     25: .)x
                     26: .sh 1 "Examples" 1
                     27: .pp
                     28: Here we present a few examples
                     29: of how to use the package.
                     30: They attempt to be representative,
                     31: though not comprehensive.
                     32: .sh 1 "Screen Updating"
                     33: .pp
                     34: The following examples are intended to demonstrate
                     35: the basic structure of a program
                     36: using the screen updating sections of the package.
                     37: Several of the programs require calculational sections
                     38: which are irrelevant of to the example,
                     39: and are therefore usually not included.
                     40: It is hoped that the data structure definitions
                     41: give enough of an idea to allow understanding
                     42: of what the relevant portions do.
                     43: The rest is left as an exercise to the reader,
                     44: and will not be on the final.
                     45: .sh 2 "Twinkle"
                     46: .pp
                     47: This is a moderately simple program which prints
                     48: pretty patterns on the screen
                     49: that might even hold your interest for 30 seconds or more.
                     50: It switches between patterns of asterisks,
                     51: putting them on one by one in random order,
                     52: and then taking them off in the same fashion.
                     53: It is more efficient to write this
                     54: using only the motion optimization,
                     55: as is demonstrated below.
                     56: .(l I
                     57: .so twinkle1.gr
                     58: .)l
                     59: .sh 2 "Life"
                     60: .pp
                     61: This program fragment models the famous computer pattern game of life
                     62: (Scientific American, May, 1974).
                     63: The calculational routines create a linked list of structures
                     64: defining where each piece is.
                     65: Nothing here claims to be optimal,
                     66: merely demonstrative.
                     67: This code, however,
                     68: is a very good place to use the screen updating routines,
                     69: as it allows them to worry about what the last position looked like,
                     70: so you don't have to.
                     71: It also demonstrates some of the input routines.
                     72: .(l I
                     73: .so life.gr
                     74: .)l
                     75: .sh 1 "Motion optimization"
                     76: .pp
                     77: The following example shows how motion optimization
                     78: is written on its own.
                     79: Programs which flit from one place to another without
                     80: regard for what is already there
                     81: usually do not need the overhead of both space and time
                     82: associated with screen updating.
                     83: They should instead use motion optimization.
                     84: .sh 2 "Twinkle"
                     85: .pp
                     86: The
                     87: .b twinkle
                     88: program
                     89: is a good candidate for simple motion optimization.
                     90: Here is how it could be written
                     91: (only the routines that have been changed are shown):
                     92: .(l
                     93: .so twinkle2.gr
                     94: .)l

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.