Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften???

tram2412

Mitglied
Servus Leute!
Ich bin neu hier im Forum und möchte deswegen um eure Hilfe bitten! Ich habe gerade zum Spaß ein automatisches Pixel-Fighting-Spiel programmiert.
Die FAKTEN:
-2 Pixel-Mannschaften stehen sich gegenüber, beide haben gleich viele Kämpfer
-in jedem Durchlauf kämpfen die benachbarten Pixel gegeneinander. Zum Beispiel wenn ein roter und ein blauer Pixel Kämpfen, und der blaue gewinnt, dann wird der rote Pixel blau!
-Wer gewinnt, entscheidet die Methode "nextBoolean()" aus der "Random"-Klasse

Das Problem:
-aus irgendeinem Grund gewinnt IMMER dieselbe Mannschaft! Ich poste euch hier den Code! berechne das ganze in der Main-Class und das Fenster in der Frame-Klasse

MAIN-CLASS
Java:
package com.tram.pixelfight;

import java.util.Random;

public class Main
{
    static Random r = new Random();
   
    static boolean[][] pixels = new boolean[100][100];
   
    public static void calculate()
    {
        for(int i = 0; i < pixels.length; i++)
        {
            for(int y = 0; y < pixels[i].length; y++)
            {
            w:    while(true)
                {
                    int next = r.nextInt(4); //Welcher pixel wird herausgefordert?
                    if(i == 0 && next == 0)continue;//verhindert ArrayIndexOutOfBoundException
                    if(y == 0 && next == 3)continue;                   
                    if(i == 99 && next == 2)continue;
                    if(y == 99 && next == 1)continue;
                   
                    switch(next) //gegen welchen Pixel soll gekämpft werden? LINKS, RECHTS, OBEN oder UNTEN?
                    {
                        case 0: if(pixels[i][y] != pixels[i-1][y])
                                {
                                    pixels[i-1][y] = (r.nextBoolean())? pixels[i-1][y] : !pixels[i-1][y];
                                }
                                break;

                        case 1: if(pixels[i][y] != pixels[i][y+1])
                                {
                                    pixels[i][y+1] = (r.nextBoolean())? pixels[i][y+1] : !pixels[i][y+1];
                                }
                                break;
                               
                        case 2: if(pixels[i][y] != pixels[i+1][y])
                                {
                                    pixels[i+1][y] = (r.nextBoolean())? pixels[i+1][y] : !pixels[i+1][y];
                                }
                                break;
                               
                        case 3: if(pixels[i][y] != pixels[i][y-1])
                                {
                                    pixels[i][y-1] = (r.nextBoolean())? pixels[i][y-1] : !pixels[i][y-1];
                                }
                                break;
                    }
                    break w;
                }               
            }
        }
    }
   
    public static void main(String[] args) throws InterruptedException
    {
        Frame f = new Frame();
       
        int fr = 0;
        int b = 0;
       
        for(int i = 0; i < pixels.length; i++)
        {
            for(int y = 0; y < pixels[i].length; y++)
            {
                if(i >= 50)
                {
                    pixels[i][y] = false;
                    b++;
                }
                else
                {
                    pixels[i][y] = true;
                    fr++;
                }
               
            }
        }
       
        System.out.println(b);
        System.out.println(fr);
       
        while(true)
        {
            calculate();
            Thread.sleep(1);
            f.screen.repaint();//Zeichnet das JFrame und Das JLabel neu
        }
       
    }
}

