|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.