如何用C++写一个小游戏

一个用C++编程的小游戏,可以实现以下功能:

1,随机生成数字;

2.数字淘汰与合并;

3、判断游戏结束;

一、游戏主题:?

因为是用C++写的,所以用的是类,棋盘用的是二维数组,m是棋盘规格,取4。

班级游戏

{

公共:

int i,j;

游戏(){

count 1 = 0;

for(I = 0;我& ltm;i++)

for(j = 0;j & ltm;j++)

棋盘[I][j]= 0;

srand((无符号)时间(空));

x = rand()% m;

y = rand()% m;

if(count 1 = = 1 | | count 1 = = 0)

棋盘[x][y]= 2;

其他

棋盘[x][y]= 4;

show棋盘();

}//构建初始棋盘

void add(int count 1);//添加新图形

void棋盘();//显示棋盘

void up();

void down();

void left();

void right();

bool game over();//游戏失败

私人:

int棋盘[m][m];

int x,y,count1,count2,temp1,temp2,k;//c1-消去,c2-空位标记,t1-判断消去,t2,k-临时变量。

布尔标志;//取消

};

第二,随机生成数字

无效游戏::add(int count1)

{

for(I = 0;我& ltm;i++)

for(j = 0;j & ltm;j++)

{

if(棋盘[i][j] == 0)

转到循环;

}

show棋盘();

返回;

loop:srand((无符号)time(NULL));

做{

x = rand()% m;

y = rand()% m;

} while(棋盘[x][y]!= 0);

if(count 1 & lt;2)

棋盘[x][y]= 2;

其他

棋盘[x][y]= 4;

show棋盘();

}

第三,数字淘汰和合并

void game::up()

{

temp 1 = count 1;

flag = false

for(j = 0;j & ltm;j++)

for(I = 0;我& ltm;)

{

for(;我& lt4 & amp& amp棋盘[I][j]= = 0;i++);//查找非零值

如果(i == 4)

打破;

其他

{

for(k = I+1;k & lt4 & amp& amp棋盘[k][j]= = 0;k++);//查找下一个非零值

如果(k == 4)

打破;

Else if(棋盘[I] [j] = =棋盘[k][j])//匹配

{

棋盘[I][j]* = 2;

棋盘[k][j]= 0;

I = k+1;

flag = true

}

else if(棋盘[i][j]!棋盘[k][j]& amp;& ampk & lt4)//不匹配

{

I = k;

}

}

}

for(j = 0;j & ltm;J++)//排列棋盘

for (i = 0,count 2 = 0;我& ltm;i++)

{

if(棋盘[i][j]!= 0)

{

temp2 =棋盘[I][j];

棋盘[I][j]= 0;

棋盘[count 2][j]= temp 2;

count 2++;

}

}

}

第四,判断游戏结束

布尔游戏::gameover()

{

if(标志)

count 1++;//裁决和撤销

if (temp1 == count1)

count 1 = 0;//没有淘汰,甚至淘汰到零。

add(count 1);

for (i = m - 1,j = 0;j & ltm;J++)//最后一行

{

If (j == m-1)//右下角

{

if(棋盘[i][j] == 0)

返回false

else if(棋盘[i][j] == 2048)

{

cout & lt& lt“你赢了~ \ n”;

返回true

}

}

其他

{

if(棋盘[i][j] == 0 ||棋盘[i][j] ==棋盘[i][j + 1])

返回false

else if(棋盘[i][j] == 2048)

{

cout & lt& lt“你赢了~ \ n”;

返回true

}

}

}

for (i = 0,j = m-1;我& ltm;I++)//最后一列

{

If (i == m-1)//右下角

{

if(棋盘[i][j] == 0)

返回false

else if(棋盘[i][j] == 2048)

{

cout & lt& lt“你赢了~ \ n”;

返回true

}

}

其他

{

if(棋盘[i][j] == 0 ||棋盘[i][j] ==棋盘[i + 1][j])

返回false

else if(棋盘[i][j] == 2048)

{

cout & lt& lt“你赢了~ \ n”;

返回true

}

}

}

for(I = 0;我& ltm-1;i++)

for(j = 0;j & ltm-1;j++)

{

if(棋盘[i][j] == 2048)

{

cout & lt& lt“你赢了!\ n ";

返回true

}

else if(棋盘[i][j] ==棋盘[i][j + 1] ||棋盘[i][j] ==棋盘[i + 1][j] ||棋盘[i][j] == 0)

返回false

}

cout & lt& lt“游戏结束了。\ n ";

返回true

}

扩展数据:

C++语言程序是因为想表现出高性能才编译的。但是,它的开发环境,为了方便测试,将被解释为调试环境。

生成器是指将源代码(C++语句)转换成可运行的应用程序的过程。如果程序编写正确,通常按一个功能键就可以完成这个过程。但是过程其实分两步。

第一步是编译程序,这需要一个编译器。编译器把C++语句转换成机器码(也叫目标码);

第二步是链接程序,这需要一个链接器。链接器将编译后机器码与C++库中的代码合并。C++库包含执行一些常见任务的函数(“函数”是子例程的另一个名称)。

百度百科-C++