C语言实现小游戏(三)

#include<stdio.h>
#include<stdlib.h>
void init(char arr[3][3],int i,int j )
{
 for (i = 0; i < 3; i++)
 {
  for (j = 0; j < 3; j++)
  {
   arr[i][j] = ‘ ‘;
  }
 }

}
int prit(char arr[3][3], int i, int j)
{
 for (i = 0; i < 3; i++)
 {
  printf(" %c | %c | %c ", arr[i][0],arr[i][1],arr[i][2]);
  if (i != 2)
   printf("\n---|---|---\n");
  
 }
 return 0;
}
void play(char arr[3][3], int x, int y)
{
 int i=0;
 int j = 0;
 arr[x][y] = ‘X‘;
 for (i = 0; i < 3; i++)
 {
  printf(" %c | %c | %c ", arr[i][0], arr[i][1], arr[i][2]);
  if (i != 2)
   printf("\n---|---|---\n");

}
}
void computer(char arr[3][3])
{
 int i = 0;
 int j = 0;
 int flag = 0;
 for (i = 0; i < 3; i++)
 {   if (flag == 1)
   break;
  for (j = 0; j < 3; j++)
  {
   if ((arr[i][j] != ‘X‘) && (arr[i][j] != ‘O‘))
   {
    arr[i][j] = ‘O‘;
    flag = 1;
    break;
   }
  }
  
 }
 
 for (i = 0; i < 3; i++)
 {
  printf(" %c | %c | %c ", arr[i][0], arr[i][1], arr[i][2]);
  if (i != 2)
   printf("\n---|---|---\n");

}
}
int check(char arr[3][3], int i, int j)
{
 
 int k = 0;//判断对角线X
 int n = 0;//判断对角线O
 int a = 0;//判断每一行
 int b = 0;//
 for (i = 0; i < 3; i++)
 {  
  if (arr[i][i] == ‘X‘)
    k++;
  else if (arr[i][i] == ‘O‘)
    n++;
 }
 if (k == 3)
 {
  return 1;
 }
 if (n == 3)
 {
  return 0;
 }
 for (i = 0; i < 3; i++)
 {
  if (((arr[i][0] == ‘X‘) && (arr[i][1] == ‘X‘) && (arr[i][2] == ‘X‘))||
   ((arr[0][i] == ‘X‘) && (arr[1][i] == ‘X‘) && (arr[2][i] == ‘X‘)) ||
   ((arr[0][2] == ‘X‘) && (arr[1][1] == ‘X‘) && (arr[2][0] == ‘X‘)))
  {
   return 1;
   break;
  }
  if (((arr[i][0] == ‘O‘) && (arr[i][1] == ‘O‘) && (arr[i][2] == ‘O‘)) ||
   ((arr[0][i] == ‘O‘) && (arr[1][i] == ‘O‘) && (arr[2][i] == ‘O‘))||
   ((arr[0][2] == ‘O‘) && (arr[1][1] == ‘O‘) && (arr[2][0] == ‘O‘)))
  {
   return 0;
   break;
  }
  
 }

}

void manu()
{
 printf("****************************************\n");
 printf("**************欢迎进入游戏**************\n");
 printf("*************1.开始游戏*****************\n");
 printf("*************0.退出游戏*****************\n");
 printf("****************************************\n");

}
void order()
{
 printf("**********请选择下棋先后次序************\n");
 printf("*************1.玩家先下*****************\n");
 printf("*************0.本机先下*****************\n");
}
int main()
{
 char arr[3][3];
 int i = 0;
 int j = 0;
 int x = 0;
 int y = 0;
 int input = 1;
 int ret = 0;
 int c = 0;
 while (input)
 {
  manu();
  printf("请选择>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
  {printf("开始游戏\n");
   order();
   printf("请选择>");
   scanf("%d", &c);
   switch (c)
   {
   case 1:
   {init(&arr[0], i, j);
   prit(&arr[0], i, j);
   while (1)
   {
    printf("\n请输入要下棋的位置坐标:\n");
    scanf("%d%d", &x, &y);
          printf("玩家下棋为:\n");
    play(&arr[0], x, y);
    ret = check(&arr[0], i, j);
    if (ret == 1)
    {
     printf("\n恭喜你赢了!\n");
     break;
    }
 lop:  printf("\n本机下棋为:\n");
    computer(&arr[0]);
    ret = check(&arr[0], i, j);
    if (ret == 0)
    {
     printf("\n很遗憾你输了!\n");
     break;
    }
   }
   break;
   }
   case 0:
   {init(&arr[0], i, j);
   prit(&arr[0], i, j);
       goto lop;
   break; }
   }
   default:
   {      printf("退出游戏\n");
          system("pause");
          exit(0);
          break;
   }
   }

}
  system("pause");
  return 0;
 }
}

