博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人机猜拳(这是最近的一个总结)
阅读量:4634 次
发布时间:2019-06-09

本文共 7451 字,大约阅读时间需要 24 分钟。

人机猜拳是我自己原创的一段代码,我刚学完do-while,知识有限,但自己感觉写的这段代码是我的一个小巅峰,发出来让大家看看,新手能学到东西的话是极好的,然后更多的是想让一些老鸟给点建议。这个写代码很枯燥,最近一直在写,自己是深有体会,后来我就在练习的时候在自己的代码里写一些有趣的内容,下面你们能看到,这算是个自娱自乐的小技巧吧。自己也是刚学习没多久,觉得学习不能一个人学,要大家一起学,俗话说:三个臭皮匠顶个诸葛亮,所以今天不仅是来发表一下自己的代码,更重要的是在这里露个脸,和大家认识一下,希望大家能照顾一下我这个菜鸟。废话不多说了,下面是代码:

1 import java.util.Scanner;  2 public class CaiQuan {  3     public static void main(String[] args) {  4         Scanner input=new Scanner(System.in);  5         System.out.println("--------欢迎进入猜拳游戏---------\n\n");  6         System.out.println("  出拳规则:1.剪刀  2.石头  3.布\n");  7         System.out.println("******************************\n");  8         System.out.println("*******  猜拳          开始      ********\n");  9         System.out.println("******************************\n\n"); 10         System.out.println("游戏开始前给自己起一个威武霸气的昵称吧\n"); 11         System.out.println("请输入你的昵称:"); 12         String username=input.next();//让用户输入昵称 13         String name="1";//给name一个初始值,name是computer的名字 14         do{ 15             System.out.println("请选择对战角色(1.刘备  2.曹操  3.盖伦):"); 16             boolean zhenjia=input.hasNextInt();//判断输入是否是数值 17             while(!zhenjia){
//如果不是数字,进入 18 String zhen=input.next(); 19 System.out.println("您输入的是:"+zhen+" 臣妾做不到啊!"); 20 System.out.println("请重新选择角色(1.刘备 2.曹操 3.盖伦):"); 21 zhenjia=input.hasNextInt();//判断输入是否是数值,如果不是 ,继续循环 22 } 23 int num=input.nextInt();//取出的数字 24 while(num>3||num<0){
//判断输入的值是否是1-3,如果不是进入循环 25 System.out.println("臣妾做不到啊!"); 26 System.out.println("请重新选择角色(1.刘备 2.曹操 3.盖伦):"); 27 num=input.nextInt();//输入数值,如果是1-3跳出循环,如果不是继续循环 28 } 29 switch(num){ 30 case 1: 31 name="刘备"; 32 break; 33 case 2: 34 name="曹操"; 35 break; 36 case 3: 37 name="盖伦"; 38 break; 39 } 40 }while(name.equals("1"));//当name不是1时 ,跳出循环 41 System.out.println("你选择了 "+name+"对战"); 42 String go; 43 do{ 44 System.out.println(username+"\tVS\t"+name); 45 //出拳代码 46 int i=1;//i是猜拳的轮数 47 int userScore=0;//用户得分 48 int compScore=0;//computer得分 49 String come;//当come赋值y,继续循环,在下面写着 50 do{ 51 System.out.println("这是第"+i+"轮"); 52 System.out.println("请出拳:1.剪刀 2.石头 3.布"); 53 boolean zhenjia=input.hasNextInt();//判断输入是否是数值 54 while(!zhenjia){
//如果不是数字,进入 55 String zhen=input.next();//把上面的值放入此处,一边下面重新输入 56 System.out.println("您输入的是:"+zhen+" 臣妾做不到啊!"); 57 System.out.println("请重新出拳:1.剪刀 2.石头 3.布"); 58 zhenjia=input.hasNextInt();//判断输入是否是数值,如果不是 ,继续循环 59 } 60 int num=input.nextInt();//取出上面的数值 61 while(num>3||num<0){
//判断输入的值是否是1-3,如果不是进入循环 62 System.out.println("臣妾做不到啊!"); 63 System.out.println("请重新出拳:1.剪刀 2.石头 3.布"); 64 num=input.nextInt();//输入数值,如果是1-3跳出循环,如果不是继续循环 65 } 66 String user="";//储存用户的出拳 67 switch(num){ 68 case 1: 69 System.out.println("你出拳:剪刀"); 70 user="剪刀"; 71 break; 72 case 2: 73 System.out.println("你出拳:石头"); 74 user="石头"; 75 break; 76 case 3: 77 System.out.println("你出拳:布"); 78 user="布"; 79 break; 80 } 81 String comp="";//储存computer的猜拳 82 int numc=(((int)(Math.random()*10))%3+1);//随机产生1-3 83 switch(numc){ 84 case 1: 85 System.out.println(name+"出拳:剪刀"); 86 comp="剪刀"; 87 break; 88 case 2: 89 System.out.println(name+"出拳:石头"); 90 comp="石头"; 91 break; 92 case 3: 93 System.out.println(name+"出拳:布"); 94 comp="布"; 95 break; 96 } 97 if(user.equals(comp)){
//判断双方出拳是否相同 98 System.out.println("双方出拳:"+user+" 本局是平局"); 99 }else{100 if(user.equals("剪刀")){
//当用户出剪刀时101 if(comp.equals("石头")){
//当computer出石头时102 System.out.println(name+"赢了!");103 compScore++;104 }else{
//当computer出布时105 System.out.println("你赢了!");106 userScore++;107 }108 }else if(user.equals("石头")){109 if(comp.equals("布")){110 System.out.println(name+"赢了!");111 compScore++;112 }else{113 System.out.println("你赢了!");114 userScore++;115 }116 }else{117 if(comp.equals("剪刀")){118 System.out.println(name+"赢了!");119 compScore++;120 }else{121 System.out.println("你赢了!");122 userScore++;123 }124 }125 }126 i++;//猜拳轮数增加1127 System.out.println("继续第"+i+"轮 y\n结束 n");128 come=input.next();//当come赋值y,继续循环129 }while("y".equals(come));//判断come的值是否是y,如果是 ,继续循环,否则跳出循环130 System.out.println("游戏进行了"+(i-1)+"轮");131 System.out.println("姓名\t得分");132 System.out.println(username+"\t"+userScore);133 System.out.println(name+"\t"+compScore);
1        if(userScore==compScore){
//当得分一样的情况,这是修改后添加的代码2 System.out.println("你和"+name+"打了个平手");3 System.out.println("这怎么能忍,打爆他才有快感");4 System.out.println(" 继续y/认怂了n");5 }else if(userScore>compScore){
135                 System.out.println("你把"+name+"打的落花流水");136                 System.out.println("\t你tm帅呆了");137                 System.out.println("再打"+name+"一局就把他打成猪头了 \n  继续y/认怂了n");138             }else{139                 System.out.println("你被"+name+"打成猪头了");140                 System.out.println("复仇y/认怂n");141             }142             go=input.next();143         }while("y".equals(go));144         System.out.println("GAME OVER!");145     }//mian146 147 }

 下面运行代码:

