C 經典演算法題 生命遊戲

2021-10-02 06:13:52 字數 1242 閱讀 2665

生命遊戲(game of life)為2023年由英國數學家j. h. conway所提出,某一細胞的鄰居包括上、下、左、右、左上、左下、右上與右下相鄰之細胞,遊戲規則如下:

孤單死亡:如果細胞的鄰居小於乙個,則該細胞在下一次狀態將死亡。 擁擠死亡:如果細胞的鄰居在四個以上,則該細胞在下一次狀態將死亡。穩定:如果細胞的鄰居為二個或三個,則下一次狀態為穩定存活。

復活:如果某位置原無細胞存活,而該位置的鄰居為三個,則該位置將復活一細胞。

生命遊戲的規則可簡化為以下,並使用case比對即可使用程式實作:

鄰居個數為0、1、4、5、6、7、8時,則該細胞下次狀態為死亡。鄰居個數為2時,則該細胞下次狀態為復活。

鄰居個數為3時,則該細胞下次狀態為穩定。

#include

#include

#include

#define maxrow 10

#define maxcol 25

#define dead 0

#define alive 1

int map[

maxrow]

[maxcol]

,newmap[maxrow]

[maxcol]

;void

init()

;int

neighbors

(int

,int);

void

outputmap()

;void

copymap()

;int

main()

}}copymap()

;printf

("\ncontinue next generation ? ");

getchar()

; ans =

toupper

(getchar()

);if(ans !=

'y')

break;}

return0;

}void

init()

}int

neighbors

(int row,

int col)

if(map[row]

[col]

== alive) count--

;return count;

}void

outputmap()

}void

copymap()

演算法 生命遊戲

問題描述 在乙個環境中,有很多細胞,細胞的位置周圍,上,下,左,右,左上,左下,右上,右下,八個方位 如果這個細胞周圍存在乙個及乙個一下,則下一代會消失 如果這個細胞周圍存在四個及四個以上,則下一代會消失 如果這個細胞周圍存在兩個或三個,則下一代保留 如果這個位置,本來沒用細胞,但是周圍有三個細胞,...

C 經典演算法題(一)

1.實現strcpy.char mystrcpy char pdest,const char psrc if pdest psrc char piter pdest strlen pdest while piter psrc 0 return pdest 3.實現cstring字串類預設四個方法 c...

經典演算法題

題目 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?1.程式分析 兔子的規律為數列1,1,2,3,5,8,13,21 分析 首先這個你得找規律,這個剛開始的時候不要太心急。不難看出有個很好的式子 從第三個...