想过七夕?->女朋友陪你玩游戏(C)(上)

简介: 三子棋七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩三子棋~

三子棋



七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩三子棋~


1.展示棋盘


这部分我折腾了很久,因为展示出来的效果是实现能通过更改ROW和COL的值来展示不同大小的棋盘


只能不断的调整–观察发现最后一行不打印横线,最后一列不打印竖杠

void Displayboard(char board[ROW][COL], int row, int col)
{
  int i, j,k;
  for (i = 0; i < row; i++)
  {
    for (j = 0; j < col; j++)
    {
      if(j<col-1)
      printf(" %c |", board[i][j]);
        if (j == col-1 )
      {
        printf(" %c \n", board[i][j]);
      }
    }
    for (j = 0;j<col; j++)
    {
      if (j <col-1 && i!=row-1)
      {
        printf("---|");
      }
    }
    if (i != row - 1)
    {
        printf("---");
          printf("\n");
    }
  }
}


效果如下:

3539ebef40914f90a9e5f30fd999dffd.png


通过更改ROW和COL的值来展示不同大小的棋盘:


三子棋:

f63cc01a747f4def98da9138708423dd.png


五子棋:

0f45fcd55bf44484bdba586701f311cf.png


七子棋:

66177531ca6d4cd78b3d8eacfd0336d7.png


2. 玩家落子


注意:每次落子完要重新打印一次棋盘


当输入坐标错误或者已经有棋子的时候要进行相应的提示

void PlayerMove(char board[ROW][COL], int row, int col)//玩家落子
{
  int x, y;
  while (1)
  {
    printf("请玩家落子>");
    printf("请输入棋子行列坐标:\n");
    scanf("%d%d", &x, &y);
    if (x >= 1 && x <= row && y >= 1 && y <= col)
    {
      if (board[x - 1][y - 1] == ' ')//数组的真实下标从0开始
      {
        board[x - 1][y - 1] = '*';
      }
      else
      {
        printf("坐标被占用,请重新输入");
      }
    }
    else
      printf("输入坐标非法,请重新输入\n");
    Displayboard(board, ROW, COL);
  }
}

decbfbab7b1149409f3a1eeb80899811.png


3.女朋友落子


注意:这里需要生成随机数,并且引用相应的头文件

void ComputerMove(char board[ROW][COL], int row, int col) 
{
  int x, y;
  printf("\n");
  printf("女朋友下棋:\n");
  while (1)
  {
    x = rand() % row;
    y = rand() % col;
    if (board[x][y] == ' ')
    {
      board[x][y] = '#';
      break;
    }
  }
  Displayboard(board, ROW, COL);  
}


生成随机数:

e093a2a9c68d43358a73f91c7bd92931.png


头文件:

236f167e35d54865bb586852172578b4.png


效果如下

24a66d761eb045cfb144b34a706af5ca.png


4.判断游戏输赢


结局共有三个:女朋友赢,你赢,平局


根据四种返回值来判段


你赢-- ‘*’

女朋友赢–’#’

平局–‘Q’

继续–‘C’

char isWin(char board[ROW][COL], int row, int col)
{
  //1.判断输赢
  int i;
  for (i = 0; i < row; i++)//判断行是否相等
  {
    if (board[i][0] == board[i][1] && board[i][0] == board[i][2] && board[i][0] != ' ')
    {
      return board[i][0];
    }
  }
  for (i = 0; i < row; i++)//判断列是否相等
  {
    if (board[0][i] == board[1][i] && board[0][i] == board[2][i] && board[0][i] != ' ')
    {
      return board[0][i];
    }
  }
  if (board[2][0] == board[1][1] && board[0][2] == board[2][0] && board[2][0]!=' ')//判断对角线
  {
    return board[2][0];
  }
  if (board[0][0] == board[1][1] && board[0][0] == board[2][2] && board[0][0] != ' ')
  {
    return board[0][0];
  }
  //2.判断平局
  if (isFull(board, row, col) == 1)
  {
    return 'Q';
  }
  else return 'C';
}


5.最终效果


