C语言学习 / 简易21点

这篇博客介绍了一个使用C语言编写的21点游戏。游戏规则包括玩家和电脑各抽取2张牌,玩家可视牌,电脑有一张牌隐藏。玩家根据点数决定是否继续要牌,达到21点或超过21点会决定胜负。博客详细阐述了游戏的各个阶段,如欢迎界面的打印、牌池与手牌显示、玩家和电脑的回合逻辑、筹码设置,并提供了相应的代码实现和效果展示。
摘要由CSDN通过智能技术生成

游戏规则:玩家电脑各发2张牌,玩家两张牌均为明牌,电脑一明一暗;玩家根据点数大小选择是否继续要牌,当玩家点数为21点时玩家直接获胜,超过21点电脑获胜;当玩家选择不要牌,开始电脑回合,电脑点数大于21点玩家获胜,电脑点数大于等于玩家,电脑获胜。

    目录

1、打印欢迎界面

2、打印牌池和初始手牌 

3、玩家回合 

4、电脑回合 

5、设置筹码 

6、代码总览 


1、打印欢迎界面

int main()
{
	playgame();
	return 0;
}
void playgame()
{
	int input = 0;
	do
	{
		welcome();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游戏\n");
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);
}
void welcome()
{
	printf("******************************\n");
	printf("**********  21点 *************\n");
	printf("***  1.play        0.exit  ***\n");
	printf("******************************\n");
}

2、打印牌池和初始手牌 

(1)添加game()函数

void playgame()
{
	int input = 0;
	do
	{
		...
        ...
		{
		case 1:
			printf("开始游戏\n");
            game();
			break;
		...
        ...
		}
	} while (input);
}
			

 (2)创建game.h 和 game.c 用于游戏主程序

//text.c

#include "game.h"

void game()
{
	int board[ROW][COL] = { 0 };
	int PlayerCard[13] = { 0 };
	int ComputerCard[13] = { 0 };
	initial(board, ROW, COL, PlayerCard, ComputerCard);
	show(board, ROW, COL);
	Computer(board, ROW, COL, ComputerCard);
	Player(board, ROW, COL, PlayerCard);
}

 //game.h

#define ROW 4
#define COL 13
#include<stdio.h>
#include<time.h>
#include<Windows.h>

void initial(int board[ROW][COL], int row, int col, int PlayerCard[],int ComputerCard[]);
void show(int board[ROW][COL], int row, int col);
void Computer(int board[ROW][COL], int row, int col,int ComputerCard[]);
void Player(int board[ROW][COL], int row, int col, int PlayerCard[]);

//game.c

#include"game.h"

void initial(int board[ROW][COL], int row, int col, int PlayerCard[], int ComputerCard[])
{
	int i = 0;
	int j = 0;
	for (i = 0;i < row;i++)
	{
		for (j = 0;j < col;j++)
		{
			if (j < 9)
				board[i][j] = j + 1;
			else
				board[i][j] = 10;
		}
	}
	for (i = 0;i < 13;i++)
	{
		PlayerCard[i] = 0;
		ComputerCard[i] = 0;
	}
}

void show(int board[ROW][COL], int row, int col)
{
	int i = 0;
	int j = 0;
	printf("牌池:\n");
	for (i = 0;i < row;i++)
	{
		for (j = 0;j < col;j++)
		{
			printf("%d ", board[i][j]);
		}
		printf("\n");
	}
}

int give(int board[ROW][COL], int row, int col)
{
	int card = 0;
	while (1)
	{
		int i =
  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值