重温c语言之,7天开整,就是随便的写写,第九天

种地  金牌会员 | 2024-11-11 08:28:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 923|帖子 923|积分 2769

这次照着网站上的内容,写了一个简单的小游戏,3字棋,其实也可以n字棋
附上代码,
这里是:game.h
  1. 1 #pragma once
  2. 2 #include<stdio.h>
  3. 3 #include<stdlib.h>
  4. 4 #include<time.h>
  5. 5
  6. 6 //游戏代码的声明(函数声明,符号定义)
  7. 7
  8. 8 #define Row 3
  9. 9 #define Col 3
  10. 10
  11. 11 //初始化棋盘
  12. 12 void InitBoard(char board[Row][Col], int Row_n, int Col_n);
  13. 13 //打印棋盘
  14. 14 void DisplayBoard(char board[Row][Col], int Row_n, int Col_n);
  15. 15 //玩家下棋
  16. 16 void PlayerMove(char board[Row][Col], int Row_n, int Col_n);
  17. 17 //电脑下棋,随机生成坐标
  18. 18 void ComputerMove(char board[Row][Col], int Row_n, int  Col_n);
  19. 19
  20. 20 //玩家赢:Congratulation!---'*'
  21. 21 //电脑赢:Lost!-----"#'
  22. 22 //平局:The game ends in a tie.---'Q'
  23. 23 //继续:Go on!-----'C'
  24. 24 char IsWin(char board[Row][Col], int Row_n, int  Col_n);
复制代码
之后是:game.c
[code]  1 #define _CRT_SECURE_NO_WARNINGS  2 #include "game.h"  3   4 //三子棋  5 //代码的实现  6   7   8 void InitBoard(char board[Row][Col], int Row_n, int Col_n) {  9     int i = 0; 10     int j = 0; 11     for (i = 0; i < Row_n; i++) 12     { 13         for (j = 0; j < Col_n; j++) { 14             board[j] = ' '; 15         } 16     } 17 } 18  19 //第一版本 20 //void DisplayBoard(char board[Row][Col], int Row_n, int Col_n) { 21 //    int i = 0; 22 //    for (i = 0; i < Row_n; i++) 23 //    { 24 //        //打印数据 25 //        printf(" %c | %c | %c \n", board[0], board[1], board[2]); 26 //        //打印分隔符 27 //        if (i < Row_n - 1) { 28 //            printf("---|---|---\n"); 29 //        } 30 //    } 31 //} 32  33 //第二版本,为了更好的扩展地图 34 void DisplayBoard(char board[Row][Col], int Row_n, int Col_n) { 35     int i = 0, j = 0, z = 0; 36     for (i = 0; i < Row_n; i++) 37     { 38         for (j = 0; j < Col_n; j++) 39         { 40             //打印数据 41             printf(" %c ", board[j]); 42             //打印分隔符 43             if (j < Col_n - 1) 44             { 45                 printf("|"); 46             } 47         } 48         printf("\n"); 49         if (i < Row_n - 1) { 50             for (z = 0; z < Col_n; z++) 51             { 52                 printf("---"); 53                 if (z < Row_n - 1) { 54                     printf("|"); 55                 } 56             } 57             printf("\n"); 58         } 59  60     } 61 } 62  63 void PlayerMove(char board[Row][Col], int Row_n, int Col_n) { 64     int x = 0, y = 0; 65     printf("玩家下棋:\n"); 66     while (1) { 67         printf("请输入坐标(x:%d-%d之间,y:%d-%d之间):>", 1, Row_n, 1, Col_n); 68         if (scanf("%d %d", &x, &y) == 2) { // 检查是否乐成读取两个整数 69             if (x >= 1 && x = 1 && y
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表