C语言小游戏之猜数字,三子棋游戏
来源:互联网 发布:知乎山姆休斯顿大学 编辑:程序博客网 时间:2024/05/17 22:56
一.猜数字游戏(折半查找的思想)控制游戏猜测的次数,每次游戏不超过10次
情况一.在特定要求内猜出正确的结果
情况二.在要求内未猜测出正确结果
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){int i=1;int input=0;int count=0; //控制游戏执行的次数int random=0;while(i){printf("********欢迎来到猜数字游戏*********\n");printf("请输入您的选择:1.开始游戏0.退出游戏\n");scanf("%d",&i);switch(i){case 1:srand((unsigned int)time(NULL));random=rand()%101;count=0;while(count < 10){printf("请输入一个您猜测的数字在1-100之间:\n");scanf("%d",&input);if(input == random){printf("恭喜您,猜对了\n");break;}else if(input > random){count++;printf("猜大了\n");}else{count++;printf("猜小了\n");}}if(count == 10){printf("您的机会已用完,游戏结束\n");}break;case 0:break;default:printf("您的选择错误\n");break;}}system("pause");return 0;}
游戏二.三子棋游戏,类似实现见如下链接:
http://blog.csdn.net/qq_34328833/article/details/51025652
不同的是此次游戏实现并未使用sz来判断棋盘是否为空(sz是开始统计的棋盘空位置个数,不管玩家还是电脑只要有一方占了棋盘的位置,sz就减1,直到sz为零就说明平局),此次使用了一个判断棋盘是否为空的函数(此时通过检测棋盘上是否存在空位来判断游戏是否平局),而且此次实现安全性较强,灵活性也高。
情况一.玩家赢
情况二.电脑赢
情况三.平局
game.h
#define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__ //防止头文件被重复定义#define __GAME_H__#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 3#define COIUMN 3void menu();void Init_board(char arr[ROW][COIUMN]);void Print_board(char arr[ROW][COIUMN]);void Player(char arr[ROW][COIUMN]);int Judgefull(char arr[ROW][COIUMN]);void Computer(char arr[ROW][COIUMN]);char Winner(char arr[ROW][COIUMN]);#endif //__GAME_H__
game.c
#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void menu(){printf("*************欢迎来到三子棋游戏*************\n");printf("*****请输入您的选择1.进入游戏0.退出游戏*****\n");}void Init_board(char arr[ROW][COIUMN]){int i=0;int j=0;for(i=0;i<ROW;i++){for(j=0;j<COIUMN;j++){arr[i][j]=' ';}}}void Print_board(char arr[ROW][COIUMN]){int i=0;for(i=0;i<ROW;i++){printf(" %c | %c | %c \n",arr[i][0],arr[i][1],arr[i][2]);if(i != ROW-1){printf("---|---|---\n");}}}void Player(char arr[ROW][COIUMN]){int x=0;int y=0;while(1){printf("请输入您要走的坐标>\n");scanf("%d%d",&x,&y);x--;y--;if(arr[x][y] == ' '){arr[x][y]='@';break;}else{printf("您的输入错误,请重新输入\n");continue;}}}int Judgefull(char arr[ROW][COIUMN]){int i=0;int j=0;for(i=0;i<ROW;i++){for(j=0;j<COIUMN;j++){if(arr[i][j] == ' ')return 0;}}return -1;}void Computer(char arr[ROW][COIUMN]){int x=0;int y=0;srand((unsigned int)time(NULL));while(1){x=rand()%ROW;y=rand()%COIUMN;if(arr[x][y] == ' '){arr[x][y]='#';break;}else{if(Judgefull(arr) == 0)continue; //棋盘未满break; //棋盘已满}}}char Winner(char arr[ROW][COIUMN]){int i=0;for(i=0;i<ROW;i++){if(arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != ' ')return arr[i][0];}for(i=0;i<COIUMN;i++){if(arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != ' ')return arr[0][i];}if(arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[0][0] != ' '){return arr[0][0];}if(arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[0][2] != ' '){return arr[0][2];}if(Judgefull(arr) == -1)return -1; //棋盘已满return 0; //未满未赢}
test.c
#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void text(){char ret=0;int input=1;char arr[ROW][COIUMN]={0};while(input){menu();scanf("%d",&input);switch(input){case 1:Init_board(arr);Print_board(arr);do{Player(arr);Computer(arr);Print_board(arr);ret=Winner(arr);}while(ret == 0);if(ret == '@'){printf("恭喜您赢得冠军\n");}else if(ret == '#'){printf("不好意思电脑赢了\n");}if(ret == -1){printf("平局\n");}break;case 0:break;default:printf("您的输入错误,请重新输入\n");break;}}}int main(){text();system("pause");return 0;}
这两个小游戏都是可重复玩的,希望玩家玩的开心
0 1
- C语言小游戏之猜数字,三子棋游戏
- c语言之猜数字的小游戏
- c语言猜数字小游戏
- C语言猜数字小游戏
- 【C语言】猜数字小游戏
- C语言小游戏:猜数字
- c语言之猜数字游戏
- 猜数字小游戏[C语言][自制]
- 简单的C语言猜数字小游戏
- c语言:编写猜数字小游戏。
- C语言编写猜数字小游戏
- 用c语言编写猜数字小游戏
- C语言- 猜测数字小游戏
- 猜数字游戏(c语言)
- 【C语言】 猜数字游戏
- C语言 猜数字游戏
- 【C语言】猜数字游戏
- C语言 猜数字游戏
- 安卓源码在线查看网站
- Android之JobScheduler运行机制源码分析
- 文章标题
- android中string.xml中%1$s、%1$d等的用法
- 自动抢红包,自动安装原理之AccessibilityService
- C语言小游戏之猜数字,三子棋游戏
- 图片懒加载
- 【杭电】[1251]统计难题
- QT 操作SQLITE3
- http页面解析之httpacp开源软件
- RequireJs小记
- 编程工具介绍及常见故障诊断
- 最长链(递归)
- oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解