打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
三子棋游戏
首先知识能力有限,所以此次游戏设计功能也很简单,只实现了基本的两个选择,一个游戏,一个退出,且游戏内部只有一个谁先走的判定逻辑,但后期也有改进可能,比如增加棋盘大小,用户自由选择谁先走,更有添加游戏声音,界面等,让游戏更加完美!
三子棋游戏
棋盘三行三列,猜硬币即猜数字决定谁先走,用户使用‘X’,电脑使用‘O’,此游戏主要锻炼对二位数组的掌握,还有一些基础游戏逻辑工程的培养。
头文件# ifndef __GAME_H__#define __GAME_H__#include<stdio.h>#include<time.h>#include<windows.h>#include<string.h>#pragma warning(disable:4996)#define Row 3#define Col 3#define P_Color 'X'#define C_Color 'O'#define Init ' 'void InitBoard(char board[][Col],int row, int col);void ShowBoard(char board[][Col],int row, int col);void ComputerMove(char board[][Col], int row, int col);char Judge(char board[][Col], int row, int col);void Game();int Guess();#endif 语言 方法
5699 1B4rQe74b7
KAD64暴利行业
7162 2008.07.27 00-23-30
主函数逻辑#include "game.h"void Menu(){ /*菜单*/ printf("########################################\n"); printf("###### 欢迎来到三子棋游戏 #########\n"); printf("### 1.play ########## 2.exit #######\n"); printf("########################################\n"); printf("请选择》》》》》\n");}int main(){ int quit = 0; while (!quit){ Menu(); int select = 0; scanf("%d", &select); switch (select){ /*选择 1;游戏 2:退出*/ case 1: Game(); break; case 2: quit = 1; break; default: printf("您的选择有误,请重新选择\n"); break; } } printf("Bye Bye!欢迎再来挑战\n"); system("pause");} 子函数模块#include "game.h"int Guess(){ int a = 0; a = rand() % 2; /*生成随机0 ,1*/ int num = 0; printf("硬币已抛,请猜测《0:反面 1:正面》\n"); scanf("%d", &num); if (a == num){ printf("你猜对了,请先下\n"); return 1; /*返回1,作为人先走的判定条件*/ } else{ printf("你猜错了,电脑先走\n"); return 0; /*返回1,作为人先走的判定条件*/ }}void InitBoard(char board[][Col], int row, int col){ /*初始化棋盘为空格*/ int i = 0; for (; i < row; i++){ int j = 0; for (; j < col; j++){ board[i][j] = Init; } }}void ShowBoard(char board[][Col], int row, int col){ /*打印棋盘*/ printf(" | 1 | 2 | 3 |\n"); printf("---------------\n"); int i = 1; for (; i <= row; i++){ printf("%d |", i); int j = 0; for (; j <col; j++){ printf(" %c |", board[i - 1][j]); } printf("\n"); printf("---------------\n\n"); }}void ComputerMove(char board[][Col], int row, int col){ while (1){ Sleep(1000); int x = rand() % row; /*随机生成xy作为电脑的棋子坐标*/ int y = rand() % col; if (board[x][y] == Init){ /*如果位置为空,便确定此位置为电脑棋子位*/ board[x][y] = C_Color; break; } }}char Judge(char board[][Col], int row, int col){ int i = 0; for (; i < row; i++){ if (board[i][0] != ' '&&board[i][0] == board[i][1] &&board[i][1] == board[i][2]){ return board[i][0]; /*判断行是否相等,并返回相等的字符,作为谁输赢的判定*/ } } for (i = 0; i < col; i++){ if (board[0][i] != ' '&&board[0][i] == board[1][i] && board[1][i] == board[2][i]){ return board[0][i]; /*判断列是否相等,并返回相等的字符,作为谁输赢的判定*/ } } if (board[1][1] != ' '&&board[0][0] == board[1][1]&&board[1][1] == board[2][2]){ return board[1][1]; /*判断左上右下是否相等,并返回相等的字符,作为谁输赢的判定*/ } if (board[1][1] != ' '&&board[0][2] == board[1][1]&&board[1][1] == board[2][0]){ return board[1][1]; /*判断左下右上是否相等,并返回相等的字符,作为谁输赢的判定*/ } for (i=0; i < row; i++){ int j = 0; for (; j < col; j++){ if (board[i][j] == Init){ /*如果棋盘还有空,返回N继续输入*/ return 'N'; } } } return 'F'; /*返回F,即棋盘满了*/}void Game(){ srand((unsigned long)time(NULL)); /*随机数种子*/ char board[Row][Col]; /*定义棋盘*/ InitBoard(board, Row, Col); /*初始化数组*/ char result = 0; int who = Guess(); int x = 0; int y = 0; do{ system("cls"); ShowBoard(board, Row, Col); switch (who){ case 1: printf("请落子\n"); scanf("%d %d", &x, &y); if (x <= 0 || x > 3 || y <= 0 || y > 3){ printf("你的落子位置错误,请重新选择\n"); continue; } if (board[x - 1][y - 1] != ' '){ printf("该位置已被占,请重新选择\n"); continue; } board[x - 1][y - 1] = P_Color; who = 0; printf("你已走完,电脑正在思考......\n"); break; case 0:ComputerMove(board, Row, Col); printf("电脑已走完,请思考\n"); who = 1; break; default: break; } result = Judge(board, Row, Col); if (result != 'N'){ break; } } while (1); if (result == P_Color){ printf("恭喜你,你赢了吆\n"); } else if(result == C_Color){ printf("很抱歉,你输了,再接再厉!\n"); }else { printf("很不错!平局\n");}printf("玩的不错,要不要再来一局!\n");}
游戏菜单
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
扫雷(超详解 全部码源)
【新年第一个程序】三子棋小游戏(C语言数组实现)
C程序上机考试设计题(附源代码)-ッ志远ヴ自留屋
C语言开发简易版扫雷小游戏
C语言算法
用c语言写一个简单的三子棋(井字棋)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服