邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
twitter
tg_channel

[Rust] 生命游戏实例, 你的第一行代码何必是hello,world

一个十分简单的生命游戏实例#

fn main() {
    // 初始化世界
    let mut map: [[i32; 12]; 12] = [[0; 12]; 12];
    // 初始化数据
    map = lode(map);

    let mut loop_num: u32 = 0;
    while loop_num != 6 {
        // 进行判断
        map = comput(map);
        // 绘制世界
        display(map);

        loop_num += 1;
    }
}

fn lode(data: [[i32; 12]; 12]) -> [[i32; 12]; 12] {
    let mut _data: [[i32; 12]; 12] = data;
    // 初始化生命数据
    _data[1][2] = 1;
    _data[1][3] = 1;
    _data[3][1] = 1;
    _data[3][2] = 1;
    _data[3][3] = 1;

    _data
}

fn comput(data: [[i32; 12]; 12]) -> [[i32; 12]; 12] {
    let mut _data: [[i32; 12]; 12] = data;

    for h in 0..12 {
        for w in 0..12 {
            // 设定变量储存周边生命
            let mut state :i32 = 0;
            // 探测生命
            if !(h==0 || w==0) {
                state = state + _data[h-1][w-1];
            }
            if !(h==0) {
                state = state + _data[h-1][w];
            }
            if !(h==0 || w==11) {
                state = state + _data[h-1][w+1];
            }
            if !(w==0) {
                state = state + _data[h][w-1];
            }
            if !(w==11) {
                state = state + _data[h][w+1];
            }
            if !(h==11 || w==0) {
                state = state + _data[h+1][w-1];
            }
            if !(h==11) {
                state = state + _data[h+1][w];
            }
            if !(h==11 || w==11) {
                state = state + _data[h+1][w+1];
            }

            if state > 3 || state < 2 {
                _data[h][w] = 0;
            } else if state == 3 {
                _data[h][w] = 1;
            }
        }
    }

    _data
}

fn display(_data: [[i32; 12]; 12]) {
    for h in 0..12 {
        for w in 0..12 {
            if _data[h][w] == 1 {
                print!(" # ");
            } else {
                print!("   ");
            }
        }
        println!(" ");
    }
}
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。