• 21点...by Java - [感言]

    2008年04月27日

    其实,这是我很早就有的一个计划:用Java(起初是想用C的)语言来设计一个游戏。由于21点比较简单,所以选择了21点。

     So,今天终于开始下手了,由于自己是Java的初学者,虽然之前看过C的一些教程,但是要设计一个游戏对我来说,不是一件易事。

    说实话,设计一个游戏,真的为编程学习者提供不可多得的经验,当我在写代码时,感觉与平时的练习很不同。想想平时做的练习,感觉只能让自己熟悉一下怎样编程,对能力培养的作用不大。

    刚刚学了如何建立一个对象,这次我首次运用对象,也是首次体会对象的好处(不太深),这个对象是一副扑克,扑克用数组组成,并包含一个发牌的方法........

    其实,说这些也没什么,就是一个简单的游戏而已,而且是残疾的,因为没有分牌,加注等功能。反而让我深有体会的是一个人生道理。

    当大学生一年,人家说大学生理论知识够,但缺实践,的确,我深深感觉到堆压在我们身上的理论太多了,而让我们放开手去干的机会很少。一个Java课程,一阵子就讲完一半(而且是基础知识),还没消化完就要直接进入核心技术,这根本就是填鸭!实践,实践,实践,我们需要实践,真真正正地去做,总比躲在一角落里啃书好,好像我自己,写代码之前,书里的知识已经很熟了,但一上手时,问题就蜂拥而至,结构不对,语法错误,逻辑错误,一时三刻都解决不了。由此可见,是书本好还是动手好呢?

  • 今天写了个Java程序 - [身边事]

    2008年04月06日

    日历来的,花了我2个小时

    import javax.swing.JOptionPane;

    public class Calender {
           
      
        public static void main(String[] args) {
            //分别输入年份和1月1日是星期几
            String yearString = JOptionPane.showInputDialog("输入年份(1900-2100):");
            int year=Integer.parseInt(yearString);
            String weekdayString = JOptionPane.showInputDialog("该年1月1日是星期几?\n"+
             "输入“1”表示星期一,“2”表示星期二,如此类推(只能输入1-7的整数)");
            int weekday=Integer.parseInt(weekdayString);
           
            //weekdayNext变量为提示下一个月的首日的星期
            int weekdayNext=1;
            //定义日历的题目
            String output_00 = "Calender of "+year;
            output_00 +="\n____________________________________\n";
           
            //用month数组储存月份及其名字
            String[] Months = new String[13] ;
            for (int i_m=1;i_m<=12;i_m++)
             Months[i_m]=i_m+"月";
            //用output数组储存各月份的日历
            String[] output = new String[13] ;
           
            //检查闰年
            int runyear=1;
            if ((year%4==0&&year%100!=0)||year%400==0)
             runyear=29;
            else
             runyear=28;
           
            //分别制作各月份的日历
            for(int m=1;m<=12;m++){
             switch (m)
             {
              case 1://输入月的标题
               output[m]+="      "+Months[m]+"       "+"\n_______________________________________\n"+
             "MON    TUE    WED    THU    FRI    SAT    SUN\n";
                  //通过weekday变量确定首日的位置
                  if (weekday>1)
                  {for (int i_sp=2;i_sp<=weekday;i_sp++)
                  output[m]+="            ";}
                  //分别输入各日子
                  for (int i=1;i<=31;i++){
                  if (i<9)
                  {if ((weekday+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"          ";}
                  else if (i==9)
                  {if ((weekday+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"        ";}
                  else
                   {if ((weekday+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"       ";}
                  }
                  //计算下一个月首日的位置
                  weekdayNext=((31-(8-weekday))%7)+1;
                break;
              case 2://输入月的标题
               output[m]+="\n       "+Months[m]+"       "+"\n_______________________________________\n"+
             "MON    TUE    WED    THU    FRI    SAT    SUN\n";
               //通过weekdayNext变量确定首日的位置
                    if (weekdayNext>1)
                    {for (int i_sp=2;i_sp<=weekdayNext;i_sp++)
                     output[m]+="            ";}
               //分别输入各日子
                  for (int i=1;i<=runyear;i++){
                  if (i<9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"          ";}
                  else if (i==9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"        ";}
                  else
                   {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"       ";}
                  }
                  //计算下一个月首日的位置
                  weekdayNext=((runyear-(8-weekdayNext))%7)+1;
                break;
                
              case 3: case 5: case 7: case 8: case 10: case 12:
               //输入月的标题
               output[m]+="\n       "+Months[m]+"       "+"\n_______________________________________\n"+
             "MON    TUE    WED    THU    FRI    SAT    SUN\n";
               //通过weekdayNext变量确定首日的位置
                    if (weekdayNext>1)
                    {for (int i_sp=2;i_sp<=weekdayNext;i_sp++)
                     output[m]+="            ";}
               //分别输入各日子
                  for (int i=1;i<=31;i++){
                  if (i<9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"          ";}
                  else if (i==9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"        ";}
                  else
                   {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"       ";}
                  }
                  //计算下一个月首日的位置
                  weekdayNext=((31-(8-weekdayNext))%7)+1;
               break;
             
              case 4: case 6: case 9: case 11:
               //输入月的标题
               output[m]+="\n       "+Months[m]+"       "+"\n_______________________________________\n"+
             "MON    TUE    WED    THU    FRI    SAT    SUN\n";
               //通过weekdayNext变量确定首日的位置
                    if (weekdayNext>1)
                    {for (int i_sp=2;i_sp<=weekdayNext;i_sp++)
                     output[m]+="            ";}
               //分别输入各日子
                  for (int i=1;i<=30;i++){
                  if (i<9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"          ";}
                  else if (i==9)
                  {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"        ";}
                  else
                   {if ((weekdayNext+i-1)%7==0)
                    output[m]+=i+" \n";
                   else
                    output[m]+=i+"       ";}
                  }
                  //计算下一个月首日的位置
                  weekdayNext=((30-(8-weekdayNext))%7)+1;
               break;
            }
            }
             //用outputFinal储存日历标题和各月日历
             String outputFinal = output_00;
             for (int i_f=1;i_f<=12;i_f++)
             outputFinal += output[i_f];
             
             //输出日历
       JOptionPane.showMessageDialog(null,outputFinal);
    }
    }

365bloglink - 博邻
  • Google向你推荐

  • 欢迎留言