Hey Leute so meine Hausaufgaben waren: 1), um den Benutzer dazu auffordern, die Anzahl der Zellen C
2) festzustellen, eine ganze Zahl Arrayzelle [] mit C Elementen
3) Prompt eingeben der Benutzer, um die Anzahl der Zeitschritte einzugeben N
3) Den Benutzer auffordern, den Index der Zellen einzugeben, die 1 enthalten (negativen Index eingeben)
4) Führen Sie den zellularen Automaten für N Zeitschritte unter Verwendung der definierten Regeln aus über
5) Zeigen Sie bei jedem Zeitschritt die Zellen an und drucken Sie ein '#', wenn die Zelle ein 1, Leerzeichen enthält, wenn die Zelle 0Java (nicht so) Einfache Formatierung
Eine gewünschte Ausgabe wäre:
Enter number of cells (<= 80): 10
Enter number of time steps: 10
Enter the index of occupied cells (negative index to end): 4 6 -1
# #
####
## #
### ##
# ####
### #
# # ##
######
# #
# ##
# ###
Mein Code so weit ist dies:
import java.util.Scanner;
class P7{
public static void main(String[] args){
int i, N, C, index;
Scanner in = new Scanner(System.in);
System.out.println("Enter number of cells(<=80):");
C = in.nextInt();
int[] cell = new int[C];
System.out.println("Enter number of time steps:");
N = in.nextInt();
System.out.println("Enter the index of occupied cells(-num to end):");
for(i = 0; i < C; i++){
cell[i] = 0;
}
while(true){
index = in.nextInt();
if(index < 0){
break;
}
cell[index] = 1;
}
for(i = 0; i < N; i++)
updateCells(cell);
displayCells(cell);
}
public static void updateCells(int array[]){
int i;
int[] temp = new int[array.length];
for(i = 1; i < array.length - 1; i++){
if(array[i]==1 && array[i-1]==1 && array[i+1]==1)
temp[i] = 0;
else if(array[i]==1 && array[i-1]==1 && array[i+1]==0)
temp[i] = 1;
else if(array[i]==0 && array[i-1]==1 && array[i+1]==1)
temp[i] = 1;
else if(array[i]==0 && array[i-1]==1 && array[i+1]==0)
temp[i] = 0;
else if(array[i]==1 && array[i-1]==0 && array[i+1]==1)
temp[i] = 1;
else if(array[i]==1 && array[i-1]==0 && array[i+1]==0)
temp[i] = 1;
else if(array[i]==0 && array[i-1]==0 && array[i+1]==1)
temp[i] = 1;
else if(array[i]==0 && array[i-1]==0 && array[i+1]==0)
temp[i] = 0;
}
for(i = 0; i < array.length; i++){
array[i] = temp[i];
}
}
public static void displayCells(int data[]){
int i;
for(i=0;i < data.length; i++){
if(data[i] == 1)
System.out.println("#");
else if(data[i] == 0)
System.out.println(" ");
}
}
}
Dies ist meine aktuelle Ausgabe:
Enter number of cells(<=80): 10
Enter number of time steps: 3
Enter the index of occupied cells(-num to end):
1
2
3
4
-1
#
#
#
#
Jedwedes Hilfe versteht sich, : D
'println' lesen Sie die Dokumentation für diese Funktion. Während Sie dort sind, schauen Sie sich auch die Funktion 'print' an – njzk2