Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2017, 07:54   #1
maks1795
Новичок
Джуниор
 
Регистрация: 14.05.2017
Сообщений: 2
По умолчанию Перенос Reversi с С++ на C#

Помогите перенести код с C++ на С#

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int width = 8;
int height = 8;
bool player = true;
int game[8][8];
int CoutnCourse;

bool CheckInputError(int x, int y);
void DrawDask();
void initialization();
void CheckField(int x, int y);
bool inputPlayer();
bool EntryElementInGame(int i, int j);
void PrintNumberPlayerInput();
bool CheckTheNeighboringCells(int x, int y);
void checkLine(int x, int y, int dX, int dY, int playerCount);
void nextElementLine(int dX, int dY, int* x, int* y);
void backElementLine(int dX, int dY, int* x, int* y);
int ReturnScore(int Player);

int ReturnScore(int Player) {
int count = 0;
for (int i=0; i<8;i++) {
for (int j = 0; j < 8; j++)
{
if (game[i][j]==Player) {
count++;
}
}
}
return count;
}

void DrawDask() {
printf_s("____1_______2_____3______ 4______5______6______7______8___");
printf_s("\n");

for (int h = 0; h < height; h++) {
printf_s(" ");
for (int i = 0; i < width; i++)
printf_s("| |", h + 1);
printf_s("\n");
printf_s("%d", h + 1);
for (int i = 0; i < width; i++) {
if (game[i][h] == 1) {
printf_s("| x |", h + 1);
}
if (game[i][h] == 2) {
printf_s("| o |", h + 1);
}
if (game[i][h] == 0) {
printf_s("| |", h + 1);
}
}
printf_s("\n");
printf_s(" ");
for (int i = 0; i < width; i++)
printf_s("|_____|", h + 1);
printf_s("\n");
}
printf_s("Score\nPlayer 1: %d\nPlayer 2: %d\n\n", ReturnScore(1), ReturnScore(2));
}

void initialization() {
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
game[i][j] = 0;
}
}
CoutnCourse = 1;
}

bool EntryElementInGame(int i, int j) {
if (i >= 0 && i < 8 && j >= 0 && j < 8) {
return true;
}
return false;
}

void nextElementLine(int dX, int dY, int* x, int* y) {
if (dX == -1) { (*x)--; }
if (dX == 1) { (*x)++; }
if (dY == -1) { (*y)--; }
if (dY == 1) { (*y)++; }
}

void backElementLine(int dX, int dY, int* x, int* y) {
if (dX == -1) { (*x)++; }
if (dX == 1) { (*x)--; }
if (dY == -1) { (*y)++; }
if (dY == 1) { (*y)--; }
}

void checkLine(int x, int y, int dX, int dY, int playerCount) {
bool f = false;
while (game[x + dX][y + dY] != 0 && EntryElementInGame(x, y)) {
nextElementLine(dX, dY, &x, &y);
if (game[x][y] != playerCount && game[x][y] != 0) {
f = true;
}
if (game[x][y] == playerCount && game[x][y] != 0 && f) {
backElementLine(dX, dY, &x, &y);
while (game[x][y] != playerCount && EntryElementInGame(x, y)) {
game[x][y] = playerCount;
backElementLine(dX, dY, &x, &y);
}
break;
}
}
}

void CheckField(int x, int y) {
if (player) {
checkLine(x, y, -1, -1, 1);
checkLine(x, y, 0, -1, 1);
checkLine(x, y, 1, -1, 1);
checkLine(x, y, 1, 0, 1);
checkLine(x, y, 1, 1, 1);
checkLine(x, y, 0, 1, 1);
checkLine(x, y, -1, 1, 1);
checkLine(x, y, -1, 0, 1);
}
else {
checkLine(x, y, -1, -1, 2);
checkLine(x, y, 0, -1, 2);
checkLine(x, y, 1, -1, 2);
checkLine(x, y, 1, 0, 2);
checkLine(x, y, 1, 1, 2);
checkLine(x, y, 0, 1, 2);
checkLine(x, y, -1, 1, 2);
checkLine(x, y, -1, 0, 2);
}
}

