A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://arrayfire.org/docs/graphics_2conway_pretty_8cpp-example.htm below:

ArrayFire: graphics/conway_pretty.cpp

#include <cstdio>

#include <iostream>

int main(int, char**) {

try {

static const float h_kernel[] = {1, 1, 1, 1, 0, 1, 1, 1, 1};

static const int reset = 500;

static const int game_w = 128, game_h = 128;

std::cout << "This example demonstrates the Conway's Game of Life "

"using ArrayFire"

<< std::endl

<< "There are 4 simple rules of Conways's Game of Life"

<< std::endl

<< "1. Any live cell with fewer than two live neighbours "

"dies, as if caused by under-population."

<< std::endl

<< "2. Any live cell with two or three live neighbours lives "

"on to the next generation."

<< std::endl

<< "3. Any live cell with more than three live neighbours "

"dies, as if by overcrowding."

<< std::endl

<< "4. Any dead cell with exactly three live neighbours "

"becomes a live cell, as if by reproduction."

<< std::endl

<< "Each white block in the visualization represents 1 alive "

"cell, black space represents dead cells"

<< std::endl

<< std::endl;

std::cout

<< "The conway_pretty example visualizes all the states in Conway"

<< std::endl

<< "Red : Cells that have died due to under population"

<< std::endl

<< "Yellow: Cells that continue to live from previous state"

<< std::endl

<< "Green : Cells that are new as a result of reproduction"

<< std::endl

<< "Blue : Cells that have died due to over population"

<< std::endl

<< std::endl;

std::cout

<< "This examples is throttled so as to be a better visualization"

<< std::endl;

"Conway's Game Of Life - Current State");

"Conway's Game Of Life - Visualizing States");

simpleWindow.

setPos

(32, 32);

prettyWindow.

setPos

(512 + 32, 32);

int frame_count = 0;

array

display = tile(state, 1, 1, 3, 1);

while

(!simpleWindow.

close

() && !prettyWindow.

close

()) {

if

(!simpleWindow.

close

()) simpleWindow.

image

(state);

if

(!prettyWindow.

close

()) prettyWindow.

image

(display);

frame_count++;

if (frame_count % reset == 0)

array

a0 = (state == 1) && (nHood < 2);

array

a1 = (state != 0) && (C0 || C1);

array

a2 = (state == 0) && C1;

array

a3 = (state == 1) && (nHood > 3);

display = join(2, a0 + a1, a1 + a2, a3).

as

(

f32

);

state = state * C0 + C1;

double fps = 30;

while (timer::stop(delay) < (1 / fps)) {}

}

fprintf(stderr,

"%s\n"

, e.

what

());

throw;

}

return 0;

}

Window object to render af::arrays.

A multi dimensional data container.

const array as(dtype type) const

Casts the array into another data type.

An ArrayFire exception class.

virtual const char * what() const

Returns an error message for the exception in a string format.

@ f32

32-bit floating point values

void image(const array &in, const char *title=NULL)

Renders the input array as an image to the window.

bool close()

Check if window is marked for close.

void setPos(const unsigned x, const unsigned y)

Set the start position where the window will appear.

AFAPI array randu(const dim4 &dims, const dtype ty, randomEngine &r)

C++ Interface to create an array of random numbers uniformly distributed.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4