github.com/mdempsky/go@v0.0.0-20151201204031-5dd372bd1e70/misc/cgo/life/main.go (about)

     1  // cmpout
     2  
     3  // Copyright 2010 The Go Authors.  All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // +build ignore
     8  
     9  // Run the game of life in C using Go for parallelization.
    10  
    11  package main
    12  
    13  import (
    14  	"."
    15  	"flag"
    16  	"fmt"
    17  )
    18  
    19  const MAXDIM = 100
    20  
    21  var dim = flag.Int("dim", 16, "board dimensions")
    22  var gen = flag.Int("gen", 10, "generations")
    23  
    24  func main() {
    25  	flag.Parse()
    26  
    27  	var a [MAXDIM * MAXDIM]int32
    28  	for i := 2; i < *dim; i += 8 {
    29  		for j := 2; j < *dim-3; j += 8 {
    30  			for y := 0; y < 3; y++ {
    31  				a[i**dim+j+y] = 1
    32  			}
    33  		}
    34  	}
    35  
    36  	life.Run(*gen, *dim, *dim, a[:])
    37  
    38  	for i := 0; i < *dim; i++ {
    39  		for j := 0; j < *dim; j++ {
    40  			if a[i**dim+j] == 0 {
    41  				fmt.Print(" ")
    42  			} else {
    43  				fmt.Print("X")
    44  			}
    45  		}
    46  		fmt.Print("\n")
    47  	}
    48  }