此代码为原创内容,仅供个人学习,禁止转发或用于商业通途。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>#define _bet_type 4
typedef unsigned char dice;
typedef unsigned int bet;void msleep(long);
void print_at(int,int,char*);
void draw_dice(int,int,int);
void roll_dices(dice*);
void draw_dices(dice*);
void roll(dice*);
void list_bets(dice*,bet*);
int check_bets(dice*,bet*);void msleep(long ms)
{struct timespec ts;ts.tv_sec = ms / 1000;ts.tv_nsec = (ms % 1000) * 1000000;nanosleep(&ts, &ts);
}
void print_at(int x,int y,char* s)
{printf("\e[?25l");printf("\033[%d;%dH%s\n",y,x,s);printf("\e[?25h");
}
void draw_dice(int x,int y,int point)
{switch(point){case 1:print_at(x,y,"     ");y++;print_at(x,y,"     ");y++;print_at(x,y,"  *  ");y++;print_at(x,y,"     ");y++;print_at(x,y,"     ");break;case 2:print_at(x,y,"     ");y++;print_at(x,y,"  *  ");y++;print_at(x,y,"     ");y++;print_at(x,y,"  *  ");y++;print_at(x,y,"     ");break;case 3:print_at(x,y,"     ");y++;print_at(x,y,"   * ");y++;print_at(x,y,"  *  ");y++;print_at(x,y," *   ");y++;print_at(x,y,"     ");break;case 4:print_at(x,y,"     ");y++;print_at(x,y," * * ");y++;print_at(x,y,"     ");y++;print_at(x,y," * * ");y++;print_at(x,y,"     ");break;case 5:print_at(x,y,"     ");y++;print_at(x,y," * * ");y++;print_at(x,y,"  *  ");y++;print_at(x,y," * * ");y++;print_at(x,y,"     ");break;case 6:print_at(x,y,"     ");y++;print_at(x,y," * * ");y++;print_at(x,y," * * ");y++;print_at(x,y," * * ");y++;print_at(x,y,"     ");break;}
}
void roll_dices(dice* dices)
{dices[0]=rand()%6+1;dices[1]=rand()%6+1;dices[2]=rand()%6+1;
}
void draw_dices(dice* dices)
{draw_dice(0,1,dices[0]);draw_dice(8,1,dices[1]);draw_dice(16,1,dices[2]);
}
void roll(dice* dices)
{for(int i=0;i<20;i++){roll_dices(dices);draw_dices(dices);msleep(50);}
}
void list_bets(dice* dices,bet *bets)
{char str[64];int point=dices[0]+dices[1]+dices[2];sprintf(str,"(s) small(4-10) rate:2 bet:%d",bets[0]);if(point>=4&&point<=10)printf("\033[0;93m");print_at(0,6,str);printf("\033[0m");sprintf(str,"(b) big(11-17) rate:2 bet:%d",bets[1]);if(point>=11&&point<=17)printf("\033[0;93m");print_at(0,7,str);printf("\033[0m");sprintf(str,"(T) triple 1 or 6 rate:60 bet:%d",bets[2]);if(dices[0]==dices[1]&&dices[1]==dices[2]&&(dices[0]==1||dices[0]==6))printf("\033[0;93m");print_at(0,8,str);printf("\033[0m");sprintf(str,"(t) other triple  rate:30 bet:%d",bets[3]);if(dices[0]==dices[1]&&dices[1]==dices[2]&&dices[0]!=1&&dices[0]!=6)printf("\033[0;93m");print_at(0,9,str);printf("\033[0m");
}
int check_bets(dice *dices,bet* bets)
{int n=0;int point=dices[0]+dices[1]+dices[2];if(point>=4&&point<=10)n+=bets[0]*2;if(point>=11&&point<=17)n+=bets[1]*2;if(dices[0]==dices[1]&&dices[1]==dices[2]){if(dices[0]==1||dices[1]==6)n+=bets[2]*60;elsen+=bets[3]*30;}memset(bets,0,sizeof(int)*_bet_type);return n;
}
int main(int count,char** args)
{srand(time(NULL));int coin=10000;if(count>=2){coin=atoi(args[1]);if(coin<=0)coin=10000;}dice dices[3];bet bets[_bet_type];memset(bets,0,sizeof(int)*_bet_type);roll_dices(dices);char b;int n=10;do{system("clear");draw_dices(dices);list_bets(dices,bets);char str[30];sprintf(str,"coins = %d",coin);print_at(0,11,str);print_at(0,12,"input \"TYPE[,AMOUNT]\" to bet, \"e\" to roll, \"q\" to quit.");if(n<5||n>500){printf("\033[0;31m");print_at(0,13,"bets must be greater than 5 and less than 500!");printf("\033[0m");}scanf("%c,%d",&b,&n);if(b=='e'){roll(dices);coin+=check_bets(dices,bets);            continue;}if(b=='q')break;if(n<5||n>500)continue;switch(b){case 's':coin+=bets[0];bets[0]=n;coin-=n;break;case 'b':coin+=bets[1];bets[1]=n;coin-=n;break;case 'T':coin+=bets[2];bets[2]=n;coin-=n;break;case 't':coin+=bets[3];bets[3]=n;coin-=n;break;}}while(1);printf("\nbye!\n");return 0;
}

