寻道之路 之 棋盘外的冷暖(读作:一次实验报告)(一)

 (声明:本故事纯属脑洞,如有雷同,估计不会吧233;ps:为方便记述可能会对程序代码进行“艺术加工”,非程序员请不要在Java上运行233;本文章仅供娱乐(禁止用作商业用途,emmm,嘛,虽然可能不会有多少人注意吧233),转载请注明出处,欢迎二次创作;)

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
 
package P3;

import static java.lang.Thread.sleep;//“皇图霸业谈笑中,不胜人生一场醉。”——by sleep
import java.util.Scanner;//“人们都会说话,却不是所有人都懂得别人话语的含义。吾即众妙之门。”——by Scanner

/**
 * @author 云道华
 */
 public class MyChessAndGoGame{
 	//起初,创造了宇宙 [注1]
 	//从周一到周六,Game、Player、Board、Piece、Position、Action等Class分别出现
 	//第七天,thenewworld方法被创造出来
 	
 	private Game game=new Game();//游戏的寄宿之地
    private Board board;//公共的棋盘客体
    private Scanner in;//与外界交流之入口
    
	/**Monday 一盘棋类游戏*/
	class Game{
		//Abstract Function
        // Gamer记录  String type;//游戏类型 ;
        // Gamer由    private Player P1,P2;//两名Robot_Player机器人 协助;
        //Representation Invariant
    	// type的可选类型由Gamer掌控;
        //Safety From Exposure
    	// 只有Gamer和Player能够记忆游戏的type; 只有Gamer能收容Player;
    	
    	private String type;//游戏类型
        private Player P1,P2;//两名Robot_Player机器人

		/**
         * 开工啦!开工啦!(也好,听听外面的那些人都在说些什么~);
         */
        private Game() {
            in = new Scanner(System.in);
        }

		/**
         * 选择游戏类型并同时买来棋盘
         * @return true iff 选择类型成功
         * @throws InterruptedException 
         */
        boolean chooseType() throws InterruptedException{
        	//新的一天开始了^_^,Good Morning,Good Evening and Good Afternoon;
        	System.out.println("C for chess ; G for Go game ;E for exit ;(case-insensitive)");
        	//温馨提示,大小写不敏感;
        	sleep(300);
        	//……此处省略部分代码
        	//好,填写订单;
        	switch (choice.toLowerCase().charAt(0)) {
                case 'c':
                    this.type="chess";
                    board=new Board("chess");
                    break;
                case 'g':
                    this.type="go";
                    board=new Board("go");
                    break;
                case 'e':
                    System.exit(0);
                    break;
                default:
                    System.out.println("Don`t make me laugh~");
                    //哈哈,他怎么总是输入错误,我觉得已经说得够明白的了啊~嘛,没关系,再来一次就好喽~;
                    return false;
            }
            System.out.println("……");
            sleep(600);
            //嘿嘿,订单填写完了~嗯,记得那边有个棋盘商来着,……,棋盘商?啊,对了,那卖棋盘的,好像是个姑娘……;
            System.out.println("OK.I have brought a new "+this.type+" board  ^_^.\n"); 
            return true;
        }

		/** 
         * 输入棋手姓名并同时传授棋机器人下棋规则
         * @throws InterruptedException 
         */
        void enterNames() throws InterruptedException{
        	//大罗伯特,小罗伯特,过来过来,你们有活干了~(“啊,马上好!” “嗯,来了!”);
        	System.out.println("P1 with black pieces:");
        	
        	//这是你的,大罗伯特(“啊,交给我!”);
            P1=new Player(in.nextLine(),this.type,'1');
            
            System.out.println("P2 with white pieces:");
            
            //这是给你的,小罗伯特(“嗯,明白!”);
            P2=new Player(in.nextLine(),this.type,'0');
            
            //哦,你问InterruptedException啊,稍等~;
            System.out.println("……");
            //这就说来话长了,从人类心理学,到生物学,再到机器工程学、数字逻辑……;
            //总之,一个把“今朝有酒今朝醉”挂在嘴边的sleep,怎么会愿意被InterruptedException呢~;
            sleep(600);
            System.out.println("OK.I have tell the two robots the rules.\n");
            //(“啊,我学的比你快!”,“嗯,我会加油的!”)
        }

		/**
         * 开始游戏流程
         * @throws InterruptedException 
         */
        void start() throws InterruptedException {
        	//刷新棋盘
        	//……此处省略部分代码
        	 while(true){//游戏结束判定
                while(!P1.actioningame()){
                    System.out.println("Think it over?(Be careful)");
                    //啊啊,又来了,怎么会错嘛,哈哈,可能只是偶尔粗心吧,再来一次就好~;
                    board.fresh();
                }
                if(finish()) break;
                while(!P2.actioningame()){
                    System.out.println("Think it over?(Be careful)");
                    //唔,没关系,我多教你几次,你肯定会明白的~;
                    board.fresh();
                }
                if(finish()) break;
            }
        }
        
        /**
         * 判断游戏是否结束
         * @return true iff 游戏结束
         */
		boolean finish(){
			//虽然是例行公事,但是只要细心,就能发现每一次的不同,如同众籁之声,如同字之纹理,……;
			//(“你来了!” “诶,………,哦~” )啊,是Queue和Stack啊,今天也要努力工作啊~;
			//虽然是偶尔见面的同事,但是Queue挺热情的,想什么就说,不过Stack有点沉默寡言
			//唔,哈哈,但是仔细观察就发现他和Heap的关系意外的好,每个人都有自己的经历,这点还是不问为好;
			
			//……此处省略部分代码
		}
		
		 /**
         * 结束游戏
         */
        void end(){
        	//收拾棋局
        	System.out.println("Do you want to review your steps?(P1"+P1.name+")");
            System.out.println("R for review ; E for end");
            //……此处省略部分代码
            System.out.println("Do you want to review your steps?(P2"+P2.name+")");
            System.out.println("R for review ; E for end");
            //……此处省略部分代码
            System.out.println("\n祝你玩得愉快~");
            
            //因为是租的棋盘所以要还给棋盘商,唔,小家伙们应该是累了,还是我亲自去吧~;
            board=null;
            
            //那个棋盘商看我的眼神好像有点不对,唔,还是睡醒明天去问问她吧~;
            
            //小机器人们做的很棒,祝你们做个好梦,期待我们的下次重逢~;
            P1=null;P2=null;
            
            //然后是睡眠准备,虽然听别人说话也很重要,不过睡觉的时候总还是希望能徜徉在自己的世界中吧~;
            in.close();
            
            //接下来,我也该睡觉了吧~在那之前:
            System.out.println("\n假如再见不到你,祝你早安,午安,晚安~");
        }
    }
--------------------- 
作者:L.L~C 
来源:CSDN 
原文:https://blog.csdn.net/l1048eif/article/details/89078757 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

你可能感兴趣的:(编程奇思,寻道之路,代码小说)