然后输入一个昵称:

下面让用户选择一个角色进行对战,只有1.2.3.三个选项,我先输入一个4,看看效果:

你看,当我输入的不是1.2.3.的时候,它提示你“臣妾做不到啊”,然后让你重新选择:

我输入1:

我选择了刘备,然后出拳:

 

 然后输入n结束游戏:

这里出现了点小问题,我没有考虑到两人分数相同的情况,

这是我复仇的结果,然后在输入n,结束游戏:

上面修改了当得分一样的情况

代码还有很多问题,之后我会继续修改

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

转载请注明出处!

转载于:https://www.cnblogs.com/ln-ing/p/6159960.html

你可能感兴趣的文章
一道SQL统计试题
查看>>
OO第二次博客作业
查看>>
mysql 批量更新数据类型
查看>>
HDU 1273 漫步森林
查看>>
Bootstrap4.x 新增
查看>>
太久没来了,好尴尬呀
查看>>
django 链接地址匹配流程
查看>>
图片和文件上传的两款插件
查看>>
简析平衡树(三)——浅谈Splay
查看>>
The Knuth-Morris-Pratt Algorithm in my own words(转)
查看>>
374. Guess Number Higher or Lower
查看>>
目标反射回波检测算法及其FPGA实现 之一:算法概述
查看>>
php去除字符串首尾空格(包括全角)(转)
查看>>
第十一章
查看>>
.net实现跨页面传值
查看>>
第一篇博客,纪念一下,终于开通啦!
查看>>
0x22 迭代加深
查看>>
名字的漂亮度
查看>>
Python List append()方法
查看>>
产品经理之我见
查看>>