生命遊戲(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 分析 首先這個你得找規律,這個剛開始的時候不要太心急。不難看出有個很好的式子 從第三個...