现在已经在这里坐了几个小时,试图弄清楚这个问题,所以对于这个大问题有点同情。:)目标:我只想将完成的代码分成MVC(模型视图控制器)部分。我已经完成了游戏逻辑并基于文本-代码工作正常。问题:嗯,我想将此代码实现为MVC,但是在哪里为MODEL解释它应该使用基于文本的代码呢?因为VIEW仅用于布局(图形)正确?我真的很难找出从哪里开始。任何指针都很好!这是我的游戏逻辑代码:import mind.*;import javax.swing.*;import java.util.*;import java.lang.*;import java.awt.*;public class Drive {String[] mellan;boolean gameEnd, checkempty, checkempty2, enemy, enemy2;String gr,rd,tom;int digits;public Drive() {
// Gamepieces in textform
gr="G"; rd="R"; tom=" ";
mellan = new String[7];
String[] begin = {gr,gr,gr,tom,rd,rd,rd};
String[] end = {rd,rd,rd,tom,gr,gr,gr};
//input
Scanner in = new Scanner(System.in);
mellan=begin;
gameEnd=false;
while (gameEnd == false) {
for(int i=0; i<mellan.length; i++) {
System.out.print(mellan[i]);
}
System.out.print(" Choose 0-6: ");
digits = in.nextInt();
move();
checkWin();
}}void move() {
//BOOLEAN for gameruls!!!
checkempty = digits<6 && mellan[digits+1]==tom;
checkempty2 = digits>0 && mellan[digits-1]==tom;
enemy = (mellan[digits]==gr && mellan[digits+1]==rd && mellan[digits+2]==tom);
enemy2 = (mellan[digits]==rd && mellan[digits-1]==gr && mellan[digits-2]==tom);
if(checkempty) {
mellan[digits+1]=mellan[digits];
mellan[digits]=tom;
} else if (checkempty2) {
mellan[digits-1]=mellan[digits];
mellan[digits]=tom;
} else if (enemy) {
mellan[digits+2]=mellan[digits];
mellan[digits]=tom;
} else if (enemy2) {
mellan[digits-2]=mellan[digits];
mellan[digits]=tom;
}}void checkWin() {
String[] end = {rd,rd,rd,tom,gr,gr,gr};
for (int i=0; i<mellan.length; i++){
}
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
为了刺痛(这是一种过大的杀伤力),我将制作一个游戏状态bean,该bean代表游戏当前所处的状态。那将是一个“模型对象”。查看您的代码,它可能包含String [] mellan。然后,我将拥有一个数据访问对象,该对象包含对游戏状态bean的引用,并且它将具有用于更新游戏状态的方法。
用于不同动作的游戏逻辑将在具有对数据访问对象的引用的服务对象中,而控制器将具有对服务对象的引用。它将调用不同的操作方法,具体取决于从接口(视图)收到的交互。
就像我说的那样,这太过分了。
添加回答
举报
0/150
提交
取消