void PrintNumberPlayerInput() {
if (player) {
printf_s("\nplayer 1 vvedite hod x & y ->");
}
else {
printf_s("\nplayer 2 vvedite hod x & y ->");
}
}

bool inputPlayer() {
int x;
int y;
PrintNumberPlayerInput();
scanf_s(" %d %d", &x, &y);
if (CheckInputError(x, y)) {
if (player) {
game[x][y] = 1;
}
else { game[x][y] = 2; }
CheckField(x, y);
player = !player;
printf_s("\n");
return true;
}
return false;
}

bool CheckTheNeighboringCells(int x, int y) {
if (CoutnCourse == 1) {
return true;
}
for (int i = x - 1; i <= x + 1; i++) {
for (int j = y - 1; j <= y + 1; j++) {
if (EntryElementInGame(i, j)) {
if (game[i][j] != 0) {
return true;
}
}
}
}
return false;
}

bool CheckInputError(int x, int y) {
if (game[x][y] == 0) {
if (CheckTheNeighboringCells(x, y)) {
CoutnCourse++;
return true;
}
printf_s("Error!!!! Repeat please !\n");
return false;
}
return false;
}

int main() {
initialization();
for (int i = 0; i < 64; i++) {
DrawDask();
while (!inputPlayer()) {
system("cls");
DrawDask();
}
system("cls");
}
system("pause");
return 0;
}
maks1795 вне форума Ответить с цитированием
Старый 14.05.2017, 10:28   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Тут не бесплатное бюро переводов, вряд ли кто-то будет делать это за вас.

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.05.2017, 13:22   #3
maks1795
Новичок
Джуниор
 
Регистрация: 14.05.2017
Сообщений: 2
По умолчанию

Конечно делал ошибки вылезают в конце где static main.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
public class Program
{
public int width = 8;
public int height = 8;
public bool player = true;
public int[,] game = new int[8, 8];
public int CoutnCourse;
// bool CheckInputError(int x, int y);
//void DrawDask();
//void initialization();
//void CheckField(int x, int y);
//bool inputPlayer();
// bool EntryElementInGame(int i, int j);
// void PrintNumberPlayerInput();
// bool CheckTheNeighboringCells(int x, int y);
// void checkLine(int x, int y, int dX, int dY, int playerCount);
// void nextElementLine(int dX, int dY, int* x, int* y);
// void backElementLine(int dX, int dY, int* x, int* y);
// int ReturnScore(int Player);


int ReturnScore(int Player)
{
int count = 0;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (game[i, j] == Player)
{
count++;
}
}
}
return count;
}

void DrawDask()
{
Console.Write("____1_______2_____3_ _____4______5______6______7______8_ __");
Console.Write("\n");

for (int h = 0; h < height; h++)
{
Console.Write(" ");
for (int i = 0; i < width; i++)
Console.Write("| |", h + 1);
Console.Write("\n");
Console.Write("{0}", h + 1);
for (int i = 0; i < width; i++)
{
if (game[i, h] == 1)
{
Console.Write("| x |", h + 1);
}
if (game[i, h] == 2)
{
Console.Write("| o |", h + 1);
}
if (game[i, h] == 0)
{
Console.Write("| |", h + 1);
}
}
Console.Write("\n");
Console.Write(" ");
for (int i = 0; i < this.width; i++)
Console.Write("|_____|", h + 1);
Console.Write("\n");
}
Console.Write("Score\nPlayer 1: {0}\nPlayer 2: {1}\n\n", ReturnScore(1), ReturnScore(2));
}

public void Initialization()
{
for (int i = 0; i < this.width; i++)
{
for (int j = 0; j < height; j++)
{
game[i, j] = 0;
}
}
CoutnCourse = 1;
}

bool EntryElementInGame(int i, int j)
{
if (i >= 0 && i < 8 && j >= 0 && j < 8)
{
return true;
}
return false;
}

