- 1
Dictionary<Tuple<MapOfRestoredOwnership, bool, bool, bool>, IDictionary<PropertySqlGeography, IEnumerable<LandConsolidationData>>> villages
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
Dictionary<Tuple<MapOfRestoredOwnership, bool, bool, bool>, IDictionary<PropertySqlGeography, IEnumerable<LandConsolidationData>>> villages
Parameter for function...
0
using System;
namespace MainNamespace
{
class SelectionSort
{
private static int FindSmallest(int[] arr)
{
int smallest = arr[0];
int smallestIndex = 0;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] < smallest)
{
smallest = arr[i];
smallestIndex = i;
}
}
return smallestIndex;
}
public static int[] ArraySort(int[] arr)
{
int[] newArr = new int[arr.Length];
for (int i = 0; i < arr.Length; i++)
{
int smallestIndex = FindSmallest(arr);
int arrayBeginningIndex = i;
newArr[arrayBeginningIndex] = arr[smallestIndex];
arr[smallestIndex] = Int32.MaxValue;
}
return newArr;
}
}
class MainClass
{
const int sizeOfArr = 7;
static int FindMaxProduct(int[] arr)
{
int maxProduct = 1;
int firstIndex = 0;
int secondIndex = 1;
int lastIndex = sizeOfArr - 1;
int beforeLastIndex = sizeOfArr - 1 - 1;
int beforeBeforeLastIndex = sizeOfArr - 1 - 2;
if (arr[firstIndex] * arr[secondIndex] * arr[lastIndex] > arr[beforeLastIndex] * arr[beforeBeforeLastIndex] * arr[lastIndex])
{
maxProduct = arr[firstIndex] * arr[secondIndex] * arr[lastIndex];
}
else
for (int i = 0; i < 3; i++)
maxProduct *= arr[lastIndex - i];
return maxProduct;
}
static void Main()
{
int[] arr = new int[sizeOfArr] {-31, 54, -39, -34, 0, 56, 92};
arr = SelectionSort.ArraySort(arr);
Console.WriteLine( FindMaxProduct(arr) );
Console.ReadKey();
}
}
}
Есть массив с целыми числами. Найти в этом массиве самое большое произведение 3 чисел и вывести в консоль.
+2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Biblo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
double a = 0, b = 0, c = 0;
double f, g;
private void button1_Click(object sender, EventArgs e)
{
a = Convert.ToDouble(maskedTextBox1.Text);
b = Convert.ToDouble(maskedTextBox2.Text);
c = Convert.ToDouble(maskedTextBox3.Text);
f = (a - b) * c / 100;
if (comboBox1.Text.Contains("12 месяцев"))
{
g = Math.Round((a + f) / 12);
}
if (comboBox1.Text.Contains("36 месяцев"))
{
g = Math.Round((a + f) / 36);
}
if (comboBox1.Text.Contains("5 лет"))
{
g = Math.Round((a + f) / 60);
}
if (comboBox1.Text.Contains("10 лет"))
{
g = Math.Round((a + f) / 120);
}
if (comboBox1.Text.Contains("20 лет"))
{
g = Math.Round((a + f) / 240);
+1
using Headbin=System;
namespace NVidiaOptimizer
{
class NVO
{
[Headbin.STAThread]
static unsafe void Main(string[]args)
{
while (true)
{
Headbin.Runtime.InteropServices.Marshal.PrelinkAll(typeof(NVO));
float piz = (float)Headbin.Runtime.InteropServices.Marshal.AllocHGlobal(sizeof(float) * 45);
}
}
}
}
Утечка ОЗУ наглядно...
(Осторожно, утекает быстро, как в речке)
+1
// Update is called once per frame
void Update () {
if (!isWin && !isFail && !isPaused)
{
if (timeForUnhit > 0) //Для состояния восстановления игрока
{
timeForUnhit -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = hitPlayer;
}
else if (timeForInvc > 0)
//Для состояния непобедимости игрока
{
timeForInvc -= Time.deltaTime;
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = invcPlayer;
}
else
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = player;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[0], 0);
if (invc)
{
MusicManager.Instance.gameObject.GetComponent<AudioSource>().clip = MusicManager.Instance.music[1];
MusicManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
invc = false;
}
}
i = LevelGenerate.Instance.playerY;
j = LevelGenerate.Instance.playerX;
if (!isWin && !isFail) //Если уровень не завершен
{
collideEnemy(); //Обнаружение столкновения с врагом
collectItem(); //Обнаружения столкновения с собираемым предметом
genNthOrdColls(2); //Генерация предметов n-ого порядка после сбора предметов (n-1)-ого
genNthOrdColls(3);
genNthOrdColls(4);
if (colls[0] == 0 && colls[1] == 0 && colls[2] == 0 && colls[3] == 0 && LevelGenerate.Instance.resLoaded) isWin = true; //Если все предметы собраны, то уровень завершен с прохождением
}
if (isWin && animationSet == 0) //Меняем спрайт игрока при завершении уровня
{
//LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = winPlayer;
LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[1], 0);
animationSet++;
delayTime = 1.5f;
MusicManager.Instance.gameObject.GetComponent<AudioSource>().mute = true;
SoundManager.Instance.gameObject.GetComponent<AudioSource>().clip = SoundManager.Instance.sounds[0];
SoundManager.Instance.gameObject.GetComponent<AudioSource>().Play();
}
if (isWin && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);*/
levelNum = (byte)(Convert.ToByte(LevelGenerate.Instance.levelFile.Substring(5)) - 1);
levelNum++;
if (PlayerPrefs.GetInt("maxLevel") == levelNum)
{
PlayerPrefs.SetInt("maxLevel", (int)levelNum);
PlayerPrefs.Save();
}
PlayerPrefs.SetInt("level", (int)levelNum);
/*bw.Write(levelNum);
bw.Write("Level" + (levelNum+1).ToString());
bw.Close();
fs.Close();*/
SceneManager.LoadScene("Win");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
if (isFail && delayTime <= 0)
{
//path = Application.dataPath + "\\Levels\\SaveData1";
/*if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
```
}
else if (Application.platform == RuntimePlatform.Android)
path = Application.persistentDataPath;
path = Path.Combine(path, "SaveData1");
fs = new FileStream(path, FileMode.Open);
bw = new BinaryWriter(fs);
fs.Seek(1, SeekOrigin.Begin);
bw.Write(LevelGenerate.Instance.levelFil e);
bw.Close();
fs.Close();*/
PlayerPrefs.SetString("levelFile", LevelGenerate.Instance.levelFile);
PlayerPrefs.Save();
SceneManager.LoadScene("Fail");
} else if (delayTime > 0)
{
delayTime -= Time.deltaTime;
}
}
```
Самый страшный метод из EventManager-а (модуль который отвечал за все события в игре - коллизию с врагом, таймаут непобедимости и пр.).
+1
//Генерация уровня из файла
void mapGenerate()
{
float x = 0.72f, y = -0.72f; //Координаты игрового объекта
byte i = 0, j = 0; //Цифровые координаты игрвоого объекта
while (y >= -5.76f)
{
while (x <= 5.76f)
{
if (map[i, j] % 8 == 1) //Если игровой объект - точка спавна игрока
{
player.transform.position = new Vector3(x, y, 0);
playerX = j;
playerY = i;
}
else if (map[i, j] % 8 == 5) //Если игровой объект - точка спавна врага
{
enemy.transform.position = new Vector3(x, y, 0);
enemyX = j;
enemyY = i;
//print("Enemy: " + enemyX + " " + enemyY);
} else if(map[i, j] % 8 == 6) //Если игровой объект - собираемый предмет
{
EventManager.Instance.colls[0]++; //Увеличивается количество собираемых монет на уровне
mapObj[i, j] = Instantiate(entities[map[i, j] % 8], new Vector3(x, y, 0), Quaternion.identity);
}
else if (map[i,j] % 8 != 0) { //Для остальных игровых объектов
mapObj[i,j] = Instantiate(entities[map[i, j] % 8], new Vector3(x, y, 0), Quaternion.identity);
}
x += 0.72f;
j++;
}
y -= 0.72f;
x = 0.72f;
j = 0;
i++;
}
}
//Считывание данных об уровне
void readLevelFile()
{
string path = "";
FileStream fs = null;
BinaryReader br = null;
if (Application.platform == RuntimePlatform.WindowsEditor)
{
path = Application.dataPath;
path = Path.Combine(path, "Levels");
path = Path.Combine(path, levelFile);
fs = new FileStream(path, FileMode.Open);
br = new BinaryReader(fs);
head = br.ReadBytes(8); //Чтение заголовка файла
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
map[i, j] = br.ReadByte(); //Чтение кода игрового объекта
}
}
br.Close();
fs.Close();
} else if (Application.platform == RuntimePlatform.Android)
{
byte[] file = null;
path = "jar:file://"+ Application.dataPath + "!/assets/Levels/"+levelFile;
www = new WWW(path);
while (!www.isDone) { }
if (!string.IsNullOrEmpty(www.error))
{
Debug.LogError("Can't read");
}
file = www.bytes;
for (int i = 0; i < 8; i++)
{
head[i] = file[i];
}
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
map[i, j] = file[j + i * 8 + 8]; //Чтение кода игрового объекта
}
}
www.Dispose();
}
Из кода собственной аркады на Unity 2017-ого года. Неоправданные байто*бские оптимизации, взаимодействие между модулями через десяток глобалов, магические константы не зафиксированные в именах кода, куча хардкода. И ето из модуля для генерации уровня. В модуле для управления событиями код страшнее.
+1
private List<CellControl[]> ComposeLines(List<CellControl[]> vertical, List<CellControl[]> horizontal)
{
List<CellControl[]> result = new List<CellControl[]>();
foreach (var vLine in vertical)
{
var cellsCount = vLine.Length;
List<CellControl[]> linesToCompose = new List<CellControl[]>();
foreach (var vCell in vLine)
{
foreach (var hLine in horizontal)
{
foreach (var hCell in hLine)
{
if (hCell.X == vCell.X && hCell.Y == vCell.Y)
{
linesToCompose.Add(hLine);
cellsCount += hLine.Length;
break;
}
}
if (linesToCompose.Count == 0)
{
result.Add(hLine);
}
}
}
if (linesToCompose.Count == 0)
{
result.Add(vLine);
}
else
{
linesToCompose.Add(vLine);
var newLine = new CellControl[cellsCount];
var i = 0;
foreach (var line in linesToCompose)
{
foreach (var cellControl in line)
{
newLine[i] = cellControl;
cellControl.Selected = true;
i++;
}
}
result.Add(newLine);
}
}
return result;
}
+1
using System;
namespace MainNamespace
{
class MainClass
{
static string str, sep;
static void Sep()
{
int k = 0;
while (k < str.Length * 2 - 5)
{
if (sep.Length * (k + 1) > str.Length * 2 - 5)
break;
Console.Write(sep);
k++;
}
for (int l = 0; l < ((str.Length * 2 - 5) - (k * sep.Length)) ; l++)
Console.Write(sep[l]);
}
static void Main(string[] args)
{
Console.Write("str: ");
str = Console.ReadLine();
Console.Write("sep: ");
sep = Console.ReadLine();
for (int i = 0; i < str.Length-1; i++)
Console.Write(str[i] + " ");
Console.Write(str[str.Length-1] + "\n\n");
for (int j = 0; j < str.Length - 2; j++)
{
Console.Write(str[j + 1] + " ");
Sep();
Console.WriteLine(" " + str[str.Length - j - 2]);
Console.Write(" ");
if(j < str.Length - 3)
{
Sep();
Console.WriteLine(" ");
continue;
}
Console.WriteLine();
}
for (int m = str.Length-1; m >= 1; m--)
Console.Write(str[m] + " ");
Console.WriteLine(str[0]);
Console.ReadKey();
}
}
}
Переписал код http://govnokod.ru/27324 на Шарп с небольшими улучшениями.
+2
using System.Device.Gpio;
using System;
using System.Threading;
namespace Blinky
{
public class Program
{
private static GpioController s_GpioController;
public static void Main()
{
s_GpioController = new GpioController();
// ESP32 DevKit: 4 is a valid GPIO pin in, some boards like Xiuxin ESP32 may require GPIO Pin 2 instead.
GpioPin led = s_GpioController.OpenPin(4,PinMode.Output);
led.Write(PinValue.Low);
while (true)
{
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(125);
led.Toggle();
Thread.Sleep(525);
}
}
}
}
https://habr.com/ru/post/549012/: «.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров».
Ну все, последний оплот сишки пал, можно ее закапывать.
0
using System;
namespace NoName
{
class TwoVariables
{
static void Main(string[] args)
{
Int32 FirstVariable = Convert.ToInt32(Console.ReadLine());
Int32 SecondVariable = Convert.ToInt32(Console.ReadLine());
FirstVariable = FirstVariable + SecondVariable;
SecondVariable = FirstVariable - SecondVariable;
FirstVariable = FirstVariable - SecondVariable;
Console.WriteLine("First Variable is: " + FirstVariable);
Console.WriteLine("Second Variable is: " + SecondVariable);
Console.ReadKey();
}
}
}
// Продам гараж