【幻化万千戏红尘】第一周小项目

1、设计猜拳游戏:
游戏说明:

类型:剪刀1、石头2、布3
其中:
剪刀----布----结果---赢
石头----剪刀--结果---赢
布------石头--结果---赢
相同就是平局
其他就是输

本系统采用人机对战
电脑每局的结果就是通过随机数来完成
玩家的结果是通过键盘输入对象的编号
通过一定的方法来验证输赢的结果
循环进行

退出的条件:
1.自愿退出
2.输的达到10次的时候
 A:退出
 B:重新开始

扩展:要求支持金额充值
玩家可以指定每次的赌注

注意:随机数,可以使用Math.random():返回[0.0,1.0)
也可以导包
import java.util.Random;
在方法内部:
Random rm=new Random();
int num=rm.nextInt(10);//获取随机数,范围[0,10)

import java.util.Scanner;
import java.util.Random;
class jianDaoShiTouBuYouXi
{
 public static void main(String[] args)
 {
  int count=0;
  boolean p=true;
  int money=0;
  Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的金钱:");
  money = sc.nextInt();

out:while(p)
  {
    
     if(money<=0)
     {
          System.out.println("你的金钱太少了,请重新

充值!赌博有风险,请慎重考虑,都是血汗钱。确认充值请按“y”,退出游

戏请按其它键");
                char jq = sc.next().charAt(0);
    if(jq == ‘y‘)
    {
         System.out.println("请输入要充

值的金额:");
      int m = sc.nextInt();
         money += m;
      System.out.println("目前金

额为:"+money);
    }
                else
    {
        break out;
    }
    
     }
    
     int xz = 0;
           System.out.println("玩家请下注!!!(赔率一赔一)");
           xz = sc.nextInt();
     while(xz > money)
     {
        System.out.println("输入金钱错误,你的金钱小

于下注金额,请重新输入");
     xz = sc.nextInt();
     }
  outt:while(true)
  {
     while(count==10)
        {
      System.out.println("你已经输了十

次,请选择:A:退出  B:重新开始");
      char cx = sc.next().charAt(0);
      if(cx==‘A‘)
      {
           break out;
      }
      else if(cx==‘B‘)
      {
          count=0;
        continue out;
      }
                   else
       {
          System.out.println("输入字符

出错,请重新输入");
       }
   
         }
    
     Random rm = new Random();
     int jj = rm.nextInt(3);//获取随机数,范围[0,3)
     System.out.println("请输入剪刀石头布代表的数字:

1:剪刀。2:石头。3:布。");
     int jd = sc.nextInt();//获取输入的数字
    
  switch(jd)
    {
   
   case 1:switch(jj)//剪刀、输入的
   {
      case 1:System.out.println("你是剪

刀"+"---"+"我是剪刀"+"---"+"平局");break;//剪刀
               case 2:System.out.println("你是剪刀"+"---"+"我是石头

"+"---"+"你输了!!!");
      money -= xz;
      count++;break;//石头
      case 0:System.out.println("你是剪

刀"+"---"+"我是布"+"---"+"你赢了!");
      money +=xz;
      break;//布

};
   System.out.println("你目前剩余的金钱

为:"+money);
   System.out.println("退出游戏?请按下y,否则

按下其它键则继续游戏");
   char an = sc.next().charAt(0);
   if(an==‘y‘)
   {
    break out;
   }
   break outt;
   
   case 2:switch(jj)//石头
   {
      case 1:System.out.println("你是石

头"+"---"+"我是剪刀"+"---"+"你赢了!");
      money +=xz;
      break;//剪刀
               case 2:System.out.println("你是石头"+"---"+"我是石头

"+"---"+"平局");break;//石头
      case 0:System.out.println("你是石

头"+"---"+"我是布"+"---"+"你输了!!!");
      money -= xz;
      count++;break;//布
   };
   System.out.println("你目前剩余的金钱

为:"+money);
   System.out.println("退出游戏?请按下y,否则

按下其它键则继续游戏");
   char bn = sc.next().charAt(0);
   if(bn==‘y‘)
   {
    break out;
   }
   break outt;
   case 3:switch(jj)//布
   {
      case 1:System.out.println("你是

布"+"---"+"我是剪刀"+"---"+"你输了!!!");
      money -= xz;
      break;//剪刀
               case 2:System.out.println("你是布"+"---"+"我是石

头"+"---"+"你赢了!");
      money +=xz;
      break;//石头
      case 0:System.out.println("你是

布"+"---"+"我是布"+"---"+"平局");count++;break;//布
   };
   System.out.println("你目前剩余的金钱

为:"+money);
   System.out.println("退出游戏?请按下y,否则

按下其它键则继续游戏");
   char cn = sc.next().charAt(0);
   if(cn==‘y‘)
   {
    break out;
   }
   break outt;
   default:System.out.println("输入数字出错了

,请重新输入!!!");continue outt;
    }

}

}

System.out.println("谢谢使用本游戏,欢迎下次再来!

!!");
  
  
 }
 
}

2、万年历。[周末]
万年历
a:先输出提示语句,并接受用户输入的年、月。
b:根据用户输入的年,先判断是否是闰年。(闰年2月有29天,平年2月有28天

);
C:根据用户输入的月来判断月的天数。
D:用循环计算用户输入的年份距1900年1月1日(星期一)的总天数。*
E:用循环计算用户输入的月份距输入的年份的1月1日共有多少天。*
F:相加D与E的天数,得到总天数。
G:用总天数来计算输入月的第一天的星期数。
H:根据G的值,格式化输出这个月的日历!*
 H提示:
 1.如果当月1日如果不是周日先打印第一行,再打印后面的
 (1)startDay=0~5,先打印若干个空格,startDay==0时,是星期一,应

该在星期日处打印一个空格,以此类推[0~startDay+1)
 (2)再打印第一行的日期[1,7-startDay)
 (3)打印换行
 (4)第一行打印的天数为:1~(6-startDay),所以第二行从7-startDay

开始打印,打印到当月总天数为止,每7个换行
 2.如果startDay是6(周日),直接从1日开始打印到最后一天,每7个换


 
提示:当月1日如果不是周日,应循环输出\t以便对齐
当月1日的星期数加上日期的号,如果能被7整除,则应换行.

import java.util.Scanner;
class wannianli
{
 public static void main(String[] args)
 {
  System.out.println("请输入年份和月份:");
        Scanner sc = new Scanner(System.in);
  int days = 0;
  System.out.println("请输入年份:");
  int age = sc.nextInt();
  System.out.println("请输入月份:");
  int month = sc.nextInt();
  int day=0,mday=0,mmday=0;
  
  for(int i=1900;i<age;i++)
  {
     
    days += allDay(i);
  }
  
  //for(int j=1;j<=month;j++)
  
             if(age%4==0 && age%100!=0 || age%400==0)
   {
              for(int i=1;i<=month;i++)
    {
                   mmday +=mrDay(i);
       mday = mrDay(i);
       days += mday;
       }
   }
   else
   {
      for(int i=1;i<=month;i++)
    {
                   mmday +=mpDay(i);
       mday = mpDay(i);
       days += mday;
       }
   }
  
  
  System.out.println("用户输入的月份距输入的年份的1月

1日共有"+mmday+"天");
  System.out.println("用户输入的年份距1900年1月1日的

总天数为:"+days);
  
  System.out.println("用户输入的年份的月份距1900年1月

1日的总天数为:"+days);
  System.out.println();
  System.out.println();
  System.out.println("--------------"+month+"月日

历"+"---------------");
  System.out.println();
  int day1=(days-mday)%7+1;//总天数减去这个月的天数再

求余7+1==这个月第一天是星期几
  System.out.println(" 日   一   二   三   四   五

六  \n");
        int cnt=0;
  for(int i=0;i<day1;i++){
   if(day1==7)break;
   cnt++;
   System.out.print("     ");//五个字符空格,

要与上面日历标题符合
  }
  for(int i=1;i<=mday;i++){
   if(i<10)System.out.print("  "+i+"  ");
   else System.out.print(" "+i+"  ");
   cnt++;
   if(cnt%7==0)System.out.println("\n");
  }

}
 public static int allDay(int age)
 {
      int num =0;
   if(age%4==0 && age%100!=0 || age%400==0)
   {
             num = 366;
   }
   else
   {
       num =365;
   }
   return num;
 }
 
 
 
 
 
 
 
 
 
 public static int mrDay(int j)
 {
  int day=0;
  switch(j)
  {
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:day=31;break;
   case 4:
   case 6:
   case 9:
   case 11:day=30;break;
   case 2: day=29;break;
             default:System.out.println("月份输入出错,请重新输

入");
  }
  return day;
 }
 public static int mpDay(int j)
 {
  int day=0;
  switch(j)
  {
   case 1:
   case 3:
   case 5:
   case 7:
   case 8:
   case 10:
   case 12:day=31;break;
   case 4:
   case 6:
   case 9:
   case 11:day=30;break;
   case 2: day=28;break;
             default:System.out.println("月份输入出错,请重新输

入");
  }
  return day;
 }
}

/**

switch(month)
  {
   case 12:mmday=31;maday+=mmday;
   case 11:mmday=30;maday+=mmday;
   case 10:mmday=31;maday+=mmday;
   case 9:mmday=30;maday+=mmday;
   case 8:mmday=31;maday+=mmday;
   case 7:mmday=31;maday+=mmday;
   case 6:mmday=30;maday+=mmday;
   case 5:mmday=31;maday+=mmday;
   case 4:mmday=30;maday+=mmday;
   case 3:mmday=31;maday+=mmday;
   case 2:if(age%4==0 && age%100!=0 || age

%400==0)
             {
                       mmday=29;maday+=mmday;
              }
     else
     {
      mmday=28;maday

+=mmday;
     }
    case 1:mmday=31;maday+=mmday;break;
  }

*/

3、猴子吃桃问题。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又

多吃了一个。第二天又将剩下的吃了一半又多吃了一个,以后每天早上都吃

了前一天剩下的一半零一个。到第10天早上再想吃时,就剩下一个桃子了。

求第一天共摘了多少个桃子?

class houzi
{
 public static void main(String[] args)
 {
  /**猴子吃桃问题。猴子第一天摘下若干桃子,
  当即吃了一半,还不过瘾,又多吃了一个。
  第二天又将剩下的吃了一半又多吃了一个,
  以后每天早上都吃了前一天剩下的一半零一个
  。到第10天早上再想吃时,就剩下一个桃子了。
  求第一天共摘了多少个桃子?*/
  int num = 1;
  for(int i=9;i>0;i--)
  {
    num = (num+1)*2;

}
  System.out.println(num);
  
 }
}

时间: 2024-08-25 21:43:28

【幻化万千戏红尘】第一周小项目的相关文章

【幻化万千戏红尘】qianfengDay25-HTML基础学习:

Tomcat:服务器 免费 主要运行B/S程序 目录说明: bin:执行文件 lib:第三方的jar包 webapps:发布的项目 网络程序结构: 1.B/S 2.C/S HTML:超文本标记语言 (HyperText Markup Language) 超文本:包含音频.视频.图片等内容 Html主要用来做网页(描述信息),后缀名:.html或.htm HTML的语法规则: 1.不区分大小写 2.由固定标签组成(不允许自定义标签) 3.标签有开始也有结束 4.属性的值都得用双引号 5.标签允许嵌

【幻化万千戏红尘】qianfeng-Android-Day08-基础学习:ListView

ListView 一.ListView介绍: (一). ListView 概念: ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView.它以垂直列表的方式列出所需的列表项. java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends android.widget.Adapter> ? android.w

【幻化万千戏红尘】qianfengDay27-HttpURLConnection,OkHttpClient,,多线程下载且断点续传基础学习:

课程回顾: Servlet:java语言开发的运行在服务器上的开发步骤:1.创建Servlet类2.重写doGet或doPost方法3.运行在服务器 生命周期:1.初始化2.服务3.销毁 URL:统一资源定位符,网址openConnection 今日内容:Http协议:超文本传输协议常用方式:1.HttpURLConnection2.okHttp HttpURLConnection的使用步骤:1.创建URL对象---URL url=new URL("网址");2.获取连接对象--Htt

【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式

课程回顾: 接口:1.属性:public\static\final2.方法:public\abstract 多态:1.静态化(编译时)多态重载2.动态化(运行时)多态重写对象转型 1.向上转型 2.向下转型 今日内容:内部类:定义在类的内部的类1.成员内部类格式:[修饰符] class 类名 { }内部不能有静态的属性和方法,可以访问外部类的属性,也可以调用外部类的方法 在静态方法中的使用格式:外部类 外对象=new 外部类();成员内部类 对象名=外对象.new 成员内部类(); 2.静态内部

【幻化万千戏红尘】qianfeng-Android-Day01-安卓历史及环境的搭建基础学习:

1.数据类型:   集合 2.io 3.多线程 1.方法有没有可能被多个线程调用 4.网络: 1.http协议 2.即时通讯协议 mqtt 3.webservice 5.数据解析 xml webservice json 字符集 unicode  utf-8 6.操作系统的进程和线程的关系 java里线程的入口函数是run函数线程是并行运行的 6.java面向对象=java代码复用 7.非计算机专业的看这几本书 计算机原理 2.linux操作系统原理 3.编译原理  4.软件工程 星月神话 lin

【幻化万千戏红尘】qianfeng-Android-Day06-Intent七大属性基础学习:

Intent及其七大属性及intent-filter设置 一.知识点回顾:Activity (一).如何实现Activity页面跳转? 示例代码: //第一种方式: Intent intent = new Intent(MainActivity.this,NextActivity.class); startActivity(intent); //第二种方式: Intent intent = new Intent(); intent.setClass(MainActivity.this, Next

【幻化万千戏红尘】qianfeng-Android-Day05-Activity生命周期,Actitity的启动模式基础学习:

一.Activity生命周期 (一).人的生命周期是怎么样的?  胎儿  婴儿  儿童.少年.青年.中年  突发变故  老年  死亡 (二).Activity生命周期: 1.Activity一生中有七种不同的状态.  onCreate()  onStart()  onResume()  onPause()  onStop()  onRestart()  onDestroy()   1.打开一个应用,然后点击back键退出: onCreate()--->onStart()--->onResume

【幻化万千戏红尘】qianfeng-Android-Day03-RadioButton及RadioGroup的用法、CheckBox、ProgressBar基础学习:

一.RadioButton及RadioGroup的用法[重点]        RadioButton.RadioGroup的常用属性   // 获得选中的RadioButton的id   int checkedRadioButtonId = gender.getCheckedRadioButtonId();        绑定RadioGroup特有监听器   // 监听单选项改变  gender.setOnCheckedChangeListener(new OnCheckedChangeLis

【幻化万千戏红尘】qianfeng-Android-Day04-Spinner、ScrollVie、AutoCompleteTextView,Activity初步认识基础学习:

一.Spinner    1.Spinner的常用属性  android:entries=""  设置Spinner的数据源  android:prompt="" 弹出框设置标题  android:spinnerMode="" 设置弹出框的弹出模式  android:popupBackground=""  设置弹出框的背景颜色    2.Spinner的常用方法  //当选择某一项的时候调用  setOnItemSelecte