⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 case.java

📁 一个小巧但非常有趣的游戏
💻 JAVA
字号:
package sudoku;import java.util.ArrayList;public class Case implements ICase{  private ArrayList _casesAutresTableaux;  private ArrayList _iCaseListArrayList;  private Carre _carre;  private Rangee _ligne;  private MiniRangee _miniLigne;  private Rangee _colonne;  private MiniRangee _miniColonne;  private Diagonale _diagonale1;  private Diagonale _diagonale2;  private int _value;  private boolean _toUpdate;  private boolean _lock;  private boolean _testOtherCaseIsDone;  private int _Nligne;  private int _Ncolonne;  private int _firstvalue;  private int _isAuHasard;  private int _finalValue;  private int _sizeLine;  private int _sizeColumn;  public Case(Carre carre, Rangee ligne, MiniRangee miniLigne, Rangee colonne, MiniRangee miniColonne,Diagonale diagonale1,Diagonale diagonale2,int value,int Nligne,int Ncolonne, int sizeLine, int sizeColumn)  {    _sizeLine = sizeLine;      _sizeColumn = sizeColumn;      _casesAutresTableaux = new ArrayList();    _iCaseListArrayList = new ArrayList();    _carre = carre;    _iCaseListArrayList.add(_carre);    _ligne = ligne;    _iCaseListArrayList.add(_ligne);    _miniLigne = miniLigne;    _colonne = colonne;    _iCaseListArrayList.add(_colonne);    _miniColonne = miniColonne;    _diagonale1 = diagonale1;    if(_diagonale1 != null)    {      _diagonale1.addCase(this);      _iCaseListArrayList.add(_diagonale1);    }    _diagonale2 = diagonale2;    if(_diagonale2 != null)    {      _diagonale2.addCase(this);      _iCaseListArrayList.add(_diagonale2);    }    _carre.addCase(this);    _ligne.addCase(this);    _colonne.addCase(this);    _miniLigne.addCase(this);    _miniColonne.addCase(this);    _firstvalue = value;    _Nligne = Nligne;    _Ncolonne = Ncolonne;    init();  }  public void clear()  {	  for(int i=0;i<_casesAutresTableaux.size();i++)	  {		  Case carreau = (Case) _casesAutresTableaux.get(i);		  carreau = null;	  }	  	  _casesAutresTableaux.clear();	  _casesAutresTableaux = null;	  for(int i=0;i<_iCaseListArrayList.size();i++)	  {		  ICaseList iCaseList = (ICaseList)_iCaseListArrayList.get(i);		  iCaseList = null;	  }	  	  _iCaseListArrayList.clear();	  _iCaseListArrayList = null;	  _carre = null;	  _ligne = null;	  _colonne = null;	  _diagonale1 = null;	  _diagonale2 = null;	  _miniLigne = null;	  _miniColonne = null;  }    public void init()  {    _value = _firstvalue;    _finalValue = _firstvalue;    _lock = false;    _toUpdate = false;    _testOtherCaseIsDone = true;    _isAuHasard = 0;  }  public void switchToFinalValue()  {    _finalValue = _value;  }  void startAgain()  {    _value = _firstvalue;    _lock = false;    _toUpdate = false;    _testOtherCaseIsDone = true;    _isAuHasard = 0;  }  public int getRow()  {    return _Nligne-1;  }  public int getColumn()  {    return _Ncolonne-1;  }  public boolean change(int value)  {    if(!_lock)    {      _value = value;      if(_value != 0)        sudoku.m_Resultats.add(this);      _toUpdate = true;      _lock = true;      _testOtherCaseIsDone = false;      _isAuHasard = Algo.getInstance().isAuHasard;    }    return _toUpdate;  }  public int getFinalValue()  {    return _finalValue;  }  public int findFinalValue()  {    if(_finalValue != 0)      return _finalValue;    else    {      for(int i=0;i<_casesAutresTableaux.size();i++)      {        Case currentCase = (Case) _casesAutresTableaux.get(i);        int value = currentCase.getFinalValue();        if(value != 0)          return value;      }    }    return 0;  }  public int getAuHasard()  {    return _isAuHasard;  }  public void undoAuHasard()  {    _lock = false;    _testOtherCaseIsDone = true;    if(_value != 0)      sudoku.m_Resultats.remove(this);    _value = _firstvalue;    _isAuHasard = 0;  }  public boolean isLock()  {    return _lock;  }  public boolean update()  {    boolean result = false;    if(_toUpdate)    {      _toUpdate = false;      for(int i=0;i<_iCaseListArrayList.size();i++)      {        ICaseList iCaseList = (ICaseList)_iCaseListArrayList.get(i);        result = (iCaseList.update(this)|| result);      }    }    return result;  }  public int getValue()  {    return _value;  }  public int getFirstValue()  {    return _firstvalue;  }  public void addCases(Case carreau)  {    _casesAutresTableaux.add(carreau);  }  public boolean testOtherCase(int niveau)  {    if(_testOtherCaseIsDone)      return false;    _testOtherCaseIsDone = true;    boolean result = false;    if(_value != 0)    {      /// si on vient de fixer la valeur en dur != 0, c'est que toutes les      /// autres posssibilit閟 sont impossibles      for(int i=0;i<_casesAutresTableaux.size();i++)      {        Case currentCase = (Case) _casesAutresTableaux.get(i);        result = currentCase.change(0) || result;      }    }    else if(niveau != 1)    {      /// si on vient d'annuler une possibilit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -