码迷,mamicode.com
首页 > 编程语言 > 详细

纯c语言写的拼图游戏

时间:2015-03-05 14:52:04      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:c语言   游戏   

#include<stdio.h>  
#include<stdlib.h>  
#include<time.h>  
#include<conio.h>  
   
   
int step=0;  
   
   
void map()//游戏菜单函数。  
{   printf("▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");  
    printf("█   拼 图 游 戏          █\n");  
    printf("█      1.   3×3         █\n");  
    printf("█      2.   4×4         █\n");  
    printf("█      3.   5×5         █\n");  
    printf("█      4.   退出         █\n");  
    printf("▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");  
}  
   
   
void fun(int *a,int t,int m,int r)  
{  
    int i;  
    int g;  
   
   
    for(i=0;i<m;i++)  
    {  
        if(i%r==(r-1)&&(i+t)%r==0)//让数组不能跨行转换。  
            continue;  
        if(i%r==0&&(i+t)%r==(r-1))  
            continue;  
        if(a[i+t]==0 && (i+t)>=0 && (i+t)<m)      
        {  
            g=a[i];  
            a[i]=a[i+t];  
            a[i+t]=g;  
            step++;  
            return ;  
        }  
    }  
}  
   
   
   
   
void move(int *a,int m,int r)  
{//上下左右移动函数。  
    char ch;  
    int i,j;  
   
   
    while(ch=getch())  
    {  
        system("cls");  
   
   
        if(ch=='w')  
        {  
           i=-r;  
            fun(a,i,m,r);  
        }  
        else if(ch=='s')  
        {  
            i=r;  
            fun(a,i,m,r);  
        }  
        else if(ch=='a')  
        {  
            i=-1;  
            fun(a,i,m,r);  
        }  
        else if(ch=='d')  
        {  
            i=1;  
            fun(a,i,m,r);  
        }  
        else if(ch=='4')  
        {  
            printf("您已退出游戏,请下次再玩!\n");  
            exit(0);  
        }  
   
   
        for(i=0;i<m;i++)  
        {  
            if(a[i]==0)  
                printf("    ");  
            else 
                printf("%2d  ",a[i]);  
            if((i+1)%r==0)  
            putchar(10);  
        }  
        printf("共走:%d步!\n",step);  
    }  
}  
   
   
void map_x(int m,int r)  
{  
    int i=1,j,a[25],n;  
    srand(time(NULL));  
    printf("拼图游戏开始了:\n");  
    while(i<m)  
    {  
        n=1+rand()%(m-1);  
        for(j=1;j<i;j++)  
        {  
            if(n==a[j])  
                break;  
        }  
        if(j==i)  
        {  
            a[i]=n;  
            i++;  
        }  
    }  
    a[0]=0;  
    for(i=0;i<m;i++)  
    {  
        if(a[i]==0)  
            printf("    ");  
        else 
            printf("%2d  ",a[i]);  
        if((i+1)%r==0)  
            putchar(10);  
    }  
    printf("共走:%d步!\n",step);  
    move(a,m,r);  
}  
   
   
   
   
int main()  
{  
    int i,n;  
    char ch;  
    map();//显示菜单。  
    printf("请选择所玩游戏的级别:\n");  
    ch=getch();  
    while(ch!='1' && ch!='2' && ch!='3' &&ch!='4')  
    {  
        printf("输入有误,请重新输入:\n");  
        ch=getch();  
    }  
   
   
    switch(ch)  
    {  
        case '1':   
            map_x(9,3);  
            break;   
        case '2':  
            map_x(16,4);  
            break;  
        case '3':  
            map_x(25,5);  
            break;  
        case '4':  
            printf("您已退出游戏,请下次再玩!\n");  
            exit(0);  
            break;  
    }  
    return 0;  
}  


纯c语言写的拼图游戏

标签:c语言   游戏   

原文地址:http://blog.csdn.net/guoqianqian5812/article/details/44081681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!