|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.05.2017, 07:54 | #1 |
Новичок
Джуниор
Регистрация: 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; } |
14.05.2017, 10:28 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Тут не бесплатное бюро переводов, вряд ли кто-то будет делать это за вас.
Покажите свои наработки, конкретные вопросы и т.п. Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
14.05.2017, 13:22 | #3 |
Новичок
Джуниор
Регистрация: 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(); } } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос БД | 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 |