代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
21点游戏
作者:
又一村
/ 发布于
2013/4/16
/
669
#include <iostream> using namespace std; int pai[4][13] = {0}; int pc[7] = {0}; int ren[7] = {0}; int pcs = 0; int rens = 0; //洗牌函数 void xipai() { for(int i = 0; i < 13; ++i) for(int j = 0; j < 4; ++j) pai[j][i] = i+1; } //发牌函数,z张数,p谁,x p发了第几张了 void fapai(int z, int *p, int &x) { srand((unsigned)time(NULL));//随机初始化 for(int i = 0; i < z; ++i) { int a = rand() % 4; int b = rand() % 13; if(pai[a][b] >0) { p[x] = pai[a][b]; pai[a][b] = -1; switch(a) { case 0: cout << "黑桃 "; break; case 1: cout << "红桃 "; break; case 2: cout << "方块 "; break; case 3: cout << "梅花 "; break; } cout << p[x]; ++x; } else { --i; continue; } } } //判断21点 int pd(int *p, int x) { int sum = 0; for(int i = 0; i < x; ++i) sum += p[i]; return sum; } //判断输赢 enum shuying{lose,level,win,other}; shuying pdsy(int *p,int ps,int *r,int rs) { int rss=pd(r,rs); int pss=pd(p,ps); if(rss>21&&pss>21) return other; if(rss>21&&pss<21) return win; if(rss<21&&pss>21) return lose; if(rss>pss) return lose; if(rss<pss) return win; return level; } //输出输赢 void scsy() { switch(pdsy(pc,pcs,ren,rens)) { case level:cout<<"\n平局哦!\n"; break; case win:cout<<"\n电脑赢了哦!\n"; break; case lose:cout<<"\n恭喜,你赢了!\n"; break; case other:cout<<"两个都超过21点了,算平局吧!\n"; } } //人是否发牌 int rfp() { cout<<"\n是否继续发牌?(Y or N)"; char ch; cin>>ch; if(ch=='y'||ch=='Y') {cout<<"\n人发一张牌:\n"; fapai(1,ren,rens); return 1;} else return 0; } //电脑是否发牌 void pfp() { if((pdsy(pc,pcs,ren,rens)<1)) { cout<<"\n电脑发一张牌:\n"; fapai(1,pc,pcs); } } //结束看牌 void kp() { cout<<"电脑的牌是\n" ; for(int i=0;i<pcs;++i) cout<<pc[i]<<'\t'; cout<<"\n人的牌是"<<endl; for(int j=0;j<rens;++j) cout<<ren[j]<<'\t'; cout<<endl; } int main( ) { xipai(); cout << "开始发牌\n"; cout << "电脑的两张是:\n"; fapai(2, pc, pcs); if(pd(pc,pcs)>21) { cout<<"\n发牌就输了,真失败!\n"; goto KKKKKK; } cout << "\n人的两张是:\n"; fapai(2, ren, rens); if(pd(ren,rens)>21) { cout<<"\n发牌就输了,真失败!\n"; goto KKKKKK; } while( rfp()) //人要牌,就继续 pfp(); pfp(); //人不要牌了,电脑还算算要不要 cout<<"\n\n\n"; kp(); scsy(); KKKKKK: system("pause"); return 0; }
试试其它关键字
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
又一村
贡献的其它代码
(
2
)
.
五子棋
.
21点游戏
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3