21点怎样?平民玩家龙宫怎么加点的多吗?

无安全提问
无安全提问
母亲的名字
爷爷的名字
父亲出生的城市
您个人计算机的型号
您最喜欢的餐馆名称
您其中一位老师的名字
驾驶执照的最后四位数字Java(40)
玩家类 Player.java
import java.util.ArrayL
* Created by zhuqiuhui on .
public class Player {
public int balance = 100;
//玩家拥有的金币
public boolean bust = // 输了
public boolean black = //黑jack
public ArrayList&Integer& al = new ArrayList&Integer&(); //存放牌面
public int currentPoint = 0; //当前点数
public String getName() {
public void setName(String name) {
this.name =
public Player() {
public int getBalance() {
public void setBalance(int balance) {
this.balance =
public boolean isBust() {
public void setBust(boolean bust) {
this.bust =
public boolean isBlack() {
public void setBlack(boolean black) {
this.black =
public ArrayList&Integer& getAl() {
public void setAl(ArrayList&Integer& al) {
public int getCurrentPoint() {
return currentP
public void setCurrentPoint(int currentPoint) {
this.currentPoint = currentP
服务器:CardServer.java
import domain.P
import java.io.DataInputS
import java.io.DataOutputS
import java.io.IOE
import java.net.ServerS
import java.net.S
import java.util.ArrayL
import java.util.L
import java.util.R
* Created by zhuqiuhui on .
public class CardServer {
List&ClientThread& clients = new ArrayList&ClientThread&();
private int[] pai = new int[52];
private String[] huase = {&黑&, &红&, &梅&, &方&};
private String[] paiM = {&A&, &2&, &3&, &4&, &5&, &6&, &7&, &8&, &9&, &10&, &J&, &Q&, &K&, &A&, &2&, &3&, &4&, &5&, &6&, &7&, &8&, &9&, &10&, &J&, &Q&, &K&};
private int currentPage = 0;
private int playerNum = 1;
private String totoalStr = &&;
private int totalmoney = 0;
public static void main(String[] args) {
new CardServer().start();
* 启动服务器中...
public void start() {
boolean iConnect =
ServerSocket ss = new ServerSocket(1320);
iConnect =
totoalStr = packMsg(totoalStr, &服务器已经启动....\r\n&);
sendClientMsg(totoalStr);
while (iConnect) {
Socket s = ss.accept();
totoalStr = packMsg(totoalStr, &玩家 & + playerNum + & 绑定服务器端口成功!\r\n&);
sendClientMsg(totoalStr);
ClientThread currentClient = new ClientThread(s, &玩家 & + playerNum);//创建线程引用
clients.add(currentClient);//把当前客户端加入集合
totoalStr = packMsg(totoalStr, &玩家 & + playerNum + & 加入....\r\n&);
sendClientMsg(totoalStr);
if (playerNum == 3) {
totoalStr = packMsg(totoalStr, &已经到达玩家上限,不再允许玩家进入游戏!\r\n&);
sendClientMsg(totoalStr);
totoalStr = packMsg(totoalStr, &游戏开始,庄家开始洗牌....\r\n&);
sendClientMsg(totoalStr);
xipai();// 洗牌
totoalStr = packMsg(totoalStr, &洗牌完毕,庄家开始发牌....\r\n&);
sendClientMsg(totoalStr);
// 给玩家发牌、玩家下注、要牌
for (int i = 0; i & clients.size(); i++) {
String originalStr = new String(totoalStr);
ClientThread c = clients.get(i);
String fapai_res = fapai(c.getPlayer());
originalStr = packMsg(originalStr, fapai_res);
c.sendMsg(originalStr);
// 玩家下注
originalStr = packMsg(originalStr, &玩家下注....\r\n&);
c.sendMsg(originalStr);
xiazhu(c.getPlayer());
originalStr = packMsg(originalStr, &请选择 A:要牌 B:双倍赌注 C:不要\r\n&);
c.sendMsg(originalStr);
// 接收消息
String answer = c.recMsg();
if (&A&.equals(answer)) {
originalStr = packMsg(originalStr, &玩家要牌:\r\n&);
c.sendMsg(originalStr);
while (true) {
String cards = &&;
for (Integer integer : c.getPlayer().getAl()) {
cards += xianshi(integer);
cards += & 当前点数是:& + c.getPlayer().getCurrentPoint() + &\r\n&;
originalStr +=
c.sendMsg(originalStr);
if (c.getPlayer().getCurrentPoint() &= 21) {
originalStr = packMsg(originalStr, &您的点数已经超过21点了\r\n&);
c.sendMsg(originalStr);
c.getPlayer().setCurrentPoint(0);
originalStr = packMsg(originalStr, &是否要牌,Y or N ?\r\n&);
c.sendMsg(originalStr);
String yesNo = c.recMsg();
if (yesNo.equalsIgnoreCase(&N&)) {
originalStr = packMsg(originalStr, &玩家不再要牌\r\n&);
c.sendMsg(originalStr);
c.getPlayer().getAl().add(pai[currentPage]);
c.getPlayer().setCurrentPoint(c.getPlayer().getCurrentPoint() + calPoint(pai[currentPage]));
currentPage++;
} // while
c.sendMsg(originalStr);
} else if (&B&.equals(answer)) {
originalStr = packMsg(originalStr, &玩家选择下双倍赌注!\r\n&);
c.sendMsg(originalStr);
double_bet(c.getPlayer());
} else if (&C&.equals(answer)) {
originalStr = packMsg(originalStr, &玩家选择不要牌!\r\n&);
c.sendMsg(originalStr);
originalStr = packMsg(originalStr, &玩家输入有误!\r\n&);
c.sendMsg(originalStr);
// 计算总点数
String calRes = &计算牌的点数\r\n&;
System.out.println(&计算牌的点数....&);
calRes += result(clients.get(0).getPlayer(), clients.get(1).getPlayer(), clients.get(2).getPlayer());
sendClientMsg(calRes);
} catch (IOException e) {
System.out.println(&IOException&);
e.printStackTrace();
* 客户端的进程
class ClientThread implements Runnable {
private DataInputS
private DataOutputS
private boolean iConnect =
ClientThread(Socket s, String name) {
iConnect =
this.player = new Player();
this.player.setName(name);
public String recMsg() {
dis = new DataInputStream(s.getInputStream());
str = dis.readUTF();
} catch (IOException e) {
e.printStackTrace();
public void run() {
System.out.println(&run方法启动了!&);
while (iConnect) {
dis = new DataInputStream(s.getInputStream());
str = dis.readUTF();
System.out.println(str);
for (int i = 0; i & clients.size(); i++) {
System.out.println(&转发消息中...& + i);
ClientThread c = clients.get(i);
c.sendMsg(str);
} catch (IOException e) {
e.printStackTrace();
* 将送至服务器的消息发送给每个连接到的客户端
public void sendMsg(String str) {
dos = new DataOutputStream(this.s.getOutputStream());
dos.writeUTF(str);
} catch (IOException e) {
e.printStackTrace();
public Socket getS() {
public void setS(Socket s) {
public DataInputStream getDis() {
public void setDis(DataInputStream dis) {
this.dis =
public DataOutputStream getDos() {
public void setDos(DataOutputStream dos) {
this.dos =
public String getStr() {
public void setStr(String str) {
this.str =
public boolean isiConnect() {
public void setiConnect(boolean iConnect) {
this.iConnect = iC
public Player getPlayer() {
public void setPlayer(Player player) {
this.player =
* 依次给玩家发消息
* @param str
private void sendClientMsg(String str) {
for (int i = 0; i & clients.size(); i++) {
ClientThread c = clients.get(i);
c.sendMsg(str);
private void xipai() {
for (int i = 0; i & 52; i++) {
for (int j = 0; j & 26; j++) {
Random r = new Random();
int i1 = Math.abs(r.nextInt() % 52);
int i2 = Math.abs(r.nextInt() % 52);
int temp = pai[i2];
pai[i2] = pai[i1];
private String fapai(Player player) {
int first = currentP
int second = currentPage + 1;
player.getAl().add(pai[first]);
player.getAl().add(pai[second]);
if ((calPoint(pai[first]) == 1 && calPoint(pai[second]) == 10) || (calPoint(pai[first])) == 10 && calPoint(pai[second]) == 1) {
player.setBlack(true);
player.setCurrentPoint(21);
player.setCurrentPoint(player.getCurrentPoint() + calPoint(pai[first]));
player.setCurrentPoint(player.getCurrentPoint() + calPoint(pai[second]));
currentPage += 2;
return &庄家发了:& + xianshi(pai[first]) + & 和 & + xianshi(pai[second]) + & \r\n& + &当前点数:& + String.valueOf(player.getCurrentPoint()) + &\r\n&;
private int calPoint(int i) {
int temp = 0;
if (i % 13 + 1 & 10) {
temp = 10;
temp = (i + 1) % 13;
* 显示牌面的点数
* @param i
private String xianshi(int i) {
return huase[i / 13] + & & + paiM[i % 13];
* 下注,一次下20
* @param player
private void xiazhu(Player player) {
player.setBalance(player.getBalance() - 20);
totalmoney += 20;
* 下双倍赌注,一次下40
* @param p
private void double_bet(Player p) {
p.setBalance(p.getBalance() - 40);
totalmoney = totalmoney + 40;
* 计算三位玩家的结果
* @param p1
* @param p2
* @param p3
private String result(Player p1, Player p2, Player p3) {
String res = &&;
if (p1.isBlack()) {
p1.setBalance(p1.getBalance() + totalmoney);
res += p1.getName() + & win!\r\n&;
} else if (p2.isBlack() && p3.isBlack()) {
p2.setBalance(p2.getBalance() + totalmoney / 2);
p3.setBalance(p3.getBalance() + totalmoney / 2);
res += p2.getName() + & and & + p3.getName() + & win!\r\n&;
} else if (p2.isBlack()) {
p2.setBalance(p2.getBalance() + totalmoney);
res += p2.getName() + & win!\r\n&;
} else if (p3.isBlack()) {
p3.setBalance(p3.getBalance() + totalmoney);
res += p3.getName() + & win!\r\n&;
} else if ((p1.getCurrentPoint() == p2.getCurrentPoint() && p1.getCurrentPoint() == p3.getCurrentPoint()) || (p1.getCurrentPoint() & p2.getCurrentPoint() && p1.getCurrentPoint() & p3.getCurrentPoint())) {
p1.setBalance(p1.getBalance() + totalmoney);
res += p1.getName() + & win!\r\n&;
} else if (p2.getCurrentPoint() & p1.getCurrentPoint() && p2.getCurrentPoint() & p3.getCurrentPoint()) {
p2.setBalance(p2.getBalance() + totalmoney);
res += p2.getName() + & win!\r\n&;
} else if (p3.getCurrentPoint() & p1.getCurrentPoint() && p3.getCurrentPoint() & p2.getCurrentPoint()) {
p3.setBalance(p3.getBalance() + totalmoney);
res += p3.getName() + & win!\r\n&;
} else if (p2.getCurrentPoint() & p1.getCurrentPoint() && p2.getCurrentPoint() == p3.getCurrentPoint()) {
p2.setBalance(p2.getBalance() + totalmoney / 2);
p3.setBalance(p3.getBalance() + totalmoney / 2);
res += p2.getName() + & and & + p3.getName() + & win!\r\n&;
} else if (p3.getCurrentPoint() & p1.getCurrentPoint() && p2.getCurrentPoint() == p3.getCurrentPoint()) {
p2.setBalance(p2.getBalance() + totalmoney / 2);
p3.setBalance(p3.getBalance() + totalmoney / 2);
res += p2.getName() + & and & + p3.getName() + & win!\r\n&;
String balance1 = p1.getName() + & 的金币最后剩下:& + String.valueOf(p1.getBalance()) + &\r\n&;
String balance2 = p2.getName() + & 的金币最后剩下:& + String.valueOf(p2.getBalance()) + &\r\n&;
String balance3 = p3.getName() + & 的金币最后剩下:& + String.valueOf(p3.getBalance()) + &\r\n&;
res = res + balance1 + balance2 + balance3;
System.out.println(res);
* package messsage
* @param originStr
* @param str
private String packMsg(String originStr, String str) {
System.out.print(str);
originStr +=
return originS
客户端:CardClient.java
import java.awt.*;
import java.awt.event.ActionE
import java.awt.event.ActionL
import java.awt.event.WindowA
import java.awt.event.WindowE
import java.io.DataInputS
import java.io.DataOutputS
import java.io.IOE
import java.net.S
import java.net.UnknownHostE
* Created by zhuqiuhui on .
public class CardClient extends Frame {
private TextField tfT
private TextArea taC
private DataOutputS
private DataInputS
public static void main(String[] args) {
new CardClient().launchFrame();
public void launchFrame(){
tfText = new TextField();
taContent = new TextArea();
this.setSize(300,300);
this.setLocation(300,300);
this.tfText.addActionListener(new TFListener());
this.add(tfText, BorderLayout.SOUTH);
this.add(taContent,BorderLayout.NORTH);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
this.pack();
this.connect();
this.setVisible(true);
public void connect() {
s = new Socket(&127.0.0.1&,1320);
dos = new DataOutputStream(s.getOutputStream());
dis = new DataInputStream(s.getInputStream());
new Thread(new SendThread()).start();
} catch (UnknownHostException e) {
System.out.println(&UnknownHostException&);
e.printStackTrace();
} catch (IOException e) {
System.out.println(&IOException&);
e.printStackTrace();
class TFListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
str = tfText.getText().trim();
tfText.setText(&&);
dos.writeUTF(str);
} catch (IOException e1) {
System.out.println(&IOException&);
e1.printStackTrace();
* 客户端接收消息的线程
class SendThread implements Runnable{
private boolean iConnect =
public void run(){
iConnect =
public void recMsg() {
while(iConnect){
str = dis.readUTF();
taContent.setText(str);
} catch (IOException e) {
e.printStackTrace();
运行界面:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93681次
积分:1937
积分:1937
排名:千里之外
原创:95篇
转载:24篇
评论:29条
(1)(2)(1)(10)(4)(16)(9)(9)(1)(1)(5)(4)(3)(1)(4)(4)(3)(2)(1)(2)(3)(8)(10)(12)(5)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'21点玩法技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
21点玩法技巧
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 游戏玩家特点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信