前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >C语言游戏4:赌博机掷骰子

C语言游戏4:赌博机掷骰子

作者头像
里克贝斯
发布2021-05-21 16:40:53
发布2021-05-21 16:40:53
9750
举报
文章被收录于专栏:图灵技术域图灵技术域

一个C语言写的小游戏——赌博机,适合学习C语言的人学习借鉴。 (A C language to write a small game- gambling machines, suitable for learning C language people learn.)

http://www.pudn.com/Download/item/id/2568776.html

下面介绍赌博规则

庄家(及赌场老板)和玩家(及玩家)各有1000元宝作为提示资金

闲家下注的方式有三种:

(1) 买大     (2)买小    (3)买豹子

下面逐一介绍这三种方式的不同:

买大: 如果闲家所掷的三枚骰子的点数之和大于11,则闲家赢,否则庄家赢

买小:如果闲家所掷的三枚骰子的点数之和小于11,则闲家赢,否则庄家赢

买豹子:如果闲家所掷出的三枚骰子点数相等,则闲家赢,否则庄家赢

买大和买小的赔率都为2,即输家一下注元宝的两倍赔给赢家,买豹子的赔率是10

闲家和下注的元宝数必须在10到100元宝之间

闲家可随时按q键结束赌博,否则继续进行,直到一方的元宝输完为止

游戏规则介绍完毕

祝你玩得愉快

代码:

C

代码语言:txt
复制
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<conio.h>
 
int a,b,c,bet,betmoney;
int playermoney=1000,dearmoney=1000;
void showtoscreen()
{
	printf("下面介绍赌博规则:\n");
	printf("*************************************************************\n");
    printf("庄家(及赌场老板)和玩家(及玩家)各有1000元宝作为提示资金\n");
	printf("闲家下注的方式有三种:\n");
	printf("(1) 买大     (2)买小    (3)买豹子\n");
	printf("下面逐一介绍这三种方式的不同:\n\n");
	printf("买大: 如果闲家所掷的三枚骰子的点数之和大于11,则闲家赢,否则庄家赢\n");
	printf("买小:如果闲家所掷的三枚骰子的点数之和小于11,则闲家赢,否则庄家赢\n");
	printf("买豹子:如果闲家所掷出的三枚骰子点数相等,则闲家赢,否则庄家赢\n");
	printf("买大和买小的赔率都为2,即输家一下注元宝的两倍赔给赢家,买豹子的赔率是10\n");
	printf("闲家和下注的元宝数必须在10到100元宝之间\n");
	printf("闲家可随时按q键结束赌博,否则继续进行,直到一方的元宝输完为止\n");
	printf("游戏规则介绍完毕\n");
	printf("祝你玩得愉快\n");
}
int Getbet()
{
	int bettype;
	printf("\n请选择下注方式");
	printf("1.买大  2.买小  3.买豹子\n");
	printf("请下注:");
    scanf("%d",&bettype);
	if((bettype==1)||(bettype==2)||(bettype==3))
	{
		return bettype;
	}
	else
	{
		return 1;
	}
}
 
 
int getAmount()
{
	int betmoney;
	printf("你要压多少元宝,最少10个,最多100个.");
    scanf("%d",&betmoney);
	if(betmoney<10)
	{
		return 10;
	}
	if(betmoney>100)
	{
		return 100;
	}
	return betmoney;
}
 
void Throw()
{
	printf("欢迎体验赌博机,按键盘任意键掷出骰子\n");
	getch();
	srand(time(0));
	while(!kbhit())
	{
       a=rand()%6+1;
	   b=rand()%6+1;
       system("cls");
	   c=rand()%6+1;
	   printf("骰子在转动:..................按键盘上的任意键来终止转动\n");
	   printf("第一粒骰子:%d\n第二粒骰子:%d\n第三例骰子:%d\n",a,b,c);
 
	}
    getchar();
 
}
 
int judge(int a,int b,int c)
{
	if(a==b&&a==c)
	{
		return 3;
	}
	if(a+b+c>11)
	{
		return 1;
	}
	if(a+b+c<11)
	{
		return 2;
	}
	else
	{
		return 0;
	}
}
 
void moneycale()
{
	if(judge(a,b,c)==3)
	{
        betmoney=betmoney*10;
		if(bet==3)
		{
          playermoney+=betmoney;
		  dearmoney-=betmoney;
		  printf("豹子,10赔率,玩家赢了%d,玩家还有%d元宝,庄家还剩%d元宝\n",betmoney,playermoney,dearmoney);
		}
		else
		{
           playermoney-=betmoney;
		    dearmoney+=betmoney;
			printf("豹子,10赔率,玩家输了%d,玩家还剩%d元宝,庄家还有%d元宝\n",betmoney,playermoney,dearmoney);
		}
	}
	else if(judge(a,b,c)==2)
	{
       betmoney=betmoney*2;
		if(bet==2)
		{
          playermoney+=betmoney;
		  dearmoney-=betmoney;
		  printf("小,2赔率,玩家赢了%d,玩家还有%d元宝,庄家还剩%d元宝\n",betmoney,playermoney,dearmoney);
		}
		else
		{
           playermoney-=betmoney;
		    dearmoney+=betmoney;
			printf("小,2赔率,玩家输了%d,玩家还剩%d元宝,庄家还有%d元宝\n",betmoney,playermoney,dearmoney);
		}
	}
	else if(judge(a,b,c)==1)
	{
        betmoney=betmoney*2;
		if(bet==1)
		{
          playermoney+=betmoney;
		  dearmoney-=betmoney;
		  printf("大,2赔率,玩家赢了%d,玩家还有%d元宝,庄家还剩%d元宝\n",betmoney,playermoney,dearmoney);
		}
		else
		{
           playermoney-=betmoney;
		    dearmoney+=betmoney;
			printf("大,2赔率,玩家输了%d,玩家还剩%d元宝,庄家还有%d元宝\n",betmoney,playermoney,dearmoney);
		}
	}
	else
	{
		printf("平局,玩家还有%d,庄家还有%d\n",playermoney,dearmoney);
	}
}
 
int  checkmoney(int pm,int dm)
{
	if(pm<=0)
	{
		if(pm==0)
		{
			printf("你输光了所有的元宝,被赶出赌场\n");
		}
		else
		{
			printf("你欠赌场老板%d元宝\n",abs(pm));
		}
		return 0;
	}
	if(dm<=0)
	{
		if(dm==0)
		{
			printf("老板输光了所有的元宝,\n");
		}
		else
		{
			printf("老板欠赌场老板%d元宝\n",abs(dm));
		}
		return 0;
	}
	return 1;
}
 
 
int main()
{
	int Chekmoney;
	char ch;
    showtoscreen();
	for(;;)
	{
		if(playermoney<10)
		{
			printf("你的元宝不足10个,不能在赌博了。\n");
			break;
		}
		if(dearmoney<10)
		{
			printf("你的元宝不足10个,不能在赌博了。\n");
			break;
		}
		bet=Getbet();
        repeat:betmoney=getAmount();
	     if(betmoney>playermoney)
		 {
			 printf("你没有这么多元宝,请重新输入。");
			 goto repeat;
		 }
		 if(betmoney>dearmoney)
		 {
			 printf("老板没有这么多元宝,请重新输入。");
			 goto repeat;
		 }
		Throw();
		moneycale();
		getchar();
		Chekmoney=checkmoney(playermoney,dearmoney);
		if(Chekmoney==0)
			break;
		printf("继续玩吗?退出请按q,否则继续\n\n");
		ch=getch();
		if(ch=='q')
		   break;
	}
	return 0;
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档