Идеи по сюжету и начальные навыки в кодинге (Java, C++; новелы программирую в RenPy).
Пишите ВК / куда угодно. Работаю бесплатно. Почему бесплатно? Совершенно не имею опыта, поэтому первоочередным заданием есть его получение в некомерческих проектах, создание резюме, знакомство с творческими людьми для дальнейшего развития в планы покрупнее.
Спасибо, что зашли! Буду рад знакомству ;)
Сообщение отредактировал Leraje - Суббота, 21/Окт/2017, 16:42
При базовых навыках программирования на любом языке, в частности не самого простого по синтаксису: Java – думаю, проблем с изучением RenPy у вас не возникнет.
AppGameKit, на сколько мне известно, проблемно портируется на более увесистые платформы, а новеллы проще и продуктивнее писать на соответствующих движках.
Если не затруднит, скиньте любые собственные наработки (можно кодом), чтобы оценить навыки. Ну а я, в свою очередь, постараюсь подыскать вам хороший и не стыдный проект, в котором бы пригодился пряморукий программер.
JAVA - На данный момент изучаю OOP – есть коды с инкапсуляцией, полиморфизмом, наследованием. Создавал простенький проект типа автомата, который бы позволял людям самим расплачиваться на кассах
System.out.print ("\nHi. Welcome to Dmytro’s! What is your name?"); // creating a beautiful output on our screen input = new Scanner (System.in); String customerName = input.next(); // creating a Scanner (+ its first object to input a user name) input.nextLine(); //clear the buffer
System.out.print ("\nOK, "+ customerName + ", enter the price of each item in dollars and cents and hit the ENTER key." + "\nFor example, if your item costs $5.99, you would enter 5.99" + "\n\nIf you make a mistake when you enter a price enter a zero for the next entry." + "\nThe last price you entered will be subtracted from your sub-total." + "\n\nWhen you've entered all of your prices, enter -1 to indicate that you are done." + "\nWe’ll then calculate what your total owing is.\n"); // creating a beautiful output on our screen
double totalValue = 0; // creating double variable – total Value of goods double[] priceArray = new double[10]; // creating an Array that will consist of 10 elements int arrayCounter = 0; // Array counter double lastPurchase = 0; NumberFormat formatter = new DecimalFormat("#0.00"); // creating numberformat and decimal format classes for it’s later use while formatting numbers.
for(int i = 0;i< 10 ;){ // setting up an appropriate (in this case “for”) loop with appropriate values System.out.print("\nEnter a price for item #"+ (i+1) + ": "); double price = input.nextDouble(); // creating another Scanner object to further price input input.nextLine(); // clear the buffer
if (price > 99.99){ // creating an “if” statement to test values System.out.println("INVALID PRICE: please re-enter…");}
else if (price <0 && price !=-1) { System.out.println("INVALID PRICE: please re-enter…");} // there’s no items that costs more than $99.99 or less than 0.
else if (price >0 && price <100){
totalValue += price; //making statements to keep a running total of the prices entered
priceArray[arrayCounter]= price; arrayCounter++; //store each of the prices the user enters in an array
lastPurchase = price; i++ ;
System.out.println("That was $" + formatter.format(price) + ". Your sub-total is $" + formatter.format(totalValue)); } //present the current sub-total of purchases using formatter to keep the numbers in correct format, particularly ##.##.
else if (price == 0){ // enter a zero to remove the last entry
totalValue = totalValue - lastPurchase; // code will adjust the running total to the previous sub-total. arrayCounter --; // that price will also remove from the array. System.out.println("Zero entered: removing last item @$" + formatter.format(lastPurchase) + "…your sub-total is now $" + formatter.format(totalValue)); // the program show the removal of the last price, using formatter to keep the numbers in correct format, particularly ##.##. }
else if (price == - 1){ //enter -1 to indicate you are done System.out.println("-1 entered, calculating total owing…"); System.out.println("\nOK " + customerName + ", your individual purchase prices are:");
for (int i1= 0; i1 < arrayCounter; i1 ++) { //the price of each item purchased (we are using another loop here to display values from an array) System.out.println("$" + formatter.format(priceArray[i1]));} System.out.println("YOUR SUB-TOTAL IS: $" + formatter.format(totalValue)); // program will total up the purchases // using formatter to keep the numbers in correct format, particularly ##.##.
System.out.println("\nThe HST Sales Tax on your purchases is: $" + formatter.format(calculateHST(totalValue))); // using formatter to keep the numbers in correct format, particularly ##.##. double grandTotal = totalValue + (calculateHST(totalValue)); // - the Grand Total of purchases plus taxes (adding total amount and taxes)
System.out.println("\nYOUR GRAND TOTAL IS: $" + formatter.format(grandTotal) + ", which will round to $" + formatter.format(roundgrandTotal(grandTotal))); System.out.print ("\nEnter the amount you are tendering for payment: $");
double payment = input.nextDouble(); input.nextLine(); //creating another Scanner object to input the money user want to insert the machine double change = payment - (roundgrandTotal(grandTotal)); //subtracting this inserted money from the grand value System.out.print ("\nFrom $" + formatter.format(payment) + " your change is $" + formatter.format(change) + "\n"); // using formatter to keep the numbers in correct format, particularly ##.##.
double cent5 = otherDollars7/0.05; int Cents5 = (int)cent5; //dividing the change to each bill (to know their amount which should be returned by the machine)
if (twentyDollars != 0){System.out.println (twentyDollars + " $20 bills");} if (tenDollars != 0){System.out.println (tenDollars + " $10 bills");} if (fiveDollars != 0){System.out.println (fiveDollars + " $5 bills");} if (twoDollars != 0){System.out.println (twoDollars + " $2 bills");} if (oneDollars != 0){System.out.println (oneDollars + " $1 bills");} if (Cents25 != 0){System.out.println (Cents25 + " 25 cents");} if (CentsTen != 0){System.out.println (CentsTen + " 10 cents");} if (Cents5 != 0){System.out.println (Cents5 + " 5 cents");}
//using here another “if” statement not to show on the screen the bills machine don’t have to return
System.out.println ("\nPlease check that your change received is correct."); System.out.println ("\nThanks for shopping at Dmytro’s, " + customerName + "!");
break;
} // Some another output and the program finished
}
}
} // end class
С++ На данный момент это ввод-вывод из файлов, а как проект – программа, которая создает полную статистику выбранного диапазона чисел
/* Program Name: stats Description: C++ console applications to compile the statistics on a list of integers Author: Dmytro Liaska */
// gats.ca / encyclopedia p. 30-31 a help function for the heapSort() to establish heap property among the elements of the vector void heapify(vector<unsigned>& v, int parentNode, int heapSize) { while (true) { double largestNode, leftNode = parentNode * 2; if (leftNode > heapSize) return; if (v[leftNode - 1] > v[parentNode - 1]) largestNode = leftNode; else largestNode = parentNode; double rightNode = leftNode + 1; if (rightNode <= heapSize && v[rightNode - 1] > v[largestNode - 1]) largestNode = rightNode; if (largestNode != parentNode) { swap(v[largestNode - 1], v[parentNode - 1]); parentNode = largestNode; } else return; }}
// gats.ca / encyclopedia p. 30-31 // a sorting algorithm to sort the elements of the vector and keep the corresponding values of another linked void heapSort(vector<unsigned>& v) { int heapSize = v.size(); for (double parentNode = heapSize / 2; parentNode > 0; --parentNode) heapify(v, parentNode, heapSize); for (int idx = v.size() - 1; idx > 0; --idx) { swap(v[0], v[idx]); heapSize = heapSize - 1; heapify(v, 1, heapSize); }}
// a function to find the median of the sorted vector double findMedian(vector<unsigned> v) // gats.ca / encyclopedia p. 240 { double median; // It is the value for which ½ of the samples have a lower value and ½ of the samples have a greater value. if (v.size() % 2 == 0) median = (v[v.size() / 2] + v[v.size() / 2 - 1]) / 2.0; else median = v[v.size() / 2]; return median; }
// a function to find the arithmetic mean of the elements in vector double findArithmeticMean(vector<unsigned> v) { // gats.ca / encyclopedia p. 238 double mean = 0; for (auto v : v) mean += v; return mean /= v.size(); }
// a function to find the variance of the vector double findVariance(vector<unsigned> vector) { // gats.ca / encyclopedia p. 240 double accumulator = 0; for (auto v : vector) accumulator += (v - findArithmeticMean(vector)) * (v - findArithmeticMean(vector)); return accumulator / vector.size();}
// a function to find the standard deviation of the vector double findStdDev(vector<unsigned> v) // gats.ca / encyclopedia p. 239 { return sqrt(findVariance(v));}
// a function to find the abolute deviation of the vector double findAbsoluteDeviation(vector<unsigned> vector, double deviator) { // the absolute deviation of an element of a data set is the absolute difference between that element and a given point (Wikipedia) double absDev = 0; for (auto v : vector) absDev += abs(v - deviator); return absDev / vector.size();}
void findOutliers(vector<unsigned> vect, vector<unsigned>& outliersV, double mean, double stdDev, int multiplier) { // absolute difference exceed standard deviation multiplied by multiplier for (int i = 0; i < vect.size(); ++i)
if ((mean - vect[i]) >= stdDev * multiplier) outliersV.push_back(i); }
void findMinusOutliers(vector<unsigned> vect, vector<unsigned>& outliersV, double mean, double stdDev, int multiplier) { // absolute difference exceed standard deviation multiplied by multiplier for (int i = 0; i < vect.size(); ++i)
if ((mean - vect[i]) <= stdDev * multiplier) outliersV.push_back(i);}
int findHighestFreq(vector<unsigned> vect) { // algorithm to find mode consist of 2 parts - 1st- find most freq occuring value int freq = 0, tempFreq = 0; double temp = vect[0]; for (auto v : vect) { if (temp == v) { tempFreq++; if (tempFreq > freq) freq = tempFreq; } else { temp = v; tempFreq = 1; } } return freq;}
int findModes(vector<unsigned> vect, vector<unsigned>& modeVect) { //2nd part of finding a mode is to find which number occurs the most frequently int freq = findHighestFreq(vect); if (freq == 1) return 0; int tempFreq = 0; double temp = vect[0]; for (auto v : vect) { if (temp == v) { ++tempFreq; if (tempFreq == freq) modeVect.push_back(v); } else { temp = v; tempFreq = 1; } } if (modeVect.size() * freq == vect.size()) { modeVect.clear(); freq = 0; } modeVect.shrink_to_fit(); return freq; }
int main() { cout << "Enter a white space separated data values terminated by ^Z" << endl;
if (v.size() == 0) { cout << endl << "No samples! Exit " << endl; return 1; }
heapSort(v); // sorting
double min = v[0]; // as it already sorted min value will be the 1st value in vector double max = v[v.size() - 1]; // v.size()-1 to find last value in vector, which is the largest cause of sorting
double median = findMedian(v); // median double mean = findArithmeticMean(v); // mean double variance = findVariance(v); // variance double standartDeviation = findStdDev(v); // standart deviation double meanAbsDev = findAbsoluteDeviation(v, mean); // mean absolute deviation double medianAbsDev = findAbsoluteDeviation(v, median); // meadian absolute deviation
vector<unsigned> modeVect; int freq = findModes(v, modeVect);
// correctly formatting and outputting 3x outliers (if any) cout << left << setw(COLUMN_1_SIZE) << "<= 3 dev below:"; if (outliers3.empty()) cout << right << setw(COLUMN_2_SIZE) << "0 <0.000%>" << endl; else { cout << right << setw(COLUMN_2_SIZE) << outliers3.size() << " <" << outlBelow3Perc << "%> " << endl; }
// correctly formatting and outputting 2x outliers (if any) cout << left << setw(COLUMN_1_SIZE) << "<= 2 dev below:"; if (outliers2.empty()) cout << right << setw(COLUMN_2_SIZE) << "0 <0.000%>" << endl; else { cout << right << setw(COLUMN_2_SIZE) << outliers2.size() << " <" << outlBelow2Perc << "%> " << endl; }
// correctly formatting and outputting 2x outliers (if any) cout << left << setw(COLUMN_1_SIZE) << ">= 2 dev above:"; if (outlierAbove2.empty()) cout << right << setw(COLUMN_2_SIZE) << "0 <0.000%>" << endl; else { cout << right << setw(COLUMN_2_SIZE) << outlierAbove2.size() << " <" << outlAbove2Perc << "%> " << endl; }
// correctly formatting and outputting 3x outliers (if any) cout << left << setw(COLUMN_1_SIZE) << ">= 3 dev above:"; if (outlierAbove3.empty()) cout << right << setw(COLUMN_2_SIZE) << "0 <0.000%>" << endl; else { cout << right << setw(COLUMN_2_SIZE) << outlierAbove3.size() << " <" << outlAbove3Perc << "%> " << endl; }
}
С++ заставляет меня плакать по вечерам, о том какой я тупой.
AGK -
Движение спрайта по экрану, стрельба (тут особо нечего показывать). Новеллы легко (но не легче чем в Ren’Py делать. Я пробовал вставить спрайты с текстом, которые бы перебрасывали на следующую страницу и тд с помощью if GetPointerPressed() = 1 and GetSpriteHit(GetPointerX(),GetPointerY()) = ng_spr -то есть поиск координат спрайта и если щелчек попадает по нему то происходит какое-то действие. То есть так можно создать меню с выборами персонажа и все будет работать. Я бы не сказал что с портированием проблемы, может я плохо понимаю что вы имеете ввиду.
Но потом я столкнулся с Ren’Py и понял ,что программировать там намного легче. Читаю документацию на офф сайте. Прошел разделы быстрый старт и GUI.
Я не то чтобы не ищу ХОРОШИЙ и НЕ СТЫДНЫЙ проект, но как было написано выше в первую очередь я хотел бы сам оценить свои навыки, ведь теория одно, а практика совершенно другое. Поэтому, я не хотел бы отягощать опытных в этом деле людей своим зачаточным пониманием построения ВН.
Идеальным вариантом была бы кооперация с такими же новичками, которое просто отдают себе отчет в том, что делают и которые понимают, что есть маленький красивый проект с последующим ростом.
up - ищу небольшой проект, который очень хотелось бы закончить. желательно в пределах нескольких месяцов, а не растягивать на года. буду рад кооперированию с такими же новичками как сам. пишите - кто ищет кодеров с начальными навыками, так и ребята без команды. работаю за идею и просто для развлечения.
На самом деле, в ренпай я не гений, поэтому было бы не плохо отдельного программиста для моего проекта, но на данный момент у меня только я - сценарист и дизайнер, и друг - музыкант, не вижу смысл звать пока нет художников :(
Если заинтересовало, пиши
Сообщение отредактировал recent_death - Воскресенье, 22/Окт/2017, 09:43