java色一点的游戏_java 黄金点游戏

最近自己使用纯java写的黄金点游戏,写的不是很好,希望各位多多指点。本来想使用swing来做几个按钮的,但是对这个确实不是很懂,还是放弃了,采用了控制台输入的方式。主要是

使用hashmap来存储参加游戏的name和每次输入的数据。

github地址:https://github.com/ICanV/GoldPoint

代码如下:

package demo2;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Scanner;

public class GoldPoint {

public static void main(String[] args){

GoldPoint gd=new GoldPoint();

gd.goldPoint();

}

public void goldPoint(){

HashMap inputMap=new HashMap();//存入输入分数

HashMap scoreMap=new HashMap();//存入分数

String name="";

Double inputScore;

int peopleNum;//参加的人数

int time;//进行轮数

Double sum=0.0;

Double aver=0.0;

Scanner scan=new Scanner(System.in); //参数对象是系统进来的流

System.out.println("输入参加的人数:");

peopleNum=scan.nextInt();

System.out.println("输入需要进行几轮:");

time=scan.nextInt();

for(int i=0;i

System.out.println("请输入第"+(i+1)+"个参加者的姓名:");

name=scan.next();

System.out.println("请输入第一轮的分数:");

inputScore=scan.nextDouble();

inputMap.put(name, inputScore);

scoreMap.put(name,(double) 0);//初始化scoreMap

sum+=inputScore;

}

aver=sum/peopleNum*0.618;

System.out.println("aver="+aver);

this.findWinner(inputMap, scoreMap, aver);

this.show(scoreMap);

System.out.println("第一轮结束");

for(int i=0;i

sum=0.0;

System.out.println("请输入第"+(i+2)+"轮的分数:");

Iterator iter = inputMap.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry0 = (Map.Entry) iter.next();

String key = (String) entry0.getKey();

System.out.println(key+"输入第"+(i+2)+"轮分数:");

Double score =scan.nextDouble();

inputMap.put(key, score);//替换掉以前的分数

sum+=score;

}

aver=sum/peopleNum*0.618;

System.out.println("aver="+aver);

this.findWinner(inputMap, scoreMap, aver);

this.show(scoreMap);

System.out.println("第"+(i+2)+"轮结束");

}

System.out.println("游戏结束");

}

//找出每次分数最接近黄金点的 和最远的 最接近的加一分 最远的减一分 其余加零分(可能有相同的)

public void findWinner(HashMap inputMap,HashMap scoreMap,Double aver){

Double temp;

Double temp0;

List latest=new ArrayList();

List farthest=new ArrayList();

Iterator iter = inputMap.entrySet().iterator();

Map.Entry entry = (Map.Entry) iter.next();

Double input = (Double) entry.getValue();

String key0 = (String) entry.getKey();

latest.add(key0);

farthest.add(key0);

//iter.hasNext();

temp0=temp=Math.abs(aver-input);

//遍历map

while (iter.hasNext()) {

entry = (Map.Entry) iter.next();

String key = (String) entry.getKey();

input = (Double) entry.getValue();

Double temp1=Math.abs(aver-input);

if(temp>temp1){//寻找最近

temp=temp1;

latest.clear();

latest.add(key);

}else if(temp==temp1){

latest.add(key);

}

if(temp0

temp0=temp1;

farthest.clear();

farthest.add(key);}

else if(temp0==temp1){

farthest.add(key);

}

}

//实现加分

iter = scoreMap.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry0 = (Map.Entry) iter.next();

String key = (String) entry0.getKey();

Double score =(Double) entry0.getValue();

if(this.containList(key, latest)){

score=score+1;

scoreMap.put(key, score);

}

if(this.containList(key, farthest)){

score=score-1;

scoreMap.put(key, score);

}

}

}

public boolean containList(String str,List list){

for(int i=0;i

if(str.equals(list.get(i))){

return true;

}

}

return false;

}

public void show(HashMap scoreMap){

System.out.println("得分情况:");

Iterator iter = scoreMap.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry0 = (Map.Entry) iter.next();

String key = (String) entry0.getKey();

Double score =(Double) entry0.getValue();

System.out.println(key+":"+score);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版本介绍 游戏发布站程序源码支持全天套黄连体广告会员发布系统Ver.40 1):游戏发布类型分全天套黄[24小时套黄],全天精品,套黄,通宵固顶,通宵推荐,连体广告! 2):游戏分类支持各种游戏类型,具体操作,基本设置→游戏类型上有说明自由设置; 不要问能不能做什么游戏,现在明确告诉你,发布站程序支持任何游戏的,只要你修改下文字和LOGO即可 3):首页游戏显示天数支持今天,明天,后天,大后天几天时间,以及昨天,前天! 4):套黄游戏跟随时间轮换显示,随机排序!(随机不影响多行重复连体广告的功能) 5):通宵游戏在网站配置中自由设置时间段,只需选择通宵即可显示在套黄底部! 6):只有通过审核但未套黄,未通宵,未精品的游戏将显示在免费游戏管理中! 7):内带免费采集插件,支持传奇,天龙八部,奇迹,逐鹿,武易,传世,征途,完美,魔域,诛仙 8):支持友情链接,与大站互换连接有助于你的发布站的发展哦! 9):支持文章发布,文章没有内容很难发展起来,每天多发几篇文章百度就常来了哦! 10):支持战歌添加,支持下载管理,支持家族添加等 11):支持图片广告,文字广告,代码样本也已经编写在内有助于你的修改! 实力一.支持会员自助发布,不需要管理审核想发布就发布! 实力二.支持全套套黄连体广告! 实力三.后台一键智能发布开服信息,走在懒人时代让采集插件OUT去吧 实力四.后台支持一条广告多条发布功能 实力五.支持支付宝充值系统(效验码和ID不帮忙开通需要自己到支付宝开通) 实力六.支持后台一键批量修改开服时间,以后不凑采集无效果了,批量修改下开服时间发布站每天都能广告满屏! 还有其他功能就等您购买了自己了解吧O(∩_∩)O哈哈~!! 本程序只有以上功能,其他没提示有的等**后更新在补上! 本系统采用最新防攻击和搜索引辑而开发的新程序,全站采用HTML静态生成系统。 其他页面信息更新及修改完成,后台必须生成其他HTML页 后台地址:**/98youx 账户:admin admin 免费版本不支持任何技术,需要技术支持的请购买商业版本! 由于该程序的特殊性,无法在线升级,也不提供改版补丁,每次更新都如同一款新的程序,所以如您需要的请每次更新后都下载,需要哪个模式的就选择哪款安装架设即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值