java实现斗地主发牌项目

news/2024/11/17 0:31:49/

java集合实现斗地主发牌项目

package com.tjcu;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;/*** @author 王恒杰* @version 1.0* @date 2021/10/7 22:09* @email 1078993387@qq.com* @Address 天津* @Description:实现斗地主功能*/
public class FightTheLandlord {public static void main(String[] args) {/**3: 发牌的操作(有很多种)4: 抢地主过程5: 查看自己手里面牌的过程*///构建了poker对象;里面存放了我们所有的扑克牌List<String> poker = new ArrayList<String>();poker.add("大王");poker.add("小王");String[] color = {"♤", "♡", "♣", "♢"};String[] font = {"A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"};
//        色号for (String c : color) {
//            数字for (String f : font) {poker.add(c + f);}}// 2: 洗牌的操作// shuffle方法能够打乱集合里面元素的顺序Collections.shuffle(poker);// 3 : 发牌的操作(有很多种)//3.1 每个人直接发13张//构建3个人来保存这个牌List<String> p1 = new ArrayList<>();List<String> p2 = new ArrayList<>();List<String> p3 = new ArrayList<>();//通过循环的方式,把牌堆里面的13张牌给第一个玩家for (int i = 0; i < poker.size() - 3; i++) {//第一张牌发给1号玩家if (i % 3 == 0) {p1.add(poker.get(i));} else if (i % 3 == 1) {p2.add(poker.get(i));} else {p3.add(poker.get(i));}}//接收键盘录入Scanner scanner = new Scanner(System.in);System.out.println("抢地主的过程: ");//从1号玩家开始 是否需要抢地主System.out.println("1号玩家是否抢地主(0-3):");int p1Result = scanner.nextInt();//代表我们1号玩家抢了地主if (p1Result == 3) {//抢了地主获取最后三张牌p1.add(poker.get(51));p1.add(poker.get(52));p1.add(poker.get(53));} else {//练习:需要大家去完善一下我们这个代码;  如果2号没有抢到地主; 三号需要抢地主System.out.println("2号玩家是否抢地主(0-3):");int p2Result = scanner.nextInt();if (p1Result == 3) {p2.add(poker.get(51));p2.add(poker.get(52));p2.add(poker.get(53));} else {System.out.println("2号玩家是否抢地主(0-3):");int p3Result = scanner.nextInt();if (p3Result == 3 && p3Result > p2Result && p3Result > p1Result) {p3.add(poker.get(51));p3.add(poker.get(52));p3.add(poker.get(53));} else if (p2Result > p1Result) {p2.add(poker.get(51));p2.add(poker.get(52));p2.add(poker.get(53));}}}//最后一步; 打印自己的手牌;假设自己是1号玩家System.out.println("1号玩家的牌: ");for (String s : p1) {System.out.print(s + ",");}
//        换行System.out.println();System.out.println("-------------------------");System.out.println("2号玩家的牌: ");for (String s : p2) {System.out.print(s + ",");}
//        换行System.out.println();System.out.println("---------------------------");System.out.println("3号玩家的牌: ");for (String s : p3) {System.out.print(s + ",");}}
}

http://www.ppmy.cn/news/583575.html

相关文章

JAVA 单张牌出牌逻辑 实现斗地主

JAVA 单张牌出牌逻辑 实现斗地主 Card类 public class Card {Integer degree;String color;public Card(Integer degree, String color) {this.degree degree;this.color color;}public Card() {} }Player类 import java.util.ArrayList; public class Player {String nam…

JAVA GUI创作简易记牌器

Picture1&#xff1a; 展示出一副扑克牌中的52张 Picture2&#xff1a;在文本框内输入扑克 Picture3&#xff1a;显示出除输入之外其他的扑克牌 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public cl…

斗地主小游戏(JAVA实现)

hello&#xff0c;我是忘鱼。 目录 前言 一、案例所需要具备知识 二、代码 2.运行结果 总结 前言 斗地主小游戏&#xff0c;属于Collection体系综合案例&#xff0c;学习帮助我们加深理解。 一、案例所需要具备知识 常用Arraylist常用操作&#xff0c;和一些基础知识。代码注释…

斗地主AI算法——第十二章の主动出牌(1)

本章开始&#xff0c;我们介绍主动出牌的算法&#xff0c;和被动出牌类似&#xff0c;我们第一步把主要架子搭起来。 首先清空出牌序列 clsHandCardData.ClearPutCardList(); 主动出牌的策略按照优先级大体可以分为三类&#xff1a; 【一】能直接一手牌出去&#xff0c;优先出…

我赢职场c语言数组斗地主,职场就行斗地主,你看懂了么?

1、小王都会被大王拍死。说明副职没有实权&#xff01; 2、没有一张大牌开路&#xff0c;再顺的小牌都出不去。说明领导很重要&#xff01; 3、无论你多会记牌、打牌&#xff0c;都抵不过人家手中的一把好牌。说明实力比能力重要&#xff01; 4、如果一堆小牌连不起来&#xff…

斗地主AI算法——第十七章の总结整理

2.0版本的斗地主AI算法在这里就算告一段落了。 **********************完结撒花********************** 不过后续应该还会开发更智能的版本&#xff0c;毕竟当前版本还有很多策略没有加入。 比如说角色位置&#xff08;地主上家下家打法&#xff09;、比如说记牌算牌、又比如…

天天QQ记牌器2.37 去广告绿色版

帮一个朋友忙 把这款软件的广告nop掉 听说是挺好的一款记牌器 已经上传到资源里 简单说下步骤 1.脱壳.. 用看雪大牛的 Aspr2.XX_unpacker_v1.0SC.osc 脚本脱壳 具体用法就不说了 gg下就知道了 2.最简单的方法是 搜索 tntn.cn 把字符串都替换成 about:blank 就OK了 不过还…

斗地主笔记

很喜欢斗地主&#xff0c;一起交流下。 文章目录 牌力分析王牌双鬼炸弹 一流强牌飞机大鬼22 强牌小鬼2AA&#xff0c;KK顶A顺子(长顺子)3连对(或以上) 大牌一般顺子三张A、KQQ 中牌(小牌)送命牌 叫牌哪些情况可以叫牌 对局 牌力分析 王牌 顶级牌&#xff0c;使用几乎无限制&…