FRAME-CLASS
Java:
package com.tram.pixelfight;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Frame extends JFrame
{
    Screen screen = new Screen();
   
    public Frame()
    {
        super("Pixels Fighting");
        setSize(400,400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        screen.setSize(this.getSize());
        add(screen);
        getContentPane().setPreferredSize(new Dimension(400,400));
        pack();
        setVisible(true);
       
    }
   
   
   
    class Screen extends JLabel
    {
         @Override
         protected void paintComponent(Graphics g)
         {
             super.paintComponent(g);
             for(int i = 0; i < Main.pixels.length; i++)
                {
                    for(int y = 0; y < Main.pixels[i].length; y++)
                    {
                        if(Main.pixels[i][y])
                        {
                            g.setColor(Color.cyan);
                            g.fillRect(i*4, y*4, 4, 4);
                        }
                        else
                        {
                            g.setColor(Color.red);
                            g.fillRect(i*4, y*4, 4, 4);
                        }
                    }
                }
            
         }
    }
}

Würde mich über Hilfe und Verschläge freuen!

MFG tram2412
 

InfectedBytes

Top Contributor
SecureRandom wird da nicht viel dran ändern. Das "Problem" liegt daran, dass du unfair kämpfst. Du gehst das Feld von links nach rechts durch und lässt jedes Feld "kämpfen".
d.h. nun aber dass erstmal nur die blauen kämpfen und schonmal einige rote besiegen. Wenn die roten dran sind, sind sie bereits in der Unterzahl und haben somit statistisch nur noch sehr geringe chancen zu gewinnen.
 

tram2412

Mitglied
SecureRandom wird da nicht viel dran ändern. Das "Problem" liegt daran, dass du unfair kämpfst. Du gehst das Feld von links nach rechts durch und lässt jedes Feld "kämpfen".
d.h. nun aber dass erstmal nur die blauen kämpfen und schonmal einige rote besiegen. Wenn die roten dran sind, sind sie bereits in der Unterzahl und haben somit statistisch nur noch sehr geringe chancen zu gewinnen.
Genau das habe ich gebraucht! DANKE! <3 :) Also einmal von rechts nach links und dann von links nach rechts!? Das hat jedenfalls geklappt :) Soll ich den Code Posten?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Scaling Probleme Spiele- und Multimedia-Programmierung 6
J Probleme bei Pong Spiele- und Multimedia-Programmierung 9
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
J YoutubeAPI Livestream probleme Spiele- und Multimedia-Programmierung 3
G [LibGDX] Button Klick Probleme Spiele- und Multimedia-Programmierung 1
T Probleme mit JButton Spiele- und Multimedia-Programmierung 5
P Probleme mit VLCJ Spiele- und Multimedia-Programmierung 0
F Probleme bei der Soundwiedergabe Spiele- und Multimedia-Programmierung 0
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F BlueJ Ufospiel Probleme Spiele- und Multimedia-Programmierung 1
B Probleme mit AndEngine in Android Spiele- und Multimedia-Programmierung 1
M 2048, 3 kleine Probleme Spiele- und Multimedia-Programmierung 4
A Probleme mit Darstellung von Umgebungen mittels mehrdimensionaler Arrays Spiele- und Multimedia-Programmierung 8
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
J Perfomance Probleme beim eigenen Editor Spiele- und Multimedia-Programmierung 1
K Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 10
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
M Point & Click Thread Probleme Spiele- und Multimedia-Programmierung 20
K Probleme mit .jar Spiele- und Multimedia-Programmierung 12
L Probleme beim kompilieren von javakara Spiele- und Multimedia-Programmierung 3
D Probleme mit der Runnable jar Datei Spiele- und Multimedia-Programmierung 3
D Probleme mit objekt initializirung mit Mouselistener Spiele- und Multimedia-Programmierung 10
Black_ixx Hintergrund & Koordinaten Probleme Spiele- und Multimedia-Programmierung 2
B Probleme mit Texturen Spiele- und Multimedia-Programmierung 7
Maxim6394 Probleme bei Sidescroller Spiele- und Multimedia-Programmierung 5
R Probleme mit JPanel!KeyListener geht nicht Spiele- und Multimedia-Programmierung 6
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
T Probleme mit Skysphere in Opengl Spiele- und Multimedia-Programmierung 4
B Probleme mit redraw() Spiele- und Multimedia-Programmierung 3
Gossi Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage Spiele- und Multimedia-Programmierung 16
Gossi Probleme beim Laden der Images aus dem "Tutorial für Java-Spiele" Spiele- und Multimedia-Programmierung 4
S Probleme mit Tutorial Spiele- und Multimedia-Programmierung 3
T Probleme mit AffineTransform Spiele- und Multimedia-Programmierung 13
W Probleme mit Mouselook Spiele- und Multimedia-Programmierung 2
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 5
B GameGrid Probleme mit mehrere Actors Spiele- und Multimedia-Programmierung 2
M [Spiel] Kartenspiel Leben und Tod Tips und Probleme Spiele- und Multimedia-Programmierung 7
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
S Probleme mit JMenu in einem JFrame mit BufferStrategy Spiele- und Multimedia-Programmierung 2
Steev Probleme mit Kameraausrichtung bei ISO-Map Spiele- und Multimedia-Programmierung 3
R MediaPlayer macht Probleme Spiele- und Multimedia-Programmierung 2
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
prakdi Probleme mit Quaxlis tutorial Spiele- und Multimedia-Programmierung 5
D Java Pong Probleme Spiele- und Multimedia-Programmierung 7
T Java Sound Probleme Spiele- und Multimedia-Programmierung 8
P probleme mit key event Spiele- und Multimedia-Programmierung 11
T Bekanntes Heli Spiel -> Aber Probleme damit Spiele- und Multimedia-Programmierung 30
S Probleme mit Thread beim Streaming Spiele- und Multimedia-Programmierung 1
O Ampel - Probleme mit der Farbgebung Spiele- und Multimedia-Programmierung 16
F Probleme bei Bewegung Spiele- und Multimedia-Programmierung 7
P Probleme mit Vista und JOGL Spiele- und Multimedia-Programmierung 2
P Probleme mit Wolkenbewegung Spiele- und Multimedia-Programmierung 5
W Probleme mit dem setTextureCoordinate Spiele- und Multimedia-Programmierung 3
D Probleme beim Download von GIF-Bildern Spiele- und Multimedia-Programmierung 4
S Probleme mit dem Licht und dem KeyListener Spiele- und Multimedia-Programmierung 2
L Probleme Bei Pong Programmierung Spiele- und Multimedia-Programmierung 2
D Probleme bei ATI Karten bekannt? Spiele- und Multimedia-Programmierung 4
H Probleme bei Rotation Spiele- und Multimedia-Programmierung 9
X Probleme. Spiele- und Multimedia-Programmierung 2
E Probleme mit Kollisionserkennung ! Spiele- und Multimedia-Programmierung 2
F Probleme mit selbsterstelltem transparenten PNG Spiele- und Multimedia-Programmierung 5
S probleme mit material Spiele- und Multimedia-Programmierung 2
W Probleme beim entfernen von Childs im HauptSceneGraph Spiele- und Multimedia-Programmierung 8
N Pong - noch 2 kleinere Probleme Spiele- und Multimedia-Programmierung 16
M Probleme mit WaveFront-Object - Datei Spiele- und Multimedia-Programmierung 7
B Probleme beim zeichnen Spiele- und Multimedia-Programmierung 15
D Gomoku --- Probleme bei Instanzierung Spiele- und Multimedia-Programmierung 2
G Probleme beim installieren java 3d linux Spiele- und Multimedia-Programmierung 4
G Sound Probleme Spiele- und Multimedia-Programmierung 2
S Probleme mit Canvas! Spiele- und Multimedia-Programmierung 2
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
C Probleme mit Java3D (sun.awt.DrawingSurface) in Java 5 Spiele- und Multimedia-Programmierung 10
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
N Probleme mit View Spiele- und Multimedia-Programmierung 3
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
Q Mehr objekte darstellen als Pixel vorhanden Spiele- und Multimedia-Programmierung 6
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
J Bestimmte Pixel transparent erscheinen lassen Spiele- und Multimedia-Programmierung 5
M pixel auslesen in JOGLE Spiele- und Multimedia-Programmierung 3
B Java Pixel Malen Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Steev LWJGL: org.lwjgl.LWJGLException: Pixel format not accelerated Spiele- und Multimedia-Programmierung 9
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
G Pixel setzen mit TYPE_INT_ARGB Spiele- und Multimedia-Programmierung 10
D cm in pixel Spiele- und Multimedia-Programmierung 37
R int[] der Pixel aus PNG oder JPG ? Spiele- und Multimedia-Programmierung 2
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G Pixel Häufigkeiten entsprechent einfärben Spiele- und Multimedia-Programmierung 6
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
V Tranzparente Pixel Spiele- und Multimedia-Programmierung 5
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
G 2 dim. Pixel Array in AWT? Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben