Jup net getest en dat kan, of public... maar protected is beter.quote:Op woensdag 31 oktober 2018 13:17 schreef FlippingCoin het volgende:
[..]
Zoals in jouw voorbeeld, zou je attribuut a moeten opnemen als:
[ code verwijderd ]
En vanwege polymorfisme zou je daarna je object naar class2 moeten casten om attribuut b uit te kunnen printen. Dus als je attribuut a protected maakt kan je dit attribuut in class2 gebruiken.
Niet zoals in je print lines omdat je daar private attributen benaderd vanbuiten de class en dat kan niet.
أطيب التحيات Flip.
quote:Op woensdag 31 oktober 2018 13:20 schreef Bosbeetle het volgende:
[..]
Jup net getest en dat kan, of public... maar protected is beter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class1 { protected int a = 6; public printA() { system.out.println(this.a); } } class2 { int b = 3; public printAB() { system.out.println(this.a, this.b); } } class1 obj = new class2(); obj.printA(); (class2) obj.printAB(); |
ja iets dergelijks werkt wel... Ben vooral blij dat ik nu van al die duplicatie af ben, nu kan ik één ding aanpassen en hoef ik niet alles bij langsquote:Op woensdag 31 oktober 2018 13:21 schreef FlippingCoin het volgende:
[..]
[ code verwijderd ]
zo ongeveer, hoop ik, java is even geleden.
Հարգանքներով Flip.
Ja het tegengaan van redundancy is sowieso een hoeksteen van betere code, dat en leesbaarheid.quote:Op woensdag 31 oktober 2018 13:45 schreef Bosbeetle het volgende:
[..]
ja iets dergelijks werkt wel... Ben vooral blij dat ik nu van al die duplicatie af ben, nu kan ik één ding aanpassen en hoef ik niet alles bij langs
Ik leer het wel ooit....
SOLID principles.quote:Op donderdag 1 november 2018 14:11 schreef uppie83 het volgende:
Ben nu bezig met een tweede boek met een iets andere benadering. In het hoofdstuk waar ik nu zit, kwam ik de volgende vragen tegen:
What are the fundamental things you need to think about when you design a Java class?
What are the questions you need to ask yourself?
If you could design a checklist to use when you're designing a class, what would be on the checklist?
Maar er wordt niet echt ingegaan op het beantwoorden hiervan. Aangezien ik het wel interessante vragen vind, wat zouden jullie antwoorden?
ps nee, nog steeds geen huiswerk
Lijkt erop als java niet dé taal is voor jou, kijk eens naar het functionele paradigma.quote:Op donderdag 1 november 2018 14:53 schreef Bosbeetle het volgende:
Ik zie een programma nog veel te veel als een soort parametrische/procedurele benadering van wiskunde.
Simpelweg is voor mij een programma altijd het volgende data -> wiskundige bewerking in korte stappen -> resultaten. Daarom moet voor mij een klasse vaak één van de volgende dingen, iets zeggen over data, een bewerking doen op data, het beter hanteerbaar maken van data.... En ik ben er nog niet over uit of ik binnen een klasse veel methodes maak die dingen met data doen en de data erin hang of dat ik een losse klasse maak voor de data zelf.
Maar ik programmeer vaak met beelden dus de data is meestal vier dimensionaal en gequantificeerd in voxels, dus dat is ietsje lastiger dan linieare data...
Het probleem waar ik wel tegenaan loop is dat ik eigenlijk nooit iets maak wat gewoon iets moet kunnen maar dat ik de code ook altijd exploratief gebruik. Ik werk echt zelden met statische gegevens die telkens hetzelfde zijn, en merk ook dat mijn toolbox daarvoor minder goed gevuld is.
Ik gebruik ook voornamelijk R wat functioneel is.quote:Op donderdag 1 november 2018 15:42 schreef FlippingCoin het volgende:
[..]
Lijkt erop als java niet dé taal is voor jou, kijk eens naar het functionele paradigma.
Ah ja R is een stuk beter daarvoor ja.quote:Op donderdag 1 november 2018 15:43 schreef Bosbeetle het volgende:
[..]
Ik gebruik ook voornamelijk R wat functioneel is.
Java gebruik ik omdat ik dank kan werken met het programma imagej/fiji en voor de snelheid. Ook schrijf ik veel macros in imagej maar die zijn dan weer sloom.
maar R is weer een stuk slechter in beelden... en soms plak ik toch weer c++ in r dmv rccpquote:Op donderdag 1 november 2018 15:45 schreef FlippingCoin het volgende:
[..]
Ah ja R is een stuk beter daarvoor ja.
R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?quote:Op donderdag 1 november 2018 15:43 schreef Bosbeetle het volgende:
[..]
Ik gebruik ook voornamelijk R wat functioneel is.
Java gebruik ik omdat ik dank kan werken met het programma imagej/fiji en voor de snelheid. Ook schrijf ik veel macros in imagej maar die zijn dan weer sloom.
Dan onderschat je de imagej/cellprofiler community bijna alle microscopie analyse loopt daarop (en dus op Java) en als goede tweede matlab voor de wat meer natuurkundigen.quote:Op donderdag 1 november 2018 18:56 schreef ralfie het volgende:
[..]
R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?
Als je R-achtige bewerkingen met images wil doen kun je het beste beginnen met Python. Praktisch alle zelf-geschreven code in het academisch onderzoek betreffende images wordt in Python gedaan met uitstapjes naar C/C++ als het meer performant moet zijn.
Wat vind je trouwens van mijn laatste versie van dat stukje code?quote:Op donderdag 1 november 2018 18:56 schreef ralfie het volgende:
[..]
R functioneel? Procedureel, zeker. object-oriented: ook wel, maar functioneel?
Als je R-achtige bewerkingen met images wil doen kun je het beste beginnen met Python. Praktisch alle zelf-geschreven code in het academisch onderzoek betreffende images wordt in Python gedaan met uitstapjes naar C/C++ als het meer performant moet zijn.
Sorry, had moeten zeggen medische (radiology) images. Je hebt helemaal gelijk dat microscopie-achtige bewerkingen vaak met java gedaan worden (volgens mij volledig vanwege imagej ) en inderdaad matlab was ik even vergeten.quote:Op donderdag 1 november 2018 18:59 schreef Bosbeetle het volgende:
[..]
Dan onderschat je de imagej/cellprofiler community bijna alle microscopie analyse loopt daarop (en dus op Java) en als goede tweede matlab voor de wat meer natuurkundigen.
Ik heb trouwens een verkeerd beeld van functionele talen wat is wel een functionele taal? LISP?
Een stuk duidelijker (zul je zelf ook wel gemerkt hebben?) hoewel ik persoonlijk toch eerder vector2d/vector3d zou gebruiken. Dat is geen exotische code vectoren vormen de basis voor alle 2d en 3d coordinate berekeningen in elke programmeer taal, en werken goed samen met matrixvermenigvuldigingen, opengl/directx etc. Wat je doet is niet verkeerd, maar werkt fouten in de hand wanneer je dingen zelf gaat schrijven die al bestaan.quote:Op donderdag 1 november 2018 19:04 schreef Bosbeetle het volgende:
[..]
Wat vind je trouwens van mijn laatste versie van dat stukje code?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class booleanTest{ public static void main(String[] args){ int x = 2; public boolean method(){ if(x==3){ return true; } return false; } System.out.print(method()); } } |
Omdat je een methode definieert in je main methode. Zet hem er buiten en hij werkt, mits het een static methode is.quote:Op zaterdag 3 november 2018 20:48 schreef uppie83 het volgende:
Hmm de volgende Java code gaat compleet fout (4 foutmeldingen met compilen).... maar waarom
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Main { public static void main(String[] args){ int x = 2; System.out.print(method(2)); } public static boolean method(int x){ if(x==3){ return true; } return false; } } |
oh zo simpel... okquote:Op zaterdag 3 november 2018 20:58 schreef Rodgrod het volgende:
[..]
Omdat je een methode definieert in je main methode. Zet hem er buiten en hij werkt, mits het een static methode is.
[ code verwijderd ]
Dat herinner ik mij ook nog wel.quote:Op zaterdag 3 november 2018 20:48 schreef uppie83 het volgende:
Hmm de volgende Java code gaat compleet fout (4 foutmeldingen met compilen).... maar waarom
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import javafx.scene.control.Button; public class cell extends Button{ //int length; //length of all sides String state; // X, O, or unset "" //constructor public cell(String s){ state = s; //standard length //length = 100; } public boolean isSet(){ if(!state.equals("")){ return true; } return false; } public void setState(String x){ state = x; } public String getState(){ return state; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | public class board{ public cell[][] board; //constructor public board(){ board = new cell[3][3]; for(int x = 0; x<3; x++){ for(int y = 0; y<3; y++){ //creates 9 cells with empty states board[x][y]= new cell(""); } } } // checks if cells at row Y have the same state boolean checkRow(int y){ //isSet check for all cells for(int x = 0; x<3; x++){ if(!board[x][y].isSet()){ return false; } } //if all cells are set, check for win-condition if( board[0][y].getState().equals( board[1][y].getState() ) && board[1][y].getState().equals(board[2][y].getState()) ){ return true; } return false; } // checks if cells at column X have the same state boolean checkColumn(int x){ //isSet check for all cells for(int y = 0; y<3; y++){ if(!board[x][y].isSet()){ return false; } } //if all cells are set, check for win-condition if( board[x][0].getState().equals( board[x][1].getState() ) && board[x][1].getState().equals(board[x][2].getState()) ){ return true; } return false; } boolean checkDiagonals(){ boolean check1 = true; boolean check2 = true; // diagonal 1 (top left, bottom right) isSet check for(int i = 0; i<3; i++){ if(!board[i][i].isSet()){ check1 = false; } } //if all cells are set, check for win-condition if(check1){ if( board[0][0].getState().equals( board[1][1].getState() ) && board[1][1].getState().equals(board[2][2].getState()) ){ return check1; } } // diagonal 2 (bottom left, top right) isSet check (only if diagonal 1 didn't have the win-condition for(int i = 0; i<3; i++){ for(int j = 2; j>=0; j--){ if(!board[i][j].isSet()){ check2 = false; } } } //if all cells are set, check for win-condition if(check2){ if( board[0][2].getState().equals( board[1][1].getState() ) && board[1][1].getState().equals(board[2][0].getState()) ){ return check2; } } // no diagonal had a win-condition return false; } public boolean checkBoard(){ if(checkRow(0) || checkRow(1) || checkRow(2) || checkColumn(0) || checkColumn(1) || checkColumn(2) || checkDiagonals()){ return true; } return false; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class player{ int number; String userSymbol; public player(String u){ userSymbol = u; } public void setNumber(int n){ number = n; } public int getNumber(){ return number; } public void setUserSymbol(String s){ userSymbol = s; } public String getUserSymbol(){ return userSymbol; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | /* My own Tic-Tac-Toe game. */ import javafx.application.*; import javafx.scene.*; import javafx.stage.*; import javafx.scene.layout.*; import javafx.scene.control.*; import javafx.event.*; import javafx.geometry.*; public class game extends Application{ public static void main(String[] args){ //start the JavaFX application by calling launch() launch(args); } // override the start() method public void start(Stage myStage){ board gameBoard = new board(); player player1 = new player("X"); player player2 = new player("O"); player currentPlayer; boolean isPlayer1 = true; boolean finished = false; if(isPlayer1){ currentPlayer = player1; } else{ currentPlayer = player2; } // give the stage a title myStage.setTitle("Tic-Tac-Toe"); // use a flowpane for the root node. In this case, // vertical and horizontal gaps of 10 GridPane rootNode = new GridPane(); // center the controls in the scene rootNode.setAlignment(Pos.CENTER); // create a scene Scene myScene = new Scene(rootNode, 340, 340); // set the scene on the stage myStage.setScene(myScene); // handle the action events for the cell-buttons gameBoard.board[0][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[0][0].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[0][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[0][1].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[0][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[0][2].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[1][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[1][0].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[1][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[1][1].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[1][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[1][2].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[2][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[2][0].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[2][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[2][1].setText(currentPlayer.getUserSymbol()); } }); gameBoard.board[2][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ gameBoard.board[2][2].setText(currentPlayer.getUserSymbol()); } }); // add the label and buttons to the scene graph rootNode.getChildren().addAll(gameBoard.board[0][0], gameBoard.board[0][1], gameBoard.board[0][2], gameBoard.board[1][0], gameBoard.board[1][1], gameBoard.board[1][2], gameBoard.board[2][0], gameBoard.board[2][1], gameBoard.board[2][2]); //show the stage and its scene myStage.show(); //game while(!finished){ //game on! isPlayer1 = !isPlayer1; finished = gameBoard.checkBoard(); } } } |
Je logica onder 'game' klopt voor geen meter.quote:Op zondag 4 november 2018 12:19 schreef uppie83 het volgende:
ZOooooo, eindelijk mijn eerste 'echte' oefening... het befaamde Tic Tac Toe. Om een beetje te oefenen met het framewerk van de toekomst wilde ik het in JavaFX maken. Het laatste hoofdstuk van het boek ging hier over, al was het niet zo uitgebreid. Tot nu toe heb ik alle compile errors en runtime exceptions volgens mij verholpen. Bij het opstarten blijft het geheel echter hangen. Wie kan mij verder helpen? Aub rekening houdend dat ik net begonnen ben met Java
ps. Ja ik heb heel veel op internet gekeken, maar iedereen heeft een andere benadering, waardoor de code dusdanig anders is dat ik het dan compleet moet kopieren om er wat mee te kunnen.
ps 2. toch wel trots op mijzelf dat ik al zover kom zonder ook maar iets af te kijken
cell
[ code verwijderd ]
board
[ code verwijderd ]
player
[ code verwijderd ]
game
[ code verwijderd ]
Context, http://www.contexteditor.org/index.php, is de BOM!!!!quote:Op zondag 4 november 2018 13:06 schreef ralfie het volgende:
[..]
Je logica onder 'game' klopt voor geen meter.
-Je checkt alleen aan het begin van het spel wiens beurt het is, en thats it
-Je controleert of iemand gewonnen heeft xduizend keer per seconde waardoor het allemaal vast loopt.
Beurtwissel en winstcondities moet je controleren nadat iemand ergens op geklikt heeft, in de eventhandlers dus. Niet aan het begin van het snel (wordt niet meer geupdate) en ook niet in een loopje aan het eind (loopt de zaak van vast).
Heb je geen fatsoenlijke IDE om je code te debuggen?
Je wilt je eventhandlers zo logisch mogelijk houden. Het is naar mijn mening best logisch dat bij een zet event er wordt gecontroleerd of er sprake is van winst en de speler wordt omgedraaid. Oftewel roep bij een zet iets van een methode aan genaamd ProcessTurn()quote:Op zondag 4 november 2018 14:18 schreef uppie83 het volgende:
[..]
Context, http://www.contexteditor.org/index.php, is de BOM!!!!
Ik had in mijn boek begrepen dat je je eventhandlers juist zo kort en licht mogelijk moet houden. Vandaar dat ik de checks daar niet in wilde zetten. Wanneer het spel enkel in de console gespeeld zou worden dan zou het naar mijn idee een while(!wincondition) zijn. Maar nu ik het geheel ook nog in JavaFX moet plaatsen heb ik even geen idee hoe dat werkt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | /* My own Tic-Tac-Toe game. */ import javafx.application.*; import javafx.scene.*; import javafx.stage.*; import javafx.scene.layout.*; import javafx.scene.control.*; import javafx.event.*; import javafx.geometry.*; public class game extends Application{ boolean isPlayer1 = true; boolean finished = false; public static void main(String[] args){ //start the JavaFX application by calling launch() launch(args); } // override the start() method public void start(Stage myStage){ board gameBoard = new board(); player player1 = new player("X"); player player2 = new player("O"); player currentPlayer; if(isPlayer1){ currentPlayer = player1; } else{ currentPlayer = player2; } // give the stage a title myStage.setTitle("Tic-Tac-Toe"); // use a flowpane for the root node. In this case, // vertical and horizontal gaps of 10 GridPane rootNode = new GridPane(); // center the controls in the scene rootNode.setAlignment(Pos.CENTER); // create a scene Scene myScene = new Scene(rootNode, 340, 340); // set the scene on the stage myStage.setScene(myScene); // handle the action events for the cell-buttons gameBoard.board[0][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[0][0].setText(currentPlayer.getUserSymbol()); gameBoard.board[0][0].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[0][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[0][1].setText(currentPlayer.getUserSymbol()); gameBoard.board[0][1].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[0][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[0][2].setText(currentPlayer.getUserSymbol()); gameBoard.board[0][2].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[1][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[1][0].setText(currentPlayer.getUserSymbol()); gameBoard.board[1][0].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[1][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[1][1].setText(currentPlayer.getUserSymbol()); gameBoard.board[1][1].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[1][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[1][2].setText(currentPlayer.getUserSymbol()); gameBoard.board[1][2].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[2][0].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[2][0].setText(currentPlayer.getUserSymbol()); gameBoard.board[2][0].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[2][1].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[2][1].setText(currentPlayer.getUserSymbol()); gameBoard.board[2][1].setState(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); gameBoard.board[2][2].setOnAction(new EventHandler<ActionEvent>(){ public void handle(ActionEvent ae){ if(!finished){ gameBoard.board[2][2].setText(currentPlayer.getUserSymbol()); gameBoard.board[2][2].setText(currentPlayer.getUserSymbol()); if(gameBoard.checkBoard()){ finished = true; System.out.print(currentPlayer.getUserSymbol() + " has won!"); } else{ isPlayer1 = !isPlayer1; } } } }); // add the label and buttons to the scene graph rootNode.add(gameBoard.board[0][0],0, 0, 1, 1); rootNode.add(gameBoard.board[0][1],0, 1, 1, 1); rootNode.add(gameBoard.board[0][2],0, 2, 1, 1); rootNode.add(gameBoard.board[1][0],1, 0, 1, 1); rootNode.add(gameBoard.board[1][1],1, 1, 1, 1); rootNode.add(gameBoard.board[1][2],1, 2, 1, 1); rootNode.add(gameBoard.board[2][0],2, 0, 1, 1); rootNode.add(gameBoard.board[2][1],2, 1, 1, 1); rootNode.add(gameBoard.board[2][2],2, 2, 1, 1); //show the stage and its scene myStage.show(); /*game while(!finished){ //game on! isPlayer1 = !isPlayer1; finished = gameBoard.checkBoard(); } */ } } |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |