c语言编2048,c语言编写的2048游戏代码,大家可以参考一下这些
2048_launcher.c
#include
#include
#include
void main()
{
printf("正在啟動中,請稍后!\n");
Sleep(1000);
system("bin\\Version\\games\\0.1\\0.1.exe");
}補充:0.1.c
#include
#include
#include
#include
#define WIN 256 // 可以修改決定游戲輸贏的值
// 矩陣數組
int num[4][4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int t[5]={0,0,0,0,0}; // 輔助數組
int move=0; // 記錄移動步數
int score=0; // 記錄得分情況
int max=0; // max表示游戲輸贏,max=WIN時贏
int change=1;
// 產生一個隨機位置和隨機數
void Srand()
{
int i,j;
do// 產生一個隨機位置,如果產生的位置有數據,就繼續隨機生成一個新位置
{
i=((unsigned)rand())%4;
j=((unsigned)rand())%4;
}while(num[i][j]!=0);
if(((unsigned)rand())%4==0)
{ // 產生一個隨機數,如果該數對4取余=0,則填充為4
num[i][j]=4;
}
else
{
num[i][j]=2;
}
move++;
}
void Print()
{
int j,i;
system("CLS");
printf("*~~~~~~~~2048~~~~~~~*\n");
printf("*author: 亞威 *\n");
printf("*得分: %d 步數: %d \n",score,move);
printf("*~~~~~~~~~~~~~~~~~~~*\n");
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(num[i][j]==0)
printf("* ");
else
printf("*%4d",num[i][j]);
}
printf("*\n*~~~~~~~~~~~~~~~~~~~*\n");
}
}
// 消除t數組中前面和中間出現的0
void fun()
{
int i,j;
for(i=0;i<=3;i++)
{
if(t[i]==0)
{
for(j=i+1;j<=3;j++)
{
if(t[j]!=0)
{
change=1;
break;
}
}
t[i]=t[j];
t[j]=0;
}
if(j>=3)
break;
}
}
// 合并操作
void hebing()
{
int i;
for(i=0;i<=2;i++)
{
if((t[i]!=0)&&(t[i]==t[i+1]))
{
t[i]*=2;
score+=t[i];
change=1;
t[i+1]=0;
}
if(max
max=t[i];
}
}
// 合并相鄰且相等的兩個數
void add()
{
fun(); // 消除前面的和中間的0
hebing(); // 合并相鄰且相等的兩個數
fun(); // 再次消0
}
int main()
{
int i,j;
int gameover=1;
// 產生一個隨機位置
srand((unsigned)time(NULL));
max=0;
while(gameover&&(max
{
if(change)
{
Srand(); // 產生一個隨機位置和隨機數
}
change=0;
Print(); // 顯示界面
char in=getch(); // 讀取操作命令
switch(in)
{
case 'w':
case 'W':
for(i=0;i<=3;i++)
{ // 依次處理第1至第4列
for(j=0;j<=3;j++)
{ // 把第i列的數據依次賦給輔助數組t
t[j]=num[j][i];
}
add(); // 核心:合并相鄰且相等的兩個數
for(j=0;j<=3;j++)
{ // 把處理后的數據依次放到矩陣對應位置
num[j][i]=t[j];
}
}
break;
case 's':
case 'S':
for(i=0;i<=3;i++)
{ // 依次處理第1至第4列
for(j=0;j<=3;j++)
{ // 把第i列的數據依次賦給輔助數組t
t[3-j]=num[j][i];
}
add(); // 核心:合并相鄰且相等的兩個數
for(j=0;j<=3;j++)
{ // 把處理后的數據依次放到矩陣對應位置
num[j][i]=t[3-j];
}
}
break;
case 'a':
case 'A':
for(i=0;i<=3;i++)
{ // 依次處理第1至第4列
for(j=0;j<=3;j++)
{ // 把第i列的數據依次賦給輔助數組t
t[j]=num[i][j];
}
add(); // 核心:合并相鄰且相等的兩個數
for(j=0;j<=3;j++)
{ // 把處理后的數據依次放到矩陣對應位置
num[i][j]=t[j];
}
}
break;
case 'd':
case 'D':
for(i=0;i<=3;i++)
{ // 依次處理第1至第4列
for(j=0;j<=3;j++)
{ // 把第i列的數據依次賦給輔助數組t
t[3-j]=num[i][j];
}
add(); // 核心:合并相鄰且相等的兩個數
for(j=0;j<=3;j++)
{ // 把處理后的數據依次放到矩陣對應位置
num[i][j]=t[3-j];
}
}
break;
}
gameover=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if(num[i][j]==0)
gameover=1;
}
}
if((gameover==0)&&(change==0))
break;
}
Print();
if(max>=WIN)
{
printf("你贏了!\n");
printf("你很牛啊!!!\n");
}
else
{
printf("游戲結束!\n");
printf("努力啊!!!\n");
}
getch();
return 0;
}
總結
以上是生活随笔為你收集整理的c语言编2048,c语言编写的2048游戏代码,大家可以参考一下这些的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML 中的特殊字符
- 下一篇: 电视盒子cpu天梯图 电视盒子CPU性能