C语言实现拼图游戏源码

本文实例为大家分享了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;
}

//对于确定的循环一般用for;而不确定的循环则用while.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现拼图游戏

    本文实例为大家分享了C语言实现拼图游戏的具体代码,供大家参考,具体内容如下 一.完成拼图所要实现的功能 1.实现图形界面 一维数组,二维数组,图形库里面的贴图 2.绘制一个开始界面的菜单 图形库(画矩形,填充颜色),文字输出,鼠标操作 3.加载资源 切割技术,用到随机函数,随机产生一维数组下标,然后赋值给二维数组进行初始化. 4.贴图 我这里3行3列的.遍历二维数组进行 贴图. 5.游戏过程 主要是鼠标操作,遇到空白的一块,左右上下都可以交换. 二.效果展示 三.代码实现 /**********

  • C语言实现拼图游戏源码

    本文实例为大家分享了C语言实现拼图游戏的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> int step=0; void map()//游戏菜单函数. { printf("▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n"); printf("█ 拼 图 游 戏 █\n"); printf("█

  • C语言对对碰游戏源码分享

    本文实例为大家分享了C语言对对碰游戏的具体代码,供大家参考,具体内容如下 //////////////////////////////////////// //画素材的x和y都是反的,因为x表示行,但是画出来x表示列,y同 //////////////////////////////////////// #include <graphics.h> #include <fstream> #include <strstream> #include <iomanip&g

  • C语言自定义军旗游戏源码

    本文实例为大家分享了C语言自定义军旗游戏的具体代码,供大家参考,具体内容如下 #include <graphics.h> #include <time.h> #define CHESIZE 40 // 棋盘尺寸,不能随意调整 #define RESETX 170 #define RESETY 350 // 重置原点 typedef enum // 要用到的棋子ID { si, jun, shi, lv, tuan, ying, lian, pai, ban, gong, fei,

  • jQuery网页版打砖块小游戏源码分享

    这是一款基于jQuery实现网页版打砖块小游戏源码,满满的童年回忆. 为大家分享的jQuery实现网页版打砖块小游戏源码如下 效果演示 源码下载 <!DOCTYPE html> <html lang="en" > <head> <meta charset="gb2312" /> <title>jQuery网页版打砖块小游戏源码</title> <link href="css/ma

  • Java编程经典小游戏设计-打砖块小游戏源码

    [程序中使用的数据结构和符号说明] HitBrick类 GreenBallThread控制小球路线 xUp,yUp,bouncing定义变量存储16位数值形式 x,y小球坐标 xDx,yDy坐标增量 MAX_X,MAX_Y坐标最大值 renew初始化 label标签 Rx,Ry横板坐标 Brick[]砖块 ball小球 HitBrick()定义小球横板及砖块位置坐标 keyPressd(keyEent)定义小球启动键(按空格键启动) keyReleased(keyEvent)接收键盘事件侦听器接

  • C语言银行储蓄系统源码

    本文为大家分享了C语言银行储蓄系统源码,实现银行的各项功能,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void openaccount();//开户 void save();//存款 void withdraw();//取款 void showAccount();//查询 void transferAccounts();

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • JavaScript实现一个带AI的井字棋游戏源码

    最近有一门课结束了,需要做一个井字棋的游戏,我用JavaScript写了一个.首先界面应该问题不大,用html稍微写一下就可以.主要是人机对弈时的ai算法,如何使电脑方聪明起来,是值得思考一下的.开始游戏后,由玩家先行.那么站在计算机的角度,可以对多种情况进行分析,并按照重要程度赋予权值. 情况如下: 1.同一排(行.列.对角线)有且只有两个棋子,并且都是自己的,只要再进一步就能获胜,那么剩下的那个位置权值最高,优先级最大.赋予一级权值. 2.同一排(行.列.对角线)有且只有两个棋子,并且都是对

  • linux实现猜数字小游戏源码

    一个简单的linux猜数字小游戏源码 游戏规则: 猜数字游戏通常由两个人玩,一方出数字,一方猜.出数字的人要想好一个没有重复数字的 4 个数,不能让猜的人知道.猜的人就可以开始猜.每猜一个数字,出数者就要根据这个数字给出几 A 几 B,其中 A 前面的数字表示位置正确的数的个数,而 B 前的数字表示数字正确而位置不对的数的个数.如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个 5 的位置对了,记为 1A,而 3 和 4 这两个数字对了,而位置没对,因此记为 2B,合起来就

随机推荐