#include <iostream>
#include <cstdio>
#include <string>
#include <windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void gotoxy(int x, int y)//覆盖清屏
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
return ;
}
int blocks[21][21][2];
int f(int a,int b){
int c=0;
if(blocks[a-1][b-1][0]) c++;
if(blocks[a][b-1][0]) c++;
if(blocks[a+1][b-1][0]) c++;
if(blocks[a-1][b][0]) c++;
if(blocks[a+1][b][0]) c++;
if(blocks[a-1][b+1][0]) c++;
if(blocks[a][b+1][0]) c++;
if(blocks[a+1][b+1][0]) c++;
return c;
}
#define kd(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
void HideCursor()//windows.h
{
CONSOLE_CURSOR_INFO cur={1,0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cur);
}
int main(){
start:
HideCursor();
srand(int(time(NULL)));
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
int r=rand()%150+1;
if(r<=50) blocks[i][j][0]=1;
}
}
while(true){
Sleep(30);
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
if(blocks[i][j][0]){
cout<<"&&";
if(f(i,j)>3 || f(i,j)<2) blocks[i][j][1]=0;
}
else{
cout<<"··";
if(f(i,j)==3) blocks[i][j][1]=1;
}
}
cout<<endl;
}
gotoxy(0,0);
for(int i=1;i<=20;i++){
for(int j=1;j<=20;j++){
blocks[i][j][0]=blocks[i][j][1];
}
}
if(kd(VK_SPACE))goto start;
}
return 0;
}
按空格重新