欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++小游戏开发:2048小游戏

程序员文章站 2022-07-02 20:12:37
用C++写的一个小游戏,没用到类。 开始用的清屏函数来刷新屏幕,但是屏幕闪烁严重,最后采用了移动光标方法来刷新屏幕,使游戏过程中屏幕不会闪烁。 #include

用C++写的一个小游戏,没用到类。 开始用的清屏函数来刷新屏幕,但是屏幕闪烁严重,最后采用了移动光标方法来刷新屏幕,使游戏过程中屏幕不会闪烁。

#include<iostream>
#include<ctime>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<fstream>
using namespace std;
int a[4][4]={0};
int score=0;
void menu();
int if_end();
void gotoxy(int x,int y);
void save_score(int x);
void read_score();
void save_data();
void read_data();
void printf_num();
void rand_num();
void move();


int if_end()
{
int i,j,b=0;
for(i=0;i&lt;4;i++)
{
for(j=0;j&lt;4;j++)
{
if(a[i][j]==0)b++;
}
}
for(i=0;i&lt;4;i++)
{
for(j=0;j&lt;3;j++)
{
if(a[i][j]==a[i][j+1])b++;
}
}
for(i=0;i&lt;4;i++)
{
for(j=0;j&lt;3;j++)
{
if(a[j][i]==a[j+1][i])b++;
}
}
if(b!=0)b=1;
return b;
}
void gotoxy(int x,int y)
{
COORD coord={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
void save_score(int x)
{
int i,j,t;
int a[11]={0};
ifstream fin (&quot;score.txt&quot;,ios::in);
if(!fin)
{
ifstream fin (&quot;score.txt&quot;,ios::trunc);
}
for(i=0;i&lt;10;i++)
{
fin&gt;&gt;a[i];
}
fin.close();
for(i=0;i&lt;10;i++)
{
if(a[i]==x)x=0;
}
a[10]=x;
for(i=10;i&gt;0;i--)
{
for(j=i-1;j&gt;=0;j--)
{
if(a[j]<a[i])<br> {
a[j]^=a[i];
a[i]^=a[j];
a[j]^=a[i];
}
}
}
ofstream fout (&quot;score.txt&quot;,ios::out);
if(!fout)
{
cout&lt;&lt;&quot;Can&#39;t open output file!&quot;&lt;<endl;<br> exit(1);
}
for(i=0;i&lt;10;i++)
{
fout&lt;<a[i]<<endl;<br> }
fout.close();
}
void read_score()
{
int i,a[10];
system(&quot;cls&quot;);
ifstream fin (&quot;score.txt&quot;,ios::in);
if(!fin)
{
cout&lt;&lt;&quot;Can&#39;t open output file!&quot;&lt;<endl;<br> getch();
system(&quot;cls&quot;);
menu();
}
for(i=0;i&lt;10;i++)
{
fin&gt;&gt;a[i];
}
fin.close();
cout&lt;&lt;&quot; 排行榜\n\n&quot; ;
for(i=0;i&lt;10;i++)
{
printf(&quot; %2d.&quot;,i+1);
cout&lt;<a[i]<<endl;<br> }
}




void printf_num()
{
int i,j;
char p;
cout&lt;&lt;&quot;\n\n\n\n\n\n\n&quot;;
printf(&quot; ┌──┬──┬──┬──┐\n&quot;);
for(i=0;i&lt;4;i++)
{
printf(&quot; &quot;);
for(j=0;j&lt;4;j++)
{
if(j==0)cout&lt;&lt;&quot;|&quot;;
if(a[i][j]!=0)printf(&quot;%4d|&quot;,a[i][j]);
else cout&lt;&lt;&quot; |&quot;;
}
cout&lt;<endl;<br> if (i &lt; 3)
{
printf(&quot; ├──┼──┼──┼──┤\n&quot;); }
else
{
printf(&quot; └──┴──┴──┴──┘\n&quot;);
}
}
printf(&quot; score:%d\n&quot;,score);
save_data();
if(if_end()==0)
{
save_score(score);
cout&lt;&lt;&quot;\n\n\n GAME OVER!&quot;&lt;<endl<<"\n\n b="0;&lt;br" br="" case="" char="" color="" cols="115" con="" else="" fin="" for="" fout="" i="3;i&gt;=0;i--)&lt;br" ifstream="" int="" j="3;j&gt;0;j--)&lt;br" k="0;k&lt;3;k++)&lt;br" lines="28&quot;)" loc="((int)(rand()%n)+1);&lt;br" mode="" n="" nthanks="" num="=2)a[i][j]=4;&lt;br" ofstream="" p="='y')&lt;br" restrat="" return="" score="0;&lt;br" thanks="" void=""></endl<<"\n\n></endl;<br></a[i]<<endl;<br></endl;<br></a[i]<<endl;<br></endl;<br></a[i])<br></fstream></windows.h></conio.h></stdlib.h></ctime>