邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
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!(" ");
    }
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。