Java实现简易21点比大小游戏。(玩家VS电脑),2024年最新linux面试题必会题目

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

@Override

public String toString() {

String info=“[暗牌,”;

for (int i = 0; i < pokers.length; i++) {

info+=pokers[i].toString();

if(i!=pokers.length-1) {

info+=“,”;

}

}

return this.name+“\n”+

info+“]”;

}

public String getInfo() {

return this.name+“:\n”+

Arrays.toString(this.pokers);

}

/**

  • 计算点数

*/

public int getPointers() {

int pointers=0;

int countA=0;

for(Poker poker:pokers) {

//判断是否为A

if(poker.getNumber()==1) {

pointers+=11;

countA++;

}else if(poker.getNumber()>10) {

pointers+=10;

}else {

pointers+=poker.getNumber();

}

}

//判断总点数是否大于21,如果是则减去含有A个数的10

if(pointers>21) {

pointers-=countA*10;

}

return pointers;

}

/**

  • 收牌

*/

void getPoker(Poker poker) {

if(this.pokers==null) {

this.pokers=new Poker[1];

}else {

//新建数组

Poker[] newArray=new Poker[pokers.length+1];

//将原有牌赋予新数组

for (int i = 0; i < pokers.length; i++) {

newArray[i]=pokers[i];

}

//让扑克数组,指向新数组

pokers=newArray;

}

//将新牌赋予最后一个数组位置

pokers[pokers.length-1]=poker;

}

}

Poker:(扑克类)

public class Poker implements Comparable {

//花色四种:0-3

private int type;

//点数:1-13

private int number;

public Poker() {}

public Poker(int type, int number) {

this.type = 0;

this.number = 1;

if (type < 0 || type > 3 || this.number < 1 || this.number > 13) {

return;

}

this.type = type;

this.number = number;

}

public int getType() {

return type;

}

public void setType(int type) {

this.type = type;

}

public int getNumber() {

return number;

}

public void setNumber(int number) {

this.number = number;

}

@Override

public String toString() {

String[] types = {“♠”, “♥”, “♣”, “♦”};

String[] pointers = {“A”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “J”, “Q”, “K”};

return types[this.type] + pointers[this.number-1];

}

@Override

public int compareTo(Object o) {

if(o==null) {

return -1;

}

if(!(o instanceof Poker)) {

return -1;

}

if(Math.random()>=0.5) {

return 1;

}

return -1;

}

}

RunGame(主游戏界面类)

import java.util.Arrays;

import javax.swing.JOptionPane;

public class RunGame {

//玩家

private static Play mine;

//电脑

private static Play computer;

//扑克

private static Poker[] pokers;

// 当前可以发牌的位置

private static int pokersIndex = 0;

// 计算机要牌的上限

private static int LIMIT_POINTER = 10;

public static void main(String[] args) {

// 初始化游戏

initGame();

// 显示界面

viewGame();

}

/**

  • 显示界面

*/

private static void viewGame() {

boolean flage=true;

while(flage) {

String info=“---------------21点游戏-----------------\n”+

computer+“\n”+mine.getInfo()+“\n”+“1\t要牌\t2.停牌”;

String input=JOptionPane.showInputDialog(info);

if(input==null||input.trim().isEmpty()) {

JOptionPane.showMessageDialog(null, “请正确输入”);

continue;

}

switch(input.trim().charAt(0)){

case ‘1’:

//自己要牌

mine.getPoker(pokers[pokersIndex++]);

//电脑要牌

if(computer.getPointers()<LIMIT_POINTER) {

computer.getPoker(pokers[pokersIndex++]);

}

break;

case ‘2’:

//电脑判断是否需要牌

while(computer.getPointers()<LIMIT_POINTER) {

computer.getPoker(pokers[pokersIndex++]);

}

//判断输赢

boolean isWin=true;

if(computer.getPointers()==21) {

//判断谁是 black jack 谁赢,如果都是 black jack 则电脑赢。

isWin=false;

}else if(mine.getPointers()>21) {

isWin=false;

}else if(computer.getPointers() < 21) {

isWin=mine.getPointers()>computer.getPointers();

}

//比较点数,提示结果

info=“---------你”+(isWin?“赢了”:“输了”)+“--------------------\n”+

computer.getInfo()+" :“+computer.getPointers()+”\n"+

mine.getInfo()+" :"+mine.getPointers()+“点”;

JOptionPane.showMessageDialog(null, info);

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

MySQL50道高频面试题整理:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

MySQL50道高频面试题整理:

[外链图片转存中…(img-6V7d5UUu-1713622492800)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-NEKLvnnU-1713622492801)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值