C语言示例,三个骰子相关推荐

  1. 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

    文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...

  2. [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...

  3. 【实验2 选择结构】7-9 sdut-C语言实验-三位数整数的各位数字

    7-9 sdut-C语言实验-三位数整数的各位数字 分数 15 全屏浏览题目 切换布局 作者 马新娟 单位 山东理工大学 本题要求编写程序,输入一个三位数的正整数,并输出它的个位数字.十位数字和百位数 ...

  4. c语言的三种基本结构——初学者一定要了解哦

    文章目录 前言 一.顺序结构 二.选择结构(分支语句) 1.选择语句之→if语句 1.1 if语句的基本结构 1.2 if语句之多分支: 1.3 if语句的常见错误使用. 2.选择语句之→switch ...

  5. C语言的三种基本结构

    C语言的三种基本结构 顺序结构 顾名思义 顺序结构就是顺序写的c语言程序 没有判断也没有循环 所有的语句都是用线性的顺序执行 如下代码为基础的顺序结构 #include <stdio.h> ...

  6. 学习和在生产环节使用d语言的三个条件

    2019独角兽企业重金招聘Python工程师标准>>> 其他主流语言不说,因为我们遇到的问题,差不多都有人遇到了,很容易找到解决方案. 而d语言呢,目前连招d语言程序猿的公司都没有哦 ...

  7. 大学c语言第三章作业,华中科技大学光电子学院C语言第三章

    <华中科技大学光电子学院C语言第三章>由会员分享,可在线阅读,更多相关<华中科技大学光电子学院C语言第三章(20页珍藏版)>请在装配图网上搜索. 1.第三章 简单程序设计 1. ...

  8. java Socket Tcp示例三则(服务端处理数据、上传文件)

    示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader; import java.io.IOException; im ...

  9. 嵌入式linux面试题解析(二)——C语言部分三

    嵌入式linux面试题解析(二)--C语言部分三 1.下面的程序会出现什么结果 #include <stdio.h> #include <stdlib.h> #include ...

  10. scala语言示例_var关键字与Scala中的示例

    scala语言示例 Scala var关键字 (Scala var keyword) The var Keyword in scala is used to declare variables. As ...

最新文章

  1. iOS开发--面试总结(二)
  2. python实验收获_python实验课代码心得
  3. 第十二章:Java_常用类
  4. 【CodeForces - 599C 】Day at the Beach(思维)
  5. MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)
  6. vb microsoft.xmlhttp 获取所有超链接_编写我的第一个VB程序
  7. 线性二次型最优控制器LQR设计原理以及matlab实现
  8. 测试方案和测试计划的区别
  9. 漫画 | 为什么 MySQL 数据库要用 B+ 树存储索引?
  10. NLP+语义分析(四)︱中文语义分析研究现状(CIPS2016、角色标注、篇章分析)
  11. 稳压二极管和TVS管知识点总结
  12. FaceBook 遭遇有史以来全球最大宕机
  13. 仿ios相机apk_iCamera仿苹果相机app下载-iCamera仿苹果相机下载app手机版 v4.0-第六手游网...
  14. 【NOIP2018】旅行 (洛谷P5049 / P5022) O(nlogn)题解
  15. 2021年中国电饭锅(电饭煲)行业现状及前景分析:个性化消费推动市场向高端、智能化发展[图]
  16. 网易云音乐常用API浅析
  17. C语言:质数和合数的判断
  18. JDBC 的代码逻辑封装
  19. 架构分布式____负载均衡4层和7层理解
  20. 阿里巴巴「防疫精灵」的敏捷开发实战

热门文章

  1. android root截图软件,安卓手机ROOT截图软件与无ROOT截图软件对比
  2. 精确查找top k和非精确查找top k
  3. Java实现注册邮箱激活验证
  4. 手机取证技巧之微信迁移取证_数字取证技巧和窍门:«您的电话»应用取证
  5. PCB电路板去耦电容配置原则有哪些?
  6. 18 -Flask构建弹幕微电影网站- 部署上线
  7. android 如何分析卡顿问题
  8. 【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记
  9. 我感觉的优美诗句品鉴(不定时更新)
  10. IntelliJ IDEA下载