In: Computer Science
Create a swap method without a temporary variable.
Implement an algorithm to figure out if someone has won a game of tic-tac-toe.
import java.util.Arrays;
public class ArrayReview {
private int data[];
public ArrayReview(int n) {
data = new int[n];
for (int i = 0; i < n; i++) {
data[i] = (int) (Math.random() * 100);
}
}
public int[] getData() {
return data;
}
public void setData(int[] data) {
this.data = data;
}
@Override
public String toString() {
return Arrays.toString(data);
}
public void setKthItem(int k, int item) {
if (k < 0 || k >= data.length) {
return;
}
data[k] = item;
}
public int pickMaxIndex(int arr[], int start, int end) {
int max = start;
for (int i = start + 1; i <= end; i++) {
if (arr[i] > arr[max]) {
max = i;
}
}
return max;
}
public void swap(int arr[], int i, int j) {
if (arr[i] == arr[j]) {
return;
}
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
public void selectionSort() {
int i, j, max_index;
int n = data.length;
for (i = 0; i < n - 1; i++) {
max_index = i;
for (j = i + 1; j < n; j++)
if (data[j] > data[max_index])
max_index = j;
swap(data, max_index, i);
}
}
public static void main(String[] args) {
ArrayReview array = new ArrayReview(10);
System.out.println(array);
System.out.println("After sorting: ");
array.selectionSort();
for (int i : array.getData()) {
System.out.printf("%-4d", i);
}
System.out.println();
}
}
CODE
public void swap(int arr[], int i, int j) {
if (arr[i] == arr[j]) {
return;
}
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
CODE
class TicTacToe
{
public static final int X = 1, O = -1;
public static final int EMPTY = 0;
public int player = X;
private int[][] board = new int[3][3];
public boolean isEmpty = false;
public void putSign(int x, int y)
{
if(x<0 || x>2 || y<0 || y>2)
{
System.out.println("Invalid board position");
return;
}
if(board[x][y] != EMPTY)
{
System.out.println("Board position occupied");
return;
}
board[x][y] = player;
player = -player;
}
public boolean isWin(int player)
{
return ((board[0][0] + board[0][1] + board[0][2] == player*3) ||
(board[1][0] + board[1][1] + board[1][2] == player*3) ||
(board[2][0] + board[2][1] + board[2][2] == player*3) ||
(board[0][0] + board[1][0] + board[2][0] == player*3) ||
(board[0][1] + board[1][1] + board[2][1] == player*3) ||
(board[0][2] + board[1][2] + board[2][2] == player*3) ||
(board[0][0] + board[1][1] + board[2][2] == player*3) ||
(board[2][0] + board[1][1] + board[0][2] == player*3));
}
public void displayWinner()
{
if(isWin(X))
{
System.out.println("\n X wins...!!");
isEmpty=false;
}
else if(isWin(O))
{
System.out.println("\n O wins...!!");
isEmpty=false;
}
else
{
if(!isEmpty)
{
System.out.println("its a tie");
}
}
}
public String toString()
{
StringBuilder s = new StringBuilder();
isEmpty = false;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
switch(board[i][j])
{
case X:
s.append(" X ");
break;
case O:
s.append(" O ");
break;
case EMPTY:
s.append(" ");
isEmpty=true;
break;
}
if(j<2)
{
s.append("|");
}
}
if(i<2)
{
s.append("\n-----------\n");
}
}
return s.toString();
}
}