时间: 2024-10-08 09:57:50

C语言实现小游戏(三)的相关文章

C语言俄罗斯方块小游戏练习

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

【c语言】 &#160; &#160; &#160; 小游戏——猜字游戏

大家一起来玩一个小游戏吧! srand((unsigned int)time(NULL));//设置随时间变化的随机数 ret=rand()%100; //产生0~100随机数 添加 #include<time.h> 改变100的值,使其产生0~其他的随机数. 自定义游戏菜单menu. #include<stdio.h> #include<stdlib.h> #include<time.h> void  fun1(int ret,int count)//游戏

C语言实现小游戏

#include<stdio.h>void menu(){ printf("***************************\n"); printf("***********1>start*********\n"); printf("***********2>exit *********\n"); printf("***************************\n"); }int main

c语言实现小游戏_三子棋

游戏规则:玩家走一步,电脑走一步.当然电脑怎么走的代码也是你写的. #include <stdio.h> #include <stdlib.h> /*******************************************************************************/ //函数功能:初始化棋盘 /**************************************************************************

C语言实现小游戏(二)——剪刀石头布

#include<stdio.h>void  menu(){ printf("*************欢迎进入石头剪刀布游戏************\n"); printf("*******************1.start>********************\n"); printf("*******************0.exit >********************\n"); printf(&qu

易语言开发小游戏

1.程序部分.程序集 窗口程序集1.程序集变量 数组, 整数型, , "3".程序集变量 冠军, 整数型.程序集变量 终点, 整数型.程序集变量 到终点个数, 整数型 .子程序 显示物体 动画物体.缩放比 = 212动画物体.类型值 = 0数组 [1] = 动画框.创建物体 (动画物体, 10, 30, 真, “1”)动画框.置层次 (数组 [1], 1)动画框.置图片 (数组 [1], #兔子一号, ) 动画物体.缩放比 = 500数组 [2] = 动画框.创建物体 (动画物体, 1

.NET手撸2048小游戏

.NET手撸2048小游戏 2048是一款益智小游戏,得益于其规则简单,又和2的倍数有关,因此广为人知,特别是广受程序员的喜爱. 本文将再次使用我自制的"准游戏引擎"FlysEngine,从空白窗口开始,演示如何"手撸"2048小游戏,并在编码过程中感受C#的魅力和.NET编程的快乐. 说明:FlysEngine是封装于Direct2D,重复本文示例,只需在.NET Core 3.0下安装NuGet包FlysEngine.Desktop即可. 并不一定非要做一层封装

C语言小游戏设计报告

课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计>课程学习的内容,掌握编写程序的基本方法,强化对其的动手能力,可以独自完成程序的编写. 二.设计内容和要求 设计内容 编写贪吃蛇的小游戏,使其可以成功运行并且操作玩耍. 设计要求 1)源程序要有适当的注释,使程序便于阅读. 2)要有程序运行结果作为依据 三.程序流程 1.编写地图 运用函数,数组编写地图 2.相同的方法把蛇添加进

C语言小游戏开发之贪吃蛇

寒假期间一时兴起,想着用C语言能开发出贪吃蛇小游戏应该是一件不错的事!但C语言学习过程中从来都是字符界面的编程,如何能有"图形化"的效果呢?于是小编就在度娘, 谷歌等网站搜索了一番,发现了一些有用的Win32 API函数,于是小编的心一下子激动了起来,有了这些API函数也许能够实现哟!开始吧! 编程之前小编的构思是这样的,贪吃蛇小游戏应该实现的有: 1.贪吃蛇在不进行控制的条件下应该能够自主前进. 2.玩家可以通过WASD键来控制贪吃蛇的前进方向. 3.运行过程中若贪吃蛇撞击到墙壁或自