java中Hashmap的get方法

自己做了一个模拟21点的游戏,做到一半却碰到了点问题。publicclass功能类{staticint牌库数量=52;staticint计分=0;staticint玩家点... 自己做了一个模拟21点的游戏,做到一半却碰到了点问题。
public class 功能类
{
static int 牌库数量=52;
static int 计分=0;
static int 玩家点数=0;
static int 玩家暗牌点数=0;
static int 玩家记牌=0;
static int 电脑点数=0;
static int 电脑记牌=0;
static int 电脑暗牌点数=0;
static HashMap<Integer,String> 卡牌=new HashMap<Integer,String>();
public static void 牌数据()
{
卡牌.put(2,"2");
卡牌.put(3,"3");
卡牌.put(4,"4");
卡牌.put(5,"5");
卡牌.put(6,"6");
卡牌.put(7,"7");
卡牌.put(8,"8");
卡牌.put(9,"9");
卡牌.put(10,"10");
卡牌.put(10,"K");
卡牌.put(10,"Q");
卡牌.put(10,"K");
卡牌.put(11,"A");
}
public static void 玩家抓牌()
{ 牌库数量-=1;
玩家记牌+=1;
int i=(int) (Math.random()*9+2);
if (玩家记牌==1){玩家暗牌点数=i;}
玩家点数+=i;

String j=(String)卡牌.get(i);
System.out.println("玩家获得第"+玩家记牌+"张牌:"+j);
System.out.println("玩家目前点数"+玩家点数);
System.out.println("牌库剩余数量"+牌库数量);
if (玩家点数>21) {System.out.println("玩家瞬间爆炸");}
if (玩家点数==21 && 玩家记牌==2)
{
System.out.println("玩家完成了一次black jack!" );
计分+=2;
}
}
==============================================================================
public class 主方法类
{
static boolean 玩家回合=true;
public static void main(String[]args)
{
功能类.玩家抓牌();
}
}
===============================================
为什么取出的value值是null?
我做了一个测试,把他们放到一个类里,就正常了,真是想不明白,求各路大神解救!
展开
 我来答
198901245631
推荐于2018-02-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1708万
展开全部
map中存储的是键值对,也就是说通过set方法进行参数和值的存储,之后通过get“键”的形式进行值的读取。举例:
Map map = new Hashmap();//创建一个map
map.put("key","value");//给map赋值
String vlaues = map.get("key");//获取map中键值为“key”的值
system.out.println(vlaues );//输出结果
以上代码的运行结果:value;
备注:map中可以存放是字符串,也可以存放的是对象,这个根据实际需要进行调整即可,也可以通过”<T>“的形式来进行对象转换,这个在特定场景下进行特定转换即可。
simplelike
2014-09-12 · TA获得超过325个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:143万
展开全部
public static void main(String[]args)
{
功能类.牌数据();

功能类.玩家抓牌();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式