1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
   | public boolean onTouchEvent(MotionEvent evt) {
 
		if (evt.getAction() == MotionEvent.ACTION_DOWN) {
			int x = (int) evt.getX();
			int y = (int) evt.getY();
			boolean terminee = affTerminee && isTerminerClick(x, y);
 
			byte numTor = tortueClique((int) evt.getX(), (int) evt.getY());
			if ((numTor != -1 && !oeufT && !oeufC) && cliquePossible(numTor)) {
				if (clTor1 == -1 && confTab[numTor] == conf.getPlayer()) {
					clTor1 = numTor;
					tcercle.clear();
					tcercle.add(numTor);
					for (byte[] poss : conf.verifCoupObligatoire()) {
						if (Configuration.en37(poss[0]) == numTor) {
							transTortue.add(new byte[] {
									Configuration.en37(poss[2]),
									Configuration.en37(poss[0]), poss[1] });
						}
					}
					if (transTortue.isEmpty()) {
						for (byte[] poss : conf.possibleMove(
								Configuration.en81(numTor), (byte) 0)) {
							transTortue.add(new byte[] {
									Configuration.en37(poss[2]),
									Configuration.en37(poss[0]), poss[1] });
						}
					}
					invalidate();
				} else if (clTor1 != -1) {
					if (clTor2 == -1) {
						clTor2 = numTor;
						confTab[clTor2] = confTab[clTor1];
						confTab[clTor1] = 0;
						boolean a = false;
						for (byte[] coup : transTortue) {
							if (clTor1 == coup[1] && clTor2 == coup[0]) {
								if (coup[2] == 3) { // Si l'on doit
													// retourner une tortue
									conf.coupJoue(Configuration.en81(clTor1),
											choixTortue(),
											Configuration.en81(clTor2));
 
								} else if (coup[2] != 0) {
									conf.coupJoue(Configuration.en81(clTor1),
											coup[2], Configuration.en81(clTor2));
									tcercle.clear();
									saute = coup[2];
									clTor1 = clTor2;
									clTor2 = -1;
									a = true;
								} else {
									conf.coupJoue(Configuration.en81(clTor1),
											(byte) 0,
											Configuration.en81(clTor2));
									saute = 0;
									a = true;
								}
							}
						}
						transTortue.clear();
 
						if (saute > 0) {
							for (byte[] poss : conf.possibleMove(
									Configuration.en81(clTor1), saute)) {
								transTortue.add(new byte[] {
										Configuration.en37(poss[2]),
										Configuration.en37(poss[0]), poss[1] });
							}
							if (transTortue.isEmpty()) {
								saute = -1;
								clTor1 = -1;
								clTor2 = -1;
								conf.changePlayer();
								affPossibleMove();
							}
						} else if (!a) {
							clTor1 = -1;
							clTor2 = -1;
							affPossibleMove();
						} else {
							clTor1 = -1;
							clTor2 = -1;
							conf.changePlayer();
							tcercle.clear();
							if (multi) {
								affPossibleMove();
							}
							saute = -1;
 
						}
						verifWin();
						invalidate();
					}
				}
 
			}
			if (!multi && conf.getPlayer() == 2 && !win && !threadD) {
				// conf.printHexRV();
				threadD = true;
				Swingworker sw = new Swingworker();
				sw.execute();
 
			}
		}
		return true;
	} | 
Partager