利用Java实现简单的发牌

利用Java编写一个简单的发牌小程序


今天我们来写一个斗地主发牌的简单小程序,首先我们先将所有的扑克牌写入一个字符串数组,再通过遍历将它添加到我们比较方便使用的Arraylist里
定义一个Random随机数对象,再通过循环,随机选取ArrayList中的元素下边,将该下标的元素赋予玩家,注意,这里的随机数的上限也要减小,同时在ArrayList中删除元素,保证发牌不会重复。在发牌完毕后,依次遍历将之打印出来。
下面为代码:

package com.softeem.lesson13.ttt;

import java.util.ArrayList;
import java.util.Random;

public class t4 {
	private static String[] str = { "黑桃3", "梅花3", "红心3", "方片3", "黑桃4", "梅花4", "红心4", "方片4", "黑桃5", "梅花5", "红心5", "方片5",
			"黑桃6", "梅花6", "红心6", "方片6", "黑桃7", "梅花7", "红心7", "方片7", "黑桃8", "梅花8", "红心8", "方片8", "黑桃9", "梅花9", "红心9",
			"方片9", "黑桃10", "梅花10", "红心10", "方片10", "黑桃J", "梅花J", "红心J", "方片J", "黑桃Q", "梅花Q", "红心Q", "方片Q", "黑桃K", "梅花K",
			"红心K", "方片K", "黑桃A", "梅花A", "红心A", "方片A", "黑桃2", "梅花2", "红心2", "方片2", "小王", "大王" };
	
	
	private static ArrayList<String> array = new ArrayList();
	
	private static String[] p1 = new String[17];
	private static String[] p2 = new String[17];
	private static String[] p3 = new String[20];
	
	private static int index=str.length;
	
	private static void input(){
		for(String item:str){
			array.add(item);
		}
	}
	
	private static void output(){
		Random ran = new Random();
		for(int i=0;i<17;i++){
			int j=ran.nextInt(index);
			p1[i]=array.get(j);
			array.remove(j);
			index--;
		}
		
		for(int i=0;i<17;i++){
			int j=ran.nextInt(index);
			p2[i]=array.get(j);
			array.remove(j);
			index--;
		}

		for(int i=0;i<20;i++){
			int j=ran.nextInt(index);
			p3[i]=array.get(j);
			array.remove(j);
			index--;
		}
		
		System.out.println("第一名玩家的牌:");
		for(String item:p1){
			System.out.print(item+" ");
		}
		
		System.out.println();
		System.out.println("第二名玩家的牌:");
		for(String item:p2){
			System.out.print(item+" ");
		}
		System.out.println();
		System.out.println("第三名玩家的牌:");
		for(String item:p3){
			System.out.print(item+" ");
		}
	}
	
	
	public static void main(String[] args){
		input();
		output();
		
	}
	
	
}

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值