26. december 2008 - 16:26
#2
Det kan du tro jeg kan.. her er den :)
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Testannimation
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
private String player = "xSpiller";
private Boolean gameOver;
MoveAndCheckForWinner move = MoveAndCheckForWinner.getInstance();
private Button[] buttons;
private static Window1 instance = null;
public Window1()
{
InitializeComponent();
buttons = new Button[9] { cell0, cell1, cell2, cell3, cell4, cell5, cell6, cell7, cell8 };
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
// singleton
public static Window1 getInstance() {
if (null == instance) {
instance = new Window1();
}
return instance;
}
public void bu_save(object sender, RoutedEventArgs e) {
SerializeToFile serialize = new SerializeToFile();
}
private void bu_load(object sender, RoutedEventArgs e) {
DeserializeFromFile deserialize = new DeserializeFromFile();
}
private void resetGame() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
move.setTakenMovexSpiller(j, i);
move.setTakenMoveoSpiller(j, i);
}
}
cell0.Content = "";
cell1.Content = "";
cell2.Content = "";
cell3.Content = "";
cell4.Content = "";
cell5.Content = "";
cell6.Content = "";
cell7.Content = "";
cell8.Content = "";
cell0.IsEnabled = true;
cell1.IsEnabled = true;
cell2.IsEnabled = true;
cell3.IsEnabled = true;
cell4.IsEnabled = true;
cell5.IsEnabled = true;
cell6.IsEnabled = true;
cell7.IsEnabled = true;
cell8.IsEnabled = true;
cell0.IsEnabled = true;
}
public void setMoves(String celle, String moves) {
for (int i = 0; i < buttons.Length; i++ ) {
Button b = buttons[i];
if(celle.Equals(b.Name)) {
Console.WriteLine("cell" + celle);
Console.WriteLine("moves " + moves);
switch (celle) {
case "cell0":
cell0.Content = moves;
move.setSpiller(moves+"Spiller", 0, 0);
cell0.IsEnabled = false;
break;
case "cell1":
cell1.Content = moves;
move.setSpiller(moves + "Spiller", 0, 1);
cell1.IsEnabled = false;
Console.WriteLine("cell1 " + b.Name);
break;
case "cell2":
cell2.Content = moves;
move.setSpiller(moves + "Spiller", 0, 2);
cell2.IsEnabled = false;
Console.WriteLine("cell2 " + b.Name);
break;
case "cell3":
cell3.Content = moves;
move.setSpiller(moves + "Spiller", 1, 0);
cell3.IsEnabled = false;
break;
case "cell4":
cell4.Content = moves;
move.setSpiller(moves + "Spiller", 1, 1);
cell4.IsEnabled = false;
break;
case "cell5":
cell5.Content = moves;
move.setSpiller(moves + "Spiller", 1, 2);
cell5.IsEnabled = false;
Console.WriteLine("cell5 " + b.Name);
break;
case "cell6":
cell6.Content = moves;
move.setSpiller(moves + "Spiller", 2, 0);
cell6.IsEnabled = false;
break;
case "cell7":
cell7.Content = moves;
move.setSpiller(moves + "Spiller", 1, 2);
cell7.IsEnabled = false;
break;
case "cell8":
cell8.Content = moves;
move.setSpiller(moves + "Spiller", 2, 2);
cell8.IsEnabled = false;
break;
default:
break;
}
}
}
}
... Der er noget mere kode men det er bare clicklisteners til knapperne. Her er klassen som kalder metoden i min gui klasse. Hensigten er at når setMoves er kaldt så skulle den opdatere gui'en
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Testannimation {
class DeserializeFromFile {
private String position;
private Window1 window = Window1.getInstance();
private MoveAndCheckForWinner move = MoveAndCheckForWinner.getInstance();
int i;
int j;
public DeserializeFromFile() {
SerializeData data = new SerializeData();
try {
Stream stream = File.Open("SavedGame.osl", FileMode.Open);
BinaryFormatter binary = new BinaryFormatter();
Console.WriteLine("Stuff works");
data = (SerializeData)binary.Deserialize(stream);
stream.Close();
Console.WriteLine("tal " + data.tal);
Console.WriteLine("Tekst " + data.tekst);
Console.ReadLine();
}
catch (FileNotFoundException e) {
Console.WriteLine("fil ikke fundet" + e.StackTrace);
}
Window1 window = new Window1();
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (SerializeData.xSpiller[i, j] == true) {
Console.WriteLine("how many times" + SerializeData.xSpiller[i, j]);
setPosition((position = "" + i + "," + j), "x");
}
if (SerializeData.oSpiller[i, j] == true) {
Console.WriteLine("how many times o" + SerializeData.oSpiller[i, j]);
setPosition((position = "" + i + "," + j), "o");
}
}
}
}
public void setPosition(String position, String player) {
String movesTaken = "setTakenMove" + player + "Spiller";
switch(position) {
case "0,0":
window.setMoves("cell0",player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "0,1":
window.setMoves("cell1", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "0,2":
window.setMoves("cell2", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "1,0":
window.setMoves("cell3", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "1,1":
window.setMoves("cell4", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "1,2":
window.setMoves("cell5", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "2,0":
window.setMoves("cell6", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "2,1":
window.setMoves("cell7", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
case "2,2":
window.setMoves("cell8", player);
if (movesTaken.Equals("setTakenMovexSpiller")) {
move.setTakenMovexSpiller(i, j);
}
else {
move.setTakenMoveoSpiller(i, j);
}
break;
default:
break;
}
}
}
}
håber du kan se hvad pokker jeg gør galt. Jeg får ingen kompiler fejl:)