java做一个游戏怎么java获取访问用户的ip用户输入

&>&用户注册、登录、游戏Demo(Java实现)
用户注册、登录、游戏Demo(Java实现)
上传大小:11KB
这个小程序是一个用于演示登陆、注册、退出等小功能的一个程序。
进入test/UserTest.java并且运行起来main函数就可以玩了。
便于学习Java的小白快速上手,这个小程序不涉及到数据库,所以解压即运行,运行即出效果。
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:3
综合评分:
积分/C币:2
VIP会员动态
热门资源标签
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
用户注册、登录、游戏Demo(Java实现)
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
用户注册、登录、游戏Demo(Java实现)为了账号安全,请及时绑定邮箱和手机
点击这里,将文章分享到自己的动态
JAVA第三季7-1简易扑克牌游戏,能实现用户自定义玩家个数及玩家的手牌数量
创建了手牌集合Card,拥有点数point和花色suit属性;创建的玩家集合Player,拥有编号id和姓名name属性还有玩家手牌集合cards。
游戏中用户可以定义玩家数量和玩家要比较的手牌数量。且必须为整型,否则报错。若用户输入的玩家ID重复则提示重新输入。
附有运行结果预览图。
代码中有部分注释,若有不懂可以互相交流。还写了教学视频中老师要求的两名玩家每人两张手牌的游戏代码,如有需要,可以交流。
请多指教!
public class Card {
public Card(String suit,String point) {
this.suit=
this.point=
public String toString() {
return suit+point+" ";
import java.util.ArrayL
import java.util.L
public class Player {
public List&Card&
public Player(int id,String name) {
this.name=
this.cards=new ArrayList&Card&();
public String toString() {
import java.util.ArrayL
import java.util.InputMismatchE
import java.util.L
import java.util.R
import java.util.S
public class Game {
* 1、创建一副扑克牌包括
* 四种花色:黑桃、红桃、梅花、方片
* 十三种点数:2-10,J、Q、K、A,不考虑大小王
* 2、创建两名玩家
* 玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合
* 将之前创建的“一副扑克牌”打乱顺序
* 4、将洗牌之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张
* 比较两名玩家手中的扑克牌,规则:去两人各自手中点数最大的牌进行比较,
* 点数大的赢;若两人各自的点数最大的牌相等,则再按花色比较(黑、红、梅、方)。
List&Card& cardToSelect=new ArrayList&Card&();//正序的手牌集合
List&Card& selectedCard=new ArrayList&Card&();//洗牌后乱序的手牌集合
List&Player& playerList=new ArrayList&Player&();//游戏玩家集合
Random random=new Random();
int playerN//玩家个数
int cardN//玩家拥有的牌数
public Game() {
String[] suit= {"黑桃","红桃","梅花","方片"};
String[] point= {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
public void cardAdd() {
* 将按顺序生成的手牌加入正序的手牌集合并输出
System.out.print("[");
for(int i=0;i&4;i++) {
for(int j=0;j&13;j++) {
Card card=new Card(suit[i],point[j]);
cardToSelect.add(card);
System.out.print(card);
System.out.print("]");
int randomI
Card randomC
while(k&52) {
randomIndex=random.nextInt(52);
randomCard=cardToSelect.get(randomIndex);
}while(selectedCard.contains(randomCard));//避免重复的手牌出现
selectedCard.add(randomCard);
public void playerPut() {
* 创建玩家(包括ID和姓名)
* ID要求为整型,若不符合则向用户提示错误
* 并使用foreach遍历playerList玩家集合,欢迎玩家
Scanner console=new Scanner(System.in);
System.out.println("请输入游戏将创建的玩家位数:");
playerNum=console.nextInt();
System.out.println("请输入每位玩家将拥有的牌数:");
cardNum=console.nextInt();
while(i&=playerNum) {
System.out.println("请输入第"+i+"位玩家的ID和姓名:");
System.out.println("输入ID:");
int ID=console.nextInt();
boolean flag=
for(int j=0;j&playerList.size();j++) {
if(playerList.get(j).id==ID) {
System.out.println("该ID已被占用!");
if(flag) {
System.out.println("输入姓名:");
String name=console.next();
Player newplayer=new Player(ID,name);
playerList.add(newplayer);
}catch(InputMismatchException e) {
System.out.println("请输入整数类型的数字!");
playerPut();
for (Player player : playerList) {
System.out.println("欢迎ID为"+player.id+"的玩家:"+player.name);
public void dealCard() {
* 为每位玩家发相应的手牌,一人一张地分发
* 并储存在每位玩家的手牌集合cards中
while(i&cardNum) {
for(int j=0;j&playerNj++) {
System.out.println("——玩家:"+playerList.get(j).name+"—拿牌
拿到的牌为:"+selectedCard.get(j+i*playerNum));
playerList.get(j).cards.add(selectedCard.get(j+i*playerNum));
public void playGame() {
int p[]=new int[cardNum];//玩家的手牌的点数索引
int s[]=new int[cardNum];//玩家手牌的花色索引
int maxp[]=new int[playerNum];//所有玩家最大手牌的点数索引
int maxs[]=new int[playerNum];//所有玩家最大手牌的花色索引
List&Card& maxCard=new ArrayList&Card&();
for(int i=0;i&playerNi++) {
for(int m=0;m&cardNm++) {
* 若玩家的第m张牌的点数和花色等于正序的点数point和花色suit数组中的元素
* 则将该元素的索引储存在玩家手牌的点数和花色索引数组p和s中,其为后续比较大小的重要依据
for(int j=0;j&point.j++) {
if(playerList.get(i).cards.get(m).point==point[j]) {
for(int j=0;j&suit.j++) {
if(playerList.get(i).cards.get(m).suit==suit[j]) {
* 默认玩家最大手牌为第一张手牌
* 若第一张牌不是最大,则将第一张牌的索引换成最大的那张手牌的索引
* 且将最大的手牌索引存储在最大点数和花色索引数组maxp和maxs中以备后续各位玩家之间的最大手牌的大小比较
int ptemp,
int index=0;
for(int m=1;m&cardNm++) {
if(p[0]&p[m]) {
ptemp=p[m];
p[m]=p[0];
stemp=s[m];
s[m]=s[0];
}else if(p[0]==p[m]) {
if(s[0]&s[m]) {
ptemp=p[m];
p[m]=p[0];
stemp=s[m];
s[m]=s[0];
maxCard.add(playerList.get(i).cards.get(index));
maxp[i]=p[0];//将玩家的最大手牌的点数索引添加进最大点数索引数组maxp中,以待后续比较
maxs[i]=s[0];//将玩家的最大手牌的花色索引添加进最大花色索引数组maxs中,以待后续比较
System.out.println("玩家:"+playerList.get(i).name+"最大的手牌为:"+maxCard.get(i));
int maxIndex=0;
int maxptemp,
for(int i=1;i&playerNi++) {
if(maxp[0]&maxp[i]) {
maxIndex=i;
maxptemp=maxp[i];
maxp[i]=maxp[0];
maxstemp=maxs[i];
maxs[i]=maxs[0];
}else if(maxp[0]==maxp[i]) {
if(maxs[0]&maxs[i]) {
maxIndex=i;
maxptemp=maxp[i];
maxp[i]=maxp[0];
maxstemp=maxs[i];
maxs[i]=maxs[0];
System.out.println("————————————玩家"+playerList.get(maxIndex).name+"获胜!————————————");
System.out.println("——————所有玩家手牌中最大的为:"+maxCard.get(maxIndex)+"——————");
System.out.println("玩家各自的手牌为:");
for (int j=0;j&playerNj++) {
System.out.print(playerList.get(j).name+"的手牌为:[");
for(int m=0;m&cardNm++) {
System.out.print(playerList.get(j).cards.get(m)+" ");
System.out.println("]");
public static void main(String[] args) {
// TODO Auto-generated method stub
Game game=new Game();
System.out.println("————————————创建扑克牌————————————");
System.out.println("———————————扑克牌创建成功———————————");
game.cardAdd();
System.out.println();
System.out.println("————————————开始洗牌—————————————");
System.out.println("————————————洗牌结束—————————————");
System.out.println("————————————创建玩家—————————————");
game.playerPut();
System.out.println("————————————开始发牌—————————————");
game.dealCard();
System.out.println("————————————发牌结束—————————————");
System.out.println("————————————开始游戏—————————————");
game.playGame();
命令输入错误的结果预览:
用户输入的玩家ID若重复的结果预览:
正常运行结果预览(设定为4位玩家,每人7张牌):
若觉得本文不错,就分享一下吧!
评论加载中...
相关文章推荐
正在加载中
作者相关文章游戏要求:1.有猫和狗两个对象,两者一言不合就开战,猫和狗都有一定的HP;
2.猫和狗都有一定的攻击力;
3.猫和狗谁先发起攻击,是随机的,猫先发起攻击的概率为60%,狗先发起攻击的概率为40%;
计算:谁先挂掉,某个动物先挂掉之后,输出分别攻击了多少次
4.每次攻击发出叫声(当发出叫声为三个汉字的时候,攻击力增加20%,反之不增加,叫声为三个汉字的概率为30%)
思路分析:
需要用到的java文件:
1.主文件CoreJava07.java,是实现程序的主入口;2,Cat.java,是我们的猫类;3,Dog,java,是我们的狗类;4,AttackFlow.java,这是我们的攻击操作类
主文件:主要包含了我们的主程序main函数
cat类:包含我们起初定义的HP和攻击力POWER属性,以及一个攻击方法attack,增加攻击统计AttackCount,再次增加catboomCount.
所以完整的cat代码如下:
public class Cat {//猫的血量//猫的攻击力private long attachC//猫的攻击次数private long catboomC//统计猫的暴击次数public long getBoomCount() {return catboomC}public void setBoomCount(long boomCount) {this.catboomCount = boomC}public Cat(double hp, double power) {//构造函数,传参数this.hp =this.power =}public double getHp() {}public void setHp(double hp) {this.hp =}public double getPower() {}public void setPower(double power) {this.power =}public void attack(Dog dog) {//获取狗的血量,然后减血if (hp & 0) {System.out.println("猫发起攻击******");attachCount++;double dogCurrentHP = dog.getHp();if(isBoomAttack()){catboomCount++;System.out.println("猫发生暴击****");dogCurrentHP = dogCurrentHP - power*1.2;}else{dogCurrentHP = dogCurrentHP -}dogCurrentHP = dogCurrentHP -dog.setHp(dogCurrentHP);System.out.println("狗剩余的生命值:"+dog.getHp());}}/*** 暴击概率计算,返回是否发生暴击* @fasle*/private boolean isBoomAttack(){boolean isBoomAttack=int random=(int)(Math.random()*10);if(random&=2){isBoomAttack=}return isBoomA}public long getAttachCount() {return attachC}public void setAttachCount(long attachCount) {this.attachCount = attachC}
Dog类和猫类一样;
public class Dog {//血量//攻击力private long attachC//统计攻击次数private long dogboomC//统计狗的暴击次数public long getBoomCount() {return dogboomC}public void setBoomCount(long boomCount) {this.dogboomCount = boomC}public Dog(double hp, double power) {this.hp =this.power =}// 将猫的实例化对象传进来,因为狗攻击时,需要猫的hp下降;// 方案1.将正在打架的猫的实例化对象传进来// 方案2,不传猫进来,将猫的当前血量(被攻击前)传进来,然后再送回去,重新赋值给猫public void attack(Cat cat) {if (hp & 0) {System.out.println("狗发起攻击");attachCount++;double catCurrentHP = cat.getHp();if(isBoomAttack()){dogboomCount++;System.out.println("狗发生暴击");catCurrentHP = catCurrentHP - power*1.2;}else{catCurrentHP = catCurrentHP -}cat.setHp(catCurrentHP);System.out.println("猫剩余生命值:"+cat.getHp());}}/*** 暴击概率计算,返回是否发生暴击* @fasle*/private boolean isBoomAttack(){boolean isBoomAttack=int random=(int)(Math.random()*10);if(random&=2){isBoomAttack=}return isBoomA}public long getAttachCount() {return attachC}public void setAttachCount(long attachCount) {this.attachCount = attachC}public double getHp() {}public void setHp(double hp) {this.hp =}public double getPower() {}public void setPower(double power) {this.power =}
最后的AttackFlow类定义了我们的攻击顺序,主要包含利用随机数,实现猫和狗随机发起攻击;
* 这是攻击顺序类
* @author Administrator
public class AttackFlow {public static int randomAttack() {// result=1,猫攻击,2,狗攻击int result = 0;int type = (int) (Math.random() * 10);// [0,10)if (type & 5) {type = 2;} else {type = 1;}switch (type) {case 1:result = 1;case 2:result = 2;}}public static void startGame() {//开始游戏Dog dog = new Dog(1);Cat cat = new Cat();int whoFirst = AttackFlow.randomAttack();//获取谁先攻击while (dog.getHp() & 0 && cat.getHp() & 0) {switch (whoFirst) {case 1:cat.attack(dog);dog.attack(cat);case 2:dog.attack(cat);cat.attack(dog);default:System.out.println("ERROR:1
攻击参数出错");}}if (dog.getHp() &= 0) {System.out.println("狗死了");System.out.println("狗攻击次数为:"+dog.getAttachCount());System.out.println("猫剩余血量为:"+cat.getHp());System.out.println("猫攻击次数为:"+cat.getAttachCount());} if (cat.getHp() &= 0) {System.out.println("猫死了");System.out.println("猫攻击次数为:"+cat.getAttachCount());System.out.println("狗剩余血量为:"+dog.getHp());System.out.println("狗攻击次数为:"+dog.getAttachCount());} System.out.println("猫暴击次数为:"+cat.getBoomCount());System.out.println("狗暴击次数为:"+dog.getBoomCount());}
其次为了避免主程序过于冗余,我们在AttackFlow类中,定义了一个静态方法start来开启游戏,在这个start里面我们要实现判断谁先死,然后输出猫和狗各输出了多少次,以及没死的动物还剩多少血,在这里我们引入了统计攻击次数的变量AttackCount.
为了实现第三个功能,就是实现暴击,我们首先明白我们的攻击的实现,我们选择将猫和狗分别作为参数传入攻击方法,用CurrentHP接受传进来的猫或者狗的血量,然后减去攻击力,然后送还给原来的数,
注意的地方:1,我们加了个if判断,防止在进行攻击时,猫进行了狗的最后一次攻击,把狗打死了,可是因为程序的执行顺序,狗死了之后依然发出了攻击,所以我,我们使用了一个判断在攻击方法里面,在攻击之前进行判断,如果血量低于0则攻击无效(下面的红色代码)
1.我们的第三个功能是暴击,第一步,先利用随机数实现暴击的概率,封装成一个方法,然后再攻击力里面进行判断,如果出发暴击方法,则在原来的减法上,提升攻击力到120%;(下图的黄色代码区)
因为发生了暴击事件,我们最后要输出暴击次数,所以在猫和狗类中增加暴击次数统计catboomCount
attack方法:
public void attack(Dog dog) {//获取狗的血量,然后减血if (hp & 0) {System.out.println("猫发起攻击******");attachCount++;double dogCurrentHP = dog.getHp();if(isBoomAttack()){catboomCount++;System.out.println("猫发生暴击****");dogCurrentHP = dogCurrentHP - power*1.2;}else{dogCurrentHP = dogCurrentHP -}dogCurrentHP = dogCurrentHP -dog.setHp(dogCurrentHP);System.out.println("狗剩余的生命值:"+dog.getHp());}}
主程序代码实现:
public class CoreJava07 {public static void main(String[] args) {AttackFlow.startGame();}
通过游戏学java(适合初学者)
java小游戏开发,完整版 (初学者正在努力中)
JAVA学习之路-简单的城堡游戏(一)
JavaSE小项目(小游戏)
十款经典游戏的Java版本(开源)
如何用java编写小游戏
没有更多推荐了,用java制作一个小游戏 教学_百度知道
用java制作一个小游戏 教学
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:42
static Scanner in =new Scanner(System.in);public static int aaa(){int c = 0;while(true){try {if(c&999&&c&10000){}else{// System.out.println(&请输入4位整数&);c= in.nextInt();if(c&999&&c&10000){}else{System.out.println(&输入有误,请重新输入4位整数&);}}} catch (Exception e) {System.out.println(&请输入整数&);c= in.nextInt();}}//in.close();}public static void cai(){//Scanner sa =new Scanner(System.in);int haoma=(int)(Math.random()*10000);if(haoma&999){haoma = Integer.parseInt(String.valueOf(haoma)+&0&);}System.out.println(haoma);System.out.println(&请输入一位4位整数&);int aa
= 0;while(true){aa= aaa();String pd=String.valueOf(aa);if(pd.length()!=4){aa = aaa();}else{}}while(true){if(aa==haoma){System.out.println(&你猜对了,可以去买彩票了&);}else{System.out.println(&抱歉 , 你猜错了&);}System.out.println(&是否继续1继续 其他结束&);try {int ss = in.nextInt();if(ss==1){cai();}else{}} catch (Exception e) {in.close();}}}public static void main(String[] args) {System.out.println(&欢迎来到猜号小游戏&);cai();System.out.println(&over&);}
可是我不会做
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 java获取当前用户 的文章

更多推荐

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

点击添加站长微信