设为首页 加入收藏

TOP

C++小游戏开发:2048小游戏(一)
2017-07-08 10:22:38 】 浏览:357
Tags:小游戏 开发 2048

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=""
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++编程开发中不能被继承的类 下一篇使用c++11新特性实现线程池

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目