平局:8a7c4838ab43410e8a63a1583c5b3da6.png


女朋友赢:


f8ae095890ae42bebb622c0f31007edd.png


玩家赢:


c5e6538fe9f1433ea6840a6812a40ef0.png


最终的所有的代码如下:


我的gitee–和女朋友玩的三子棋小游戏



相关文章
|
8天前
|
移动开发 前端开发 JavaScript
童年回忆——开心消消乐(内含源码inscode一键运行)
童年回忆——开心消消乐(内含源码inscode一键运行)
|
8天前
|
前端开发 JavaScript 程序员
程序员教你用代码制作圣诞树,正好圣诞节拿去送给女神给她个惊喜
使用HTML、CSS和JavaScript实现了一个圣诞树效果,包括一个闪烁的圣诞树和一个动态的光斑。代码包含一个&lt;div&gt;元素作为遮罩,一个&lt;canvas&gt;元素绘制星星动画,以及一个SVG元素绘制圣诞树。页面还包含一个提示用户先点赞再观看的提示。此效果适用于任何浏览器,推荐使用谷歌浏览器。提供了一段HTML代码,可以直接复制粘贴到文件中并以.html格式打开查看效果。
|
7月前
|
Python
星际争霸之小霸王之小蜜蜂(十二)--猫有九条命
星际争霸之小霸王之小蜜蜂(十二)--猫有九条命
|
11月前
|
前端开发
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
90 0
|
11月前
|
存储 前端开发 JavaScript
你小子!过年了,写了一个拼图小游戏来拼掘金兔年礼盒,来玩玩不?
你小子!过年了,写了一个拼图小游戏来拼掘金兔年礼盒,来玩玩不?
165 2
|
安全 程序员
学做游戏最重要的是学什么
解决问题的能力是一个人的最核心的技能,也是判断一个人游戏开发水平高低的决定性因素。你在做任何事情,尤其是刚接触一个新领域时,一定会遇到各种各样的问题,而其中大部分的问题你都从来没有遇到过。这个时候咋办呢? 最好最快的方式莫过于有一个有经验的老师可以带一带你,他可以指导一些方法和经验,回答你的一些疑问,告诉你哪里可能有“坑”......(小蚂蚁目前做的就是这些事情)。
76 0
想过七夕?->女朋友陪你玩游戏(C)(下)
七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩扫雷~
想过七夕?->女朋友陪你玩游戏(C)(下)
想过七夕?->女朋友陪你玩游戏(C)(中)
在一定数值范围内,游戏随机生成一个数字,玩家输入比随机数大的数字时,程序会提醒,数值大于目标数,反之亦然。通过不断试错,最终找出目标数字。此游戏可以重复玩。
想过七夕?->女朋友陪你玩游戏(C)(中)
|
Unix 程序员 Windows
雷军回顾20年前自己的“程序人生”,还用吴奇隆的歌词文艺了一把
虎嗅注:今天,雷军在他的公众号里发了一篇他20年前写的帖子,那个时候还是1996年,是通过电话线拨号连接到西点BBS上飙帖子玩的年代。那是一个互联网混沌初开的年代,那是一个BBS和Email几乎主宰了全部互联网的年代,那是一个青春的理想和热血沸腾的年代。我是一个程序员,一个软件工程师。到今天,我也依然是一个程序员,一个软件工程师。 雷军在文章中说,本文是20年前我对程序人生的一点看法。20年后的今天,重读之后,这依然是我对程序人生的态度。 文末还引用了吴奇隆的《祝你一路顺风》中的歌词那一天知道你要走,我们一句话都没有说。真是文艺青年啊。下面是雷军20年前写的文章,虎嗅未做删减。 程序人生
491 0
|
弹性计算 Cloud Native 算法
“我想要用我余生,换夜空繁星闪耀”
本文是7月28日《一个95后阿里郎的自学修养》文字稿,我们花了一个小时时间,从一阿里郎学生时代的成长经验,聊到了求职时期的tips,最后聊到了工作后的收获,希望与象牙塔里的你一起分享。
2075 0
“我想要用我余生,换夜空繁星闪耀”