Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-05-2011, 12:51   #1 (permalink)
User
 
Benutzerbild von Match_Boxer
 
Registriert seit: Jun 2006
Ort: Wo andere Urlaub machen
Beiträge: 79
sudoku regeln

hi,

ich steh mal wieder aufm schlauch

ich muss eine sudoku variante machen die auch im prinzip dieselben regeln hat.
ist auch schon ziemlich fertig und funktioniert soweit. doch bei der abfrage ob die position gültig, also die selbe Zahl in der selben reihe, zeile oder 3x3Box bereits existiert! ich hab ein 2dimensionales fieldArray das die jeweiligen spielsteine (tiles) enthält.
hier frage ich die zeilen und die reihen ab, aber wie mach ich das am besten für die 3x3Boxen?

PHP-Code:
function isValidMove(row:int,col:int,nr:int)
        {
            
MonsterDebugger.trace(thisfieldArray);

            if (
nr == 0)
            {
                return 
true;
                
trace("Joker is always valid");
            }
            
//compare rows and colums
            
for (var i:uint=0i<fieldLengthi++)
            {

                if (
fieldArray[row][i].number == nr)
                {
                    
trace("nr exists in row");
                    
takeLive();
                    return 
false;
                }

                if (
fieldArray[i][col].number == nr)
                {
                    
trace("nr exists in colum");
                    
takeLive();
                    return 
false;
                }
            }

            return 
true;
        } 
EDIT: hab jetzt doch was gefunden, hab an sowas in der richtung auch schon gedacht.
in der Tile klasse beim platziern festlegen wie die startwerte der reihen und zeilen der jeweiligen box sind. und es funktioniert auch.aber geht das nicht einfacher?
PHP-Code:
// Work out what region this cell is in
        
if(3// Region 1, 2 or 3
        
{
                if(
3)
                {
                        
this.Region 1;
                        
this.RegionRowStart 0;
                        
this.RegionColStart 0;
                }
                else if(
>= && 6)
                {
                        
this.Region 2;
                        
this.RegionRowStart 3;
                        
this.RegionColStart 0;
                }
                else if(
>= 6)
                {
                        
this.Region 3;
                        
this.RegionRowStart 6;
                        
this.RegionColStart 0;
                }
        }
        else if(
>= && 6// Region 4, 5 or 6
        
{
                if(
3)
                {
                        
this.Region 4;
                        
this.RegionRowStart 0;
                        
this.RegionColStart 3;
                }
                else if(
>= && 6)
                {
                        
this.Region 5;
                        
this.RegionRowStart 3;
                        
this.RegionColStart 3;
                }
                else if(
>= 6)
                {
                        
this.Region 6;
                        
this.RegionRowStart 6;
                        
this.RegionColStart 3;
                }
        }
        else if(
>= 6// Region 7, 8 or 9
        
{
                if(
3)
                {
                        
this.Region 7;
                        
this.RegionRowStart 0;
                        
this.RegionColStart 6;
                }
                else if(
>= && 6)
                {
                        
this.Region 8;
                        
this.RegionRowStart 3;
                        
this.RegionColStart 6;
                }
                else if(
>= 6)
                {
                        
this.Region 9;
                        
this.RegionRowStart 6;
                        
this.RegionColStart 6;
                }
        } 
__________________
[gg]das Leben ist ein schei* Spiel, aber mit einer Saugeilen Grafik[/gg]

Geändert von Match_Boxer (25-05-2011 um 13:55 Uhr)
Match_Boxer ist offline   Mit Zitat antworten
Alt 25-05-2011, 15:29   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.869
etwas kürzer
PHP-Code:
function isValidMove(row:intcol:intnr:int)
{
    
MonsterDebugger.trace(thisfieldArray);

    if (
nr == 0)
    {
        
trace("Joker is always valid");
        return 
true;
    }
    
    
//offsets
    
var _r:int Math.floor(row 3);
    var 
_c:int Math.floor(col 3);
    
    
//compare rows and colums
    
for (var i:uint=0i<fieldLengthi++)
    {
        if (
fieldArray[row][i].number == nr)
        {
            
trace("nr exists in row");
            
takeLive();
            return 
false;
        }

        if (
fieldArray[i][col].number == nr)
        {
            
trace("nr exists in colum");
            
takeLive();
            return 
false;
        }
        
        if (
fieldArray[int(i/3) + _r][i%_c].number == nr)
        {
            
trace("nr exists in field");
            
takeLive();
            return 
false;
        }
    }

    return 
true;

und zum Thema Region (aus deinem Code):
PHP-Code:
this.region Math.floor(row 3) * Math.floor(col 3) + 1
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 25-05-2011, 18:02   #3 (permalink)
User
 
Benutzerbild von Match_Boxer
 
Registriert seit: Jun 2006
Ort: Wo andere Urlaub machen
Beiträge: 79
perfekt danke!!! das mit den offsets meinte ich!

den 2ten code hab ich nur direkt von einer site rauskopiert zur varanschaulichung, hab da eben nix mit region

danke danke!!!
__________________
[gg]das Leben ist ein schei* Spiel, aber mit einer Saugeilen Grafik[/gg]
Match_Boxer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash 5] Einzelnes Sudoku strich-sieben Flash Einsteiger 2 28-11-2009 13:43
Sudoku Algorithmus Lidl ActionScript 1 1 20-12-2006 10:54
Sudoku georgexp Spielkonzepte und Spieleprogrammierung 18 06-10-2005 07:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele