// 2d массив с движением игрока в случайной стартовой позиции
import java.util.Scanner;
import java.util.Random;
public class Components
{
public Components()
{
Graph();
}
int Row,Col,Num1,Num2;
char Move;
boolean Running = true;
Scanner input = new Scanner(System.in);
void TwoArray(int gph [][])
{
for(int i=0;i<Row;i++)
{
for(int x=0;x<Col;x++)
{
System.out.print(gph[i][x] + "\t");
}
System.out.println();
}
}
void Graph()
{
Random random = new Random();
System.out.println("Please Enter The Number Of Row:");
Row = input.nextInt();
System.out.println("Please Enter The Number Of Columns:");
Col = input.nextInt();
Num1 = random.nextInt(Row) + 1;
Num2 = random.nextInt(Col) + 1;
int Array[][] = new int [Row][Col];
for(int i=0;i<Row;i++)
{
for(int x=0;x<Col;x++)
{
Array[i][x] = 0;
}
}
Array[Num1][Num2] = 1;
int p1 = Num1;
int p2 = Num2;
TwoArray(Array);
while(Running)
{
Move = input.next().charAt(0);
switch(Move)
{
case 'w':
case 'W':
Array[p1][p2] = 0;
Array[p1-=1][p2] = 1;
TwoArray(Array);
break;
case 's':
case 'S':
Array[p1][p2] = 0;
Array[p1+=1][p2] = 1;
System.out.flush();
TwoArray(Array);
break;
case 'd':
case 'D':
Array[p1][p2] = 0;
Array[p1][p2+=1] = 1;
System.out.flush();
TwoArray(Array);
break;
case 'a':
case 'A':
Array[p1][p2] = 0;
Array[p1][p2-=1] = 1;
System.out.flush();
TwoArray(Array);
break;
case 'l':
case 'L':
Running = false;
input.close();
break;
default:
System.out.println("Please Press Proper Keys!");
break;
}
}
}
}
cdespinosa описал сценарий № 1 хорошо, таким образом, я займусь № 2.
Я еще не сделал этого на iPhone, но на настольной среде самый легкий способ обработать, это должно сохранить Ваши данные конфигурации в отдельной базе данных. Можно присоединить к нескольким базам данных скорее легко. Запустите путем открытия основной базы данных, которая должна, вероятно, быть базой данных, которая может измениться. Затем sqlite3_exec
ATTACH
оператор, который похож на это:
ATTACH 'filepath' AS config;
С тех пор можно сделать что-то вроде этого:
SELECT * FROM UserTableName;
SELECT * FROM config.ConfigurationTableName;
Это - мое понимание, что, если Вы пишете в базу данных конфигурации, приложение приведет проверку подписи к сбою и не запустится, и версия SQLite, включенного с iPhone, является достаточно взрослой для не поддержки флага только для чтения. Поэтому необходимо скопировать файл базы данных конфигурации в песочницу и открытый, которые копируют вместо того в пакете.
(Можно, конечно, использовать SQL и скопировать значения от одной базы данных до другого. Но если Вы уже копируете всю базу данных конфигурации в свою песочницу..., и необходимо быть... затем, это - просто дополнительный шаг. Просто присоединение.)
Я надеюсь, что кто-то еще может предоставить Вам больше деталей.:)
Когда пользователь обновляет приложение, старый комплект приложений удаляется, и новый комплект приложений установлен, но пользовательские данные, связанные с комплектом приложений, неповреждены.
Таким образом, Ваш выбор состоит в том, чтобы a) оставить Ваши данные в комплекте приложений (это будет заменено автоматически), или b) в одностороннем порядке скопировать его в пользовательскую область данных на первом показе (таким образом, Вы намеренно замените его на обновлении).
Я оставлю № 2 sqlite-хорошо-осведомленному человеку, но можно хотеть использовать тег "sqlite" вместо тега "mysql", если это - то, что Вы на самом деле делаете.