Java实现21点多人游戏(期末作业)
事情是起因是一名大学生在摆烂的时候发现距离作业的截止日期只有一天了,于是在最后一个晚上疯狂赶代码,最后成功写出来一个21点的故事。
首先是确定好有这么些类,这些类的一些功能。
首先就单张牌的类
再然后就是一副牌的类
再然后就是玩家的类
最后就是游戏的类
这个就是游戏的结果截图
个人认为的话还是基本实现了老师提出的基本功能。
不足的话就是对异常操作没有进行判断,在无限要牌的情况下不能做出对应的反应。
不过及时是这样,在平时不怎么听课的情况下在一个小时多写出这样的一个程序,个人还是觉得比较满意的。
到了最后就是放代码的时候了
首先是卡片类
class Card{String suit;int rank;public Card(){}Card(String a){this.suit=a;}Card(int b){this.rank=b;}void to_String(){System.out.println(rank+" "+suit);}
}
再然后就是一副牌这个类
class Poker {Card[] card=new Card[52];int index=0;Poker(){for(int i=0;i<52;i++)card[i]=new Card();int c=0;for(int i=0;i<13;i++){for(int e=1;e<=4;e++){String b="";if(e==1)b="黑桃";else if(e==2)b="红心";else if(e==3)b="方块";else if(e==4){b="红桃";}this.card[c].rank=i*4+e;this.card[c].suit=b;c++;}}}void shuffle(){for(int i=0;i<51;i++){for(int e=i+1;e<52;e++){Random rand=new Random();int a=rand.nextInt();int b=rand.nextInt();if(a>b){Card temp=new Card();temp=card[i];card[i]=card[e];card[e]=temp;}}}}Card pop(){//card[index].to_String();Card ch=new Card();ch=card[index];index=(index+1)%52;return ch;}void print(){for(int i=0;i<52;i++){System.out.print(card[i].suit+card[i].rank+" ");if(i%10==0)System.out.printf("\n");}}
}
再然后就是玩家这个类
class Player {String name;//Card cards=new Card();ArrayList<Card> cards=new ArrayList<Card>();Player(){}void add(Card ch){cards.add(ch);}void print(){int n= cards.size();for(int i=0;i<n;i++){System.out.print(cards.get(i).suit+cards.get(i).rank+" ");}System.out.printf("\n");}int decide(Card ch){Scanner sc=new Scanner(System.in);print();System.out.print("按1要牌,按0不要牌");int a=sc.nextInt();if(a==1)add(ch);print();return a;}void sort(){int n=cards.size();for(int i=0;i<n-1;i++){int k=0;for(int e=i+1;e<n;e++){if(cards.get(i).rank>cards.get(e).rank){k=e;}}Collections.swap(cards,i,k);}}int score(){int n=cards.size();int ans=0;for(Card i:cards){ans+=i.rank;}return ans;}
}
再然后就是游戏这个类
class Game{Poker pai=new Poker();int len=0;ArrayList<Player> game=new ArrayList<Player>();Game(){}void add(Player ren){game.add(ren);this.len++;}void initialize(){for(int i=0;i<len;i++){for(int e=0;e<2;e++){game.get(i).add(pai.pop());}}}int dealCards(){int b=0;for(int i=0;i<len;i++){System.out.printf("玩家%d\n",i+1);b+=game.get(i).decide(pai.pop());}if(b==0)return 0;elsereturn 1;}void judgeResult(){int ans=100,index=0,dis=0;for(int i=0;i<len;i++){int m=game.get(i).score();int n=Math.abs(m-21);System.out.printf("玩家%d的点数是%d\n",i+1,m);if(n<ans){ans=n;index=i+1;dis=m;}}System.out.print("赢家是玩家"+index+" ");System.out.print("点数是"+dis);}
}
最后就是主函数了
import java.util.*;
import java.lang.Math;public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);Game game=new Game();System.out.print("输入玩家个数:");int n=sc.nextInt();for(int i=0;i<n;i++){Player players=new Player();game.add(players);}game.initialize();for(int i=0;i<n;i++){System.out.printf("玩家%d的牌是\n",i+1);game.game.get(i).print();}int a=1;while(a>0) {a=game.dealCards();}game.judgeResult();}
}
Java实现21点多人游戏(期末作业)相关推荐
- HTML5期末大作业:仿淘宝电商网站设计——仿淘宝电商管理系统(21页)含论文 HTML+CSS+JavaScript 学生DW网页设计作业成品 大学生网页制作期末作业
HTML5期末大作业:仿淘宝电商网站设计--仿淘宝电商管理系统(21页)含论文 HTML+CSS+JavaScript 学生DW网页设计作业成品 大学生网页制作期末作业 常见网页设计作业题材有 个人. ...
- html网页制作——仿淘宝电商管理系统(21页)含论文 HTML+CSS+JavaScript 学生DW网页设计作业成品 大学生网页制作期末作业C71
HTML5期末大作业:仿淘宝电商网站设计--仿淘宝电商管理系统(21页)含论文 HTML+CSS+JavaScript 学生DW网页设计作业成品 大学生网页制作期末作业 常见网页设计作业题材有 个人. ...
- 东北大学java期末试卷,[东北大学]18年6月考试《Java语言程序设计I》考核作业(答案)...
Java语言程序设计 I 试 卷(作业考核 线上) B 卷 学习中心: 院校学号: 姓名 (共 页) 总分 题号 一 二 三 四 ...
- Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课 ...
- Springboot就业推荐系统qwy6c计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot就业推荐系统qwy6c计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot就业推荐系统qwy6c计算机毕业设计-课程设计-期末作业-毕设程序代做 ...
- Springboot就业招聘信息系统x8y1g计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot就业招聘信息系统x8y1g计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot就业招聘信息系统x8y1g计算机毕业设计-课程设计-期末作业-毕设程 ...
- Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程 ...
- Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做 ...
- Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot课程教学平台设计与实现4mu05计算机毕业设计-课程设计-期末 ...
最新文章
- jackson 解析json问题
- java ucs2转utf8_UCS-2和UTF-8的互相转换
- C++指针与内存泄露
- Java 8 Optional 类
- 李沐《动手学深度学习》新增PyTorch和TensorFlow实现,还有中文版
- 将数组中的值按逆序重新存放
- triggered_time
- simulink学习笔记(2)
- 云队友丨抖音之后,互联网失去创造力
- 如何使用AxureShare+Axure RP 8.0创建团队项目,实现团队协同
- PR转场预设 模仿纸张翻转特效PR视频转场PR预设
- 【操作系统安装与引导】CSM与安全启动对UEFI引导的影响与处理
- 9个offer,12家公司,35场面试,从微软到谷歌
- 专业运动耳机哪个品牌好?运动蓝牙耳机推荐
- 飞思卡尔芯片k66单片机溢出_PWM 初试溢出中断
- cms32L051 掉电深度睡眠的唤醒
- UVA 488 Triangle Wave
- 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
- 微信解除自定义表情150个上限?
- 360极速浏览器用ie8模式打开网页(360浏览器同理)
热门文章
- 【方案】去哪儿网徐磊:如何利用开源技术构建日处理130亿+的实时日志平台?...
- 大于或小于100万,1000万,1亿,10亿,1000亿,万亿,亿亿,10亿亿,100亿亿上下的10个质数(素数)...
- open failed: EACCES (Permission denied)权限已加,写入sd卡仍报错的解决办法
- 东北大学c++实验课最后一次
- 高精度三维扫描仪用于医疗器械注塑件尺寸公差测量
- 正大国际:期货交易为什么小止损大止盈还是无法获利呢?
- mysql status questions_运行中的mysql状态查看
- matlab 画偏振态,MATLAB模拟偏振.doc
- python刷微博转发_一个简单的python刷新浪微博粉丝小程序
- 【python实现网络爬虫22】唯品会商品信息实战步骤详解