You are on page 1of 2

‫ – משחק‬3 ‫שעור‬

‫ ניתן לבחור מספר אחד‬.‫ הסטודנט משחק מול המחשב‬.‫ מספר זוגי‬N ,‫ מספרים‬N ‫נתון מערך של‬
.‫ המחשב בוחר ראשון‬.‫ מנצח מי שקבל סכום גדול יותר‬.‫מהקצה השמאלי או מהקצה הימני‬

‫) פונקציות עזר‬1

public class Game {


public static void randArray(int [] arr){
for(int i=0; i<arr.length; i++){
arr[i] = (int)(Math.random()*arr.length*10);
}
}
public static void printArray(int [] arr, int i, int j){
for(int t=i; t<=j; t++){
System.out.print(arr[t]+", ");
}
System.out.println();
}

‫) פונקצית משחק‬2

public static void game(int []arr){


// assumption: the array length is even
// i is the left index, j is the right index
// the computer is the first, the student is the second
int size = arr.length;
int sumEven = 0, sumOdd = 0;
int i=0, j=size-1;
boolean even;
for(int k=0; k<size; k=k+2){
sumEven = sumEven + arr[k];
sumOdd = sumOdd + arr[k+1];
}
int sumFirst,sumSecond=0;
if (sumEven<sumOdd){
sumFirst = arr[size-1];
j = j - 1;
even = false;
}
else{
sumFirst = arr[0];
i = i + 1;
even = true;
}
printArray(arr,i,j);
String prompt = "to choose left enter 0, to choose right enter 1: ";
int second;
int choice = MyConsole.readInt(prompt);
if (choice==0){
second = i;
i++;
}
else{
second = j;
j--;
}
sumSecond = sumSecond + arr[second];
while(i<j){
if (i%2==0){
if (even){
sumFirst = sumFirst + arr[i];
i++;
}
else{
sumFirst = sumFirst + arr[j];
j--;
}
}
else{// i odd
if (even){
sumFirst = sumFirst + arr[j];
j--;
}
else{
sumFirst = sumFirst + arr[i];
i++;
}
}
printArray(arr,i,j);
choice = MyConsole.readInt(prompt);
if (choice==0){
second = i;
i++;
}
else{
second = j;
j--;
}
sumSecond = sumSecond + arr[second];
}
System.out.println("sumFirst="+sumFirst+", sumSecond="+sumSecond);
}
:‫) ) פונקצית בדיקה‬3

public static void main(String[] args) {


//int arr[] = {3,19,8,11,7,2,18,6,5,10};
int size = 8;
int arr[] = new int[size];
randArray(arr);
printArray(arr, 0, arr.length-1);
game(arr);
}
}

You might also like