(声明:本故事纯属脑洞,如有雷同,估计不会吧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
版权声明:本文为博主原创文章,转载请附上博文链接!