int xMausposition = 0; int yMausposition = 0; int aktuellerSpieler = 0; // =0, damit die Textanzeige nicht wechselt. Spieler1 = dunkel, Spieler2 = hell String aktuellerSpielerString = "keiner"; int gewonnen = 0; int gewinner = 0; String gewinnerString = ""; int xGewinnStein = 0; int yGewinnStein = 0; int gewinnSteinRechtshupf = 0; int gewinnSteinRunterhupf = 0; int einfuegeZahl = 0; // Zahl, die in die Variablen eingefgt wird, entweder 1 od. 10, je nach Spieler int gewinnZahl = 0; //entweder 4 oder 40, je nach Spieler int direktNaechsteRunde = 0; int mausPressDurchlaeufe = 0; int zaehlen=0; int millisAnfang = 0; int millisEnde = 0; int[] zeile0 = {-1000,-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000}; int[] zeile1 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile2 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile3 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile4 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile5 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile6 = {-1000,0, 0, 0, 0, 0, 0, 0, -1000}; int[] zeile7 = {-1000,-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000}; int[] spaltenVoll = {0,0,0,0,0,0,0}; //0=nicht voll, 1=voll void setup() { size(550, 500); background(0); colorMode(RGB,100); //smooth(); //noLoop(); PFont fontA = loadFont("CourierNew36.vlw"); textFont(fontA, 28); fill(8); stroke(10); ellipse(100, 480, 48, 48); fill(15); text("dunkel beginnt", 107, 480); text("vier gewinnt", 15, 50); // Titel } void draw() { direktNaechsteRunde = 0; stroke(15); //horizontale Linien for(int i=0;i<=6;i=i+1) { line(100,100+i*50,450,100+i*50); } //vertikale Linien for(int i=0;i<=7;i=i+1) { line(100+i*50,100,100+i*50,400); } if(mouseX > 100 && mouseX < 450 && mouseY > 100 && mouseY < 400 && gewinner == 0) { cursor(HAND); } else { cursor(ARROW); } // wenn einer gewonnen hat keine Hand mehr anzeigen und direktNaechsteRunde = 1 if (gewinner != 0) { // noLoop(); cursor(ARROW); println("FERTIG!!!"); direktNaechsteRunde = 1; } if(aktuellerSpieler == 1) { fill(0); stroke(0); rect(50,430,450,100); fill(8); stroke(10); ellipse(100, 480, 48, 48); fill(15); text("dunkel", 107, 480); } else if(aktuellerSpieler == 2) { fill(0); stroke(0); rect(50,430,450,100); fill(20); stroke(25); ellipse(100, 480, 48, 48); fill(15); text("hell", 107, 480); } if(spaltenVoll[0] + spaltenVoll[1] + spaltenVoll[2] + spaltenVoll[3] + spaltenVoll[4] + spaltenVoll[5] + spaltenVoll[6] == 7) { fill(0); stroke(0); rect(50,430,450,100); fill(15); text("niemand hat gewonnen!", 98, 480); } // wenn Gewinner feststeht: if(gewinner != 0) { fill(0); stroke(0); rect(50,430,450,100); if(gewinner == 1) { fill(8); stroke(10); ellipse(100, 480, 48, 48); } else if(gewinner == 2) { fill(20); stroke(25); ellipse(100, 480, 48, 48); } fill(15); text(gewinnerString + " hat gewonnen!", 107, 480); //Umrahmung der Gewinner-Steine: blinkeli(); delay(500); /* println(round(i/2)*1.0 + " = " + i/2.0); if (i / 2.0 == round(i / 2)*1.0 ) { stroke(50); fill(30,20,40); println("stroke=50"); ellipse(40*i,80,10,50); } else { stroke(0); println("stroke=0"); fill(10,80,0); ellipse(10*i,10,50,20); } //noFill(); println("ellipse"); println("xGewinnStein=" + xGewinnStein + " yGewinnStein=" + yGewinnStein); ellipse(100-25+xGewinnStein*50, 100-25+yGewinnStein*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf)*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf*2)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf*2)*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf*3)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf*3)*50, 48, 48); */ } } void blinkeli() { zaehlen++; println(round(zaehlen/2)*1.0 + " = " + zaehlen/2.0); if (zaehlen / 2.0 == round(zaehlen / 2)*1.0 ) { stroke(10); println("stroke=10"); } else { stroke(50); println("stroke=50"); } noFill(); println("ellipse"); println("xGewinnStein=" + xGewinnStein + " yGewinnStein=" + yGewinnStein); ellipse(100-25+xGewinnStein*50, 100-25+yGewinnStein*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf)*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf*2)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf*2)*50, 48, 48); ellipse(100-25+(xGewinnStein + gewinnSteinRechtshupf*3)*50, 100-25+(yGewinnStein + gewinnSteinRunterhupf*3)*50, 48, 48); } void mousePressed() { if (direktNaechsteRunde == 0) { //////////////////SPIELER /////Spieler-Auswahl//////// //Auswahl der Steinfarbe if(aktuellerSpieler == 1 || aktuellerSpieler == 0) { //aktuellen Spieler auf 1 setzen. aktuellerSpieler ist nur 0, wenn das Spiel neu beginnt. aktuellerSpieler = 1; fill(8); stroke(10); gewinnZahl = 4; einfuegeZahl = 1; aktuellerSpielerString = "dunkel"; } else if(aktuellerSpieler == 2) { fill(20); stroke(25); gewinnZahl = 40; einfuegeZahl = 10; aktuellerSpielerString = "hell"; } println("aktuellerSpieler: " + aktuellerSpieler); println("aktuellerSpielerString: " + aktuellerSpielerString); //was gibt er ein? if (mouseX > 100 && mouseX < 450 && mouseY > 100 && mouseY < 400) { if (mouseX >100 && mouseX <150) { xMausposition = 1; } else if (mouseX >150 && mouseX <200) { xMausposition = 2; } else if (mouseX >200 && mouseX <250) { xMausposition = 3; } else if (mouseX >250 && mouseX <300) { xMausposition = 4; } else if (mouseX >300 && mouseX <350) { xMausposition = 5; } else if (mouseX >350 && mouseX <400) { xMausposition = 6; } else if (mouseX >400 && mouseX <450) { xMausposition = 7; } else { xMausposition = 0; } } else { xMausposition = 0; } //Kontrolle, wo frei ist if(zeile6[xMausposition] == 0) { yMausposition = 6; zeile6[xMausposition] = einfuegeZahl; } else if(zeile5[xMausposition] == 0) { yMausposition = 5; zeile5[xMausposition] = einfuegeZahl; } else if(zeile4[xMausposition] == 0) { yMausposition = 4; zeile4[xMausposition] = einfuegeZahl; } else if(zeile3[xMausposition] == 0) { yMausposition = 3; zeile3[xMausposition] = einfuegeZahl; } else if(zeile2[xMausposition] == 0) { yMausposition = 2; zeile2[xMausposition] = einfuegeZahl; } else if(zeile1[xMausposition] == 0) { yMausposition = 1; zeile1[xMausposition] = einfuegeZahl; //da jetzt die Spalte x voll ist, wird dies vermerkt in "spaltenVoll[]": spaltenVoll[xMausposition-1] = 1; println("Spalte " + xMausposition + " voll!"); } else { yMausposition = 0; } print("xMausposition=" + xMausposition); println(" yMausposition=" + yMausposition); //Setzen des Steins if(xMausposition >=1 && xMausposition <=7 && yMausposition >= 1 && yMausposition <=6) { ellipse(100-25+xMausposition*50, 100-25+yMausposition*50, 48, 48); } else { direktNaechsteRunde = 1; } //Kontrolle, ob der Spieler gewonnen hat //fill(15); //text("dunkel hat gewonnen", 107, 480); if(direktNaechsteRunde == 0){ //Zeilen for(int i=0; i<=3; i=i+1) { if(zeile6[i+1]+zeile6[i+2]+zeile6[i+3]+zeile6[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 6; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } for(int i=0; i<=3; i=i+1) { if(zeile5[i+1]+zeile5[i+2]+zeile5[i+3]+zeile5[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 5; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } for(int i=0; i<=3; i=i+1) { if(zeile4[i+1]+zeile4[i+2]+zeile4[i+3]+zeile4[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 4; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } for(int i=0; i<=3; i=i+1) { if(zeile3[i+1]+zeile3[i+2]+zeile3[i+3]+zeile3[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 3; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } for(int i=0; i<=3; i=i+1) { if(zeile2[i+1]+zeile2[i+2]+zeile2[i+3]+zeile2[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 2; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } for(int i=0; i<=3; i=i+1) { if(zeile1[i+1]+zeile1[i+2]+zeile1[i+3]+zeile1[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 1; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 0; } } //vertikal for(int i=0; i<=6; i=i+1) { if(zeile1[i+1]+zeile2[i+1]+zeile3[i+1]+zeile4[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 1; gewinnSteinRechtshupf = 0; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=6; i=i+1) { if(zeile2[i+1]+zeile3[i+1]+zeile4[i+1]+zeile5[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 2; gewinnSteinRechtshupf = 0; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=6; i=i+1) { if(zeile3[i+1]+zeile4[i+1]+zeile5[i+1]+zeile6[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 3; gewinnSteinRechtshupf = 0; gewinnSteinRunterhupf = 1; } } //von links oben nach rechts unten for(int i=0; i<=3; i=i+1) { if(zeile1[i+1]+zeile2[i+2]+zeile3[i+3]+zeile4[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 1; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=3; i=i+1) { if(zeile2[i+1]+zeile3[i+2]+zeile4[i+3]+zeile5[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 2; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=3; i=i+1) { if(zeile3[i+1]+zeile4[i+2]+zeile5[i+3]+zeile6[i+4] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+1; yGewinnStein = 3; gewinnSteinRechtshupf = 1; gewinnSteinRunterhupf = 1; } } //von rechts oben nach links unten for(int i=0; i<=3; i=i+1) { if(zeile1[i+4]+zeile2[i+3]+zeile3[i+2]+zeile4[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+4; yGewinnStein = 1; gewinnSteinRechtshupf = -1; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=3; i=i+1) { if(zeile2[i+4]+zeile3[i+3]+zeile4[i+2]+zeile5[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+4; yGewinnStein = 2; gewinnSteinRechtshupf = -1; gewinnSteinRunterhupf = 1; } } for(int i=0; i<=3; i=i+1) { if(zeile3[i+4]+zeile4[i+3]+zeile5[i+2]+zeile6[i+1] == gewinnZahl) { gewinner = aktuellerSpieler; gewinnerString = aktuellerSpielerString; xGewinnStein = i+4; yGewinnStein = 3; gewinnSteinRechtshupf = -1; gewinnSteinRunterhupf = 1; } } //Spielerwechsel if(aktuellerSpieler == 1) { aktuellerSpieler = 2; } else if(aktuellerSpieler == 2) { aktuellerSpieler = 1; } //println("aktuellerSpieler unten" + aktuellerSpieler); println(""); println(""); //Weiterschaltung in nŠchste Runde, wenn : direktNaechsteRunde = 1 ist } else { // wenn direktNaechsteRunde in der Mitte des Scripts =1 wird (d.h. wenn der Spieler neben das Spielfeld klickt). } } else { // wenn direktNaechsteRunde schon am Anfang des mouseDown()-Scripts =1 ist. } /* mausPressDurchlaeufe = mausPressDurchlaeufe + 1; println("mousePressed-durchlŠufe: " + mausPressDurchlaeufe); */ }