void NextElementLine(int dX, int dY, int x, int y)
{
if (dX == -1) { (x)--; }
if (dX == 1) { (x)++; }
if (dY == -1) { (y)--; }
if (dY == 1) { (y)++; }
}

void BackElementLine(int dX, int dY, int x, int y)
{
if (dX == -1) { (x)++; }
if (dX == 1) { (x)--; }
if (dY == -1) { (y)++; }
if (dY == 1) { (y)--; }
}

void CheckLine(int x, int y, int dX, int dY, int playerCount)
{
bool f = false;
while (game[x + dX, y + dY] != 0 && EntryElementInGame(x, y))
{
NextElementLine(dX, dY, x, y);
if (game[x, y] != playerCount && game[x, y] != 0)
{
f = true;
}
if (game[x, y] == playerCount && game[x, y] != 0 && f)
{
BackElementLine(dX, dY, x, y);
while (game[x, y] != playerCount && EntryElementInGame(x, y))
{
game[x, y] = playerCount;
BackElementLine(dX, dY, x, y);
}
break;
}
}
}

void CheckField(int x, int y)
{
if (player)
{
CheckLine(x, y, -1, -1, 1);
CheckLine(x, y, 0, -1, 1);
CheckLine(x, y, 1, -1, 1);
CheckLine(x, y, 1, 0, 1);
CheckLine(x, y, 1, 1, 1);
CheckLine(x, y, 0, 1, 1);
CheckLine(x, y, -1, 1, 1);
CheckLine(x, y, -1, 0, 1);
}
else
{
CheckLine(x, y, -1, -1, 2);
CheckLine(x, y, 0, -1, 2);
CheckLine(x, y, 1, -1, 2);
CheckLine(x, y, 1, 0, 2);
CheckLine(x, y, 1, 1, 2);
CheckLine(x, y, 0, 1, 2);
CheckLine(x, y, -1, 1, 2);
CheckLine(x, y, -1, 0, 2);
}
}

void PrintNumberPlayerInput()
{
if (player)
{
Console.Write("\nplayer 1 vvedite hod x & y ->");
}
else
{
Console.Write("\nplayer 2 vvedite hod x & y ->");
}
}

bool InputPlayer()
{
int x;
int y;
PrintNumberPlayerInput();
x = Convert.ToInt32(Console.ReadLine()) ;
y = Convert.ToInt32(Console.ReadLine()) ;
if (CheckInputError(x, y))
{
if (player)
{
game[x, y] = 1;
}
else { game[x, y] = 2; }
CheckField(x, y);
player = !player;
Console.Write("\n");
return true;
}
return false;
}

bool CheckTheNeighboringCells(int x, int y)
{
if (CoutnCourse == 1)
{
return true;
}
for (int i = x - 1; i <= x + 1; i++)
{
for (int j = y - 1; j <= y + 1; j++)
{
if (EntryElementInGame(i, j))
{
if (game[i, j] != 0)
{
return true;
}
}
}
}
return false;
}

public bool CheckInputError(int x, int y)
{
if (game[x, y] == 0)
{
if (CheckTheNeighboringCells(x, y))
{
CoutnCourse++;
return true;
}
Console.Write("Error!!!! Repeat please !\n");
return false;
}
return false;
}
static void Main(string[] args)
{
Initialization();
for (int i = 0; i < 64; i++)
{
DrawDask();
while (!InputPlayer())
{
Console.Clear();
DrawDask();
}
Console.Clear();
}
Console.ReadKey();
}
}
}
maks1795 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос БД Gleg SQL, базы данных 0 22.11.2012 17:37
перенос проекта delfin07 Общие вопросы Delphi 2 06.06.2011 10:36
Перенос БД kpacav4ik WordPress и другие CMS 10 21.08.2010 16:45
перенос spider844360 Паскаль, Turbo Pascal, PascalABC.NET 0 06.06.2010 14:53
Перенос БД из 1С Neymexa SQL, базы данных 0 24.03.2010 13:47