Hallo,
ich Programmiere Momentan Tic-Tac-Toe in einem Framework unsrer Firma plus eigenen Gui-Designer.
Ich habe Folgendes Problem und zwar habe ich ein int[]-Array mit 9 Buttons, die alle einen Wert von Null am Anfang haben. Es gibt einen Spieler und eine KI, der Spieler bzw die KI haben einen Normalen int Wert (Spieler = 1 und X ; und KI war auserhalb des Framework 2 bzw O).
Nun Versuche ich gerade irgendwie ein int[] einem int Wert zuzuweisen jedoch klappt das natürlich nicht. Ich habe jetzt bloß keine Ahnung wie ich das genau anstellen soll (hatte es schon versucht die Spieler auch in ein Array reinzuwerfen was aber auch nicht so wirklich geklappt hat). Die Anpassungen in Model View Controller kommen dann noch es soll erst mal das Programm laufen. Teile die mit Sternchen gekennzeichnet sind, sind Firmen eigene Framwork Strukturen die ich so nicht abbilden darf.
Das Problem liegt in der setXO()- , ki()- Methode.
Schonmal Danke für die Antworten.
Hier mein Code:
ich Programmiere Momentan Tic-Tac-Toe in einem Framework unsrer Firma plus eigenen Gui-Designer.
Ich habe Folgendes Problem und zwar habe ich ein int[]-Array mit 9 Buttons, die alle einen Wert von Null am Anfang haben. Es gibt einen Spieler und eine KI, der Spieler bzw die KI haben einen Normalen int Wert (Spieler = 1 und X ; und KI war auserhalb des Framework 2 bzw O).
Nun Versuche ich gerade irgendwie ein int[] einem int Wert zuzuweisen jedoch klappt das natürlich nicht. Ich habe jetzt bloß keine Ahnung wie ich das genau anstellen soll (hatte es schon versucht die Spieler auch in ein Array reinzuwerfen was aber auch nicht so wirklich geklappt hat). Die Anpassungen in Model View Controller kommen dann noch es soll erst mal das Programm laufen. Teile die mit Sternchen gekennzeichnet sind, sind Firmen eigene Framwork Strukturen die ich so nicht abbilden darf.
Das Problem liegt in der setXO()- , ki()- Methode.
Schonmal Danke für die Antworten.
Hier mein Code:
Java:
public class DevelForm extends AbstractJavaViewerForm {
public static int spieler = 1; //Aktueller Spieler
int icounter = 1;
private Model model;
@Override
public AbstractGuiControl getGui() {
return develForm;
}
public DevelForm(******) {
super(connector, form);
$$internalCreateGui$$(null);
postCreateGui();
}
private void postCreateGui() {
model = new Model();
}
public class Model{
private int[] value;
FrameworkImage X,O;
public Model() {
this(new int[]{0,0,0,0,0,0,0,0,0});
}
public Model(int[] value){
this.value = value;
X = FrameworkImage.getRelativeToClass(DevelForm.class, "X.png");
O = FrameworkImage.getRelativeToClass(DevelForm.class, "0.png");
}
public int[] getValue() {
return value;
}
public void setValue(int[] value) {
this.value = value;
}
public int getValueAt(int index){
return value[index];
}
public void setValueAt(int idx, int value) {
this.value[idx] = value;
}
public void setXO(int spieler){
GuiButton button;
switch(spieler){
case 0:
value = spieler;
button.setIcon(null);
break;
case 1:
value = spieler;
button.setIcon(X);
break;
case 2:
value = spieler;
button.setIcon(O);
break;
}
}
}
public class Controller {
}
public class View{
}
public void checkforset(Model model) {
if (model.getValueAt(0) == 1 || model.getValueAt(0) == 2) {
develForm.button_0.setEnabled(false);
}
if (model.getValueAt(1) == 1 || model.getValueAt(1) == 2) {
develForm.button_1.setEnabled(false);
}
if (model.getValueAt(2) == 1 || model.getValueAt(2) == 2) {
develForm.button_2.setEnabled(false);
}
if (model.getValueAt(3) == 1 || model.getValueAt(3) == 2) {
develForm.button_3.setEnabled(false);
}
if (model.getValueAt(4) == 1 || model.getValueAt(4) == 2) {
develForm.button_4.setEnabled(false);
}
if (model.getValueAt(5) == 1 || model.getValueAt(5) == 2) {
develForm.button_5.setEnabled(false);
}
if (model.getValueAt(6) == 1 || model.getValueAt(6) == 2) {
develForm.button_6.setEnabled(false);
}
if (model.getValueAt(7) == 1 || model.getValueAt(7) == 2) {
develForm.button_7.setEnabled(false);
}
if (model.getValueAt(8) == 1 || model.getValueAt(8) == 2) {
develForm.button_8.setEnabled(false);
}
}
public boolean checkforwin(Model model) {
//XButton
if (((model.getValueAt(0) == 1) && (model.getValueAt(1) == 1) && (model.getValueAt(2) == 1)) || ((model.getValueAt(0) == 2) && (model.getValueAt(1) == 2) && (model.getValueAt(2) == 2))) {
return true;
} else if (((model.getValueAt(3) == 1) && (model.getValueAt(4) == 1) && (model.getValueAt(5) == 1)) || ((model.getValueAt(3) == 2) && (model.getValueAt(4) == 2) && (model.getValueAt(5) == 2))) {
return true;
} else if (((model.getValueAt(6) == 1) && (model.getValueAt(7) == 1) && (model.getValueAt(8) == 1)) || ((model.getValueAt(6) == 2) && (model.getValueAt(7) == 2) && (model.getValueAt(8) == 2))) {
return true;
} else if (((model.getValueAt(0) == 1) && (model.getValueAt(3) == 1) && (model.getValueAt(6) == 1)) || ((model.getValueAt(0) == 2) && (model.getValueAt(3) == 2) && (model.getValueAt(6) == 2))) {
return true;
} else if (((model.getValueAt(1) == 1) && (model.getValueAt(4) == 1) && (model.getValueAt(7) == 1)) || ((model.getValueAt(1) == 2) && (model.getValueAt(4) == 2) && (model.getValueAt(7) == 2))) {
return true;
} else if (((model.getValueAt(2) == 1) && (model.getValueAt(5) == 1) && (model.getValueAt(8) == 1)) || ((model.getValueAt(2) == 2) && (model.getValueAt(5) == 2) && (model.getValueAt(8) == 2))) {
return true;
} else if (((model.getValueAt(0) == 1) && (model.getValueAt(4) == 1) && (model.getValueAt(8) == 1)) || ((model.getValueAt(0) == 2) && (model.getValueAt(4) == 2) && (model.getValueAt(8) == 2))) {
return true;
} else if (((model.getValueAt(2) == 1) && (model.getValueAt(4) == 1) && (model.getValueAt(6) == 1)) || ((model.getValueAt(2) == 2) && (model.getValueAt(4) == 2) && (model.getValueAt(6) == 2))) {
return true;
} else {
return false;
}
}
//Buttons
public void clickedButton0(Event event) {
clickedButton((GuiButton)event.getSource(), 0);
}
public void clickedButton1(Event event) {
clickedButton((GuiButton)event.getSource(), 1);
}
public void clickedButton2(Event event) {
clickedButton((GuiButton)event.getSource(), 2);
}
public void clickedButton3(Event event) {
clickedButton((GuiButton)event.getSource(), 3);
}
public void clickedButton4(Event event) {
clickedButton((GuiButton)event.getSource(), 4);
}
public void clickedButton5(Event event) {
clickedButton((GuiButton)event.getSource(), 5);
}
public void clickedButton6(Event event) {
clickedButton((GuiButton)event.getSource(), 6);
}
public void clickedButton7(Event event) {
clickedButton((GuiButton)event.getSource(), 7);
}
public void clickedButton8(Event event) {
clickedButton((GuiButton)event.getSource(), 8);
}
public void clickedButton(GuiButton button,int modelIdx) {
this.model.setValueAt(modelIdx, spieler);
checkforset(model);
button.setEnabled(false);
if (checkforwin(model)) {
develForm.panel_0.setEnabled(false);
develForm.label_2.setText("Gewinner ist Spieler 1");
} else if (!checkforwin(model) && (icounter >= 8)) {
develForm.panel_0.setEnabled(false);
develForm.label_2.setText("Unentschieden!");
} else {
checkforset(model);
ki();
checkforset(model);
if (checkforwin(model)) {
develForm.panel_0.setEnabled(false);
develForm.label_2.setText("Gewinner ist KI");
} else if (!checkforwin(model) && (icounter >= 8)) {
develForm.panel_0.setEnabled(false);
develForm.label_2.setText("Unentschieden!");
}
}
icounter++;
}
//KI
public void ki() {
GuiButton move = null;
move = winorblock(2);
if (move == null){
move = winorblock(1);
if(move == null){
move = corner();
if ((move == null)){
move = space();
if(move == null){
develForm.label_2.setText("Unentschieden!");
}else{
move.setXO(2);
}
} else {
model.setXO(2);
}
} else {
model.setXO(2);
}
} else {
model.setXO(2);
}
}