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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 21:09   #1
spoxe
Новичок
Джуниор
 
Регистрация: 03.11.2011
Сообщений: 1
По умолчанию игры крестики нолики

Добрый вечер ребят, можите помочь мне с++ перевести в java чтоб можно было запустить через командную строку, а то я новечок пока в этом.
PHP код:
#include <stdio.h>
#include <stdlib.h>

char matrix[3][3]; /* Игровое поле */
void init_matrix(void); /* Инициализация игрового поля */
void disp_matrix(void); /* Вывести игровое поле на экран */
void get_player_move(void); /* Ход игрока */
void get_computer_move(void); /* Ход компьютера */
char check(void); /* Проверить, есть ли победители? */

/* Наша главная функция :) */
int main(int argccharargv[])
{
        
char done;

        
done ' ';
        
init_matrix();
        do{
          
disp_matrix();
          
get_player_move();
          
done check();
          if(
done != ' ') break;
          
get_computer_move();
          if(
done != ' ') break;
        }while(
done == ' ');

        if(
done == 'X'printf("Поздравляем! Вы победили!");
        else 
printf("К сожалению, Вы проиграли!");

        return 
0;
}

/* Инициализация игрового поля */
void init_matrix(void)
{
        
int ij;
        for(
03i++){
          for(
03j++){
            
matrix[i][j] = ' ';
          }
        }
}

/* Вывести игровое поле на экран */
void disp_matrix(void)
{
        
int i;
        for(
03i++){
                
printf(" %c | %c | %c "matrix[i][0], matrix[i][1], matrix[i][2]);
                if(
!= 2printf("\n - | - | - \n");
        }
        
printf("\n");
}

/* Ход игрока */
void get_player_move(void)
{
        
int ij;

        
printf("Введите координаты x, y: ");
        
scanf("%d%*c%d", &j, &i);

        
i--, j--;

        if(
matrix[i][j] != ' '){
                
printf("Неверный ход. Попробуйте еще раз!\n");
                
get_player_move();
        }
        else 
matrix[i][j] = 'X';
}

/* Ход компьютера */
void get_computer_move(void)
{
        
int ij;

        for(
03i++){
          for(
03j++){
            if(
matrix[i][j] == ' ') break;
          }
          if(
matrix[i][j] == ' ') break;
        }

        if(
i*== 9){
         
printf("Ничья!");
         exit(
0);
        }
        else 
matrix[i][j] = 'O';
}

/* Проверить, есть ли победители? */
char check(void)
{
        
int i;

        for(
03i++)
                if(
matrix[i][0] == matrix[i][1] &&
                   
matrix[i][0] == matrix[i][2]) return matrix[i][0];
        for(
03i++)
                if(
matrix[0][i] == matrix[1][i] &&
                   
matrix[0][i] == matrix[2][i]) return matrix[0][i];

        if(
matrix[0][0] == matrix[1][1] &&
           
matrix[1][1] == matrix[2][2])
                return 
matrix[0][0];

        if(
matrix[0][2] == matrix[1][1] &&
           
matrix[1][1] == matrix[2][0])
                return 
matrix[0][2];

        return 
' ';

spoxe вне форума Ответить с цитированием
Старый 19.12.2011, 11:39   #2
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию

Код:
import java.util.Scanner;


public class TicTakToe {


	static char[][] matrix = new char[3][3]; /* Игровое поле */
	static Scanner s;

	/* Наша главная функция :) */
	public static void main(String[] argv)
	{
			s = new Scanner(System.in);
	        char done;

	        done = ' ';
	        init_matrix();
	        do{
	          disp_matrix();
	          get_player_move();
	          done = check();
	          if(done != ' ') break;
	          get_computer_move();
	          if(done != ' ') break;
	        }while(done == ' ');

	        if(done == 'X') System.out.println("Поздравляем! Вы победили!");
	        else System.out.println("К сожалению, Вы проиграли!");

	        return;
	}

	/* Инициализация игрового поля */
	public static void init_matrix()
	{
	        int i, j;
	        for(i = 0; i < 3; i++){
	          for(j = 0; j < 3; j++){
	            matrix[i][j] = ' ';
	          }
	        }
	}

	/* Вывести игровое поле на экран */
	public static void disp_matrix()
	{
	        int i;
	        for(i = 0; i < 3; i++){
	        	StringBuilder sb = new StringBuilder();
	        	sb.append(' ');
	        	sb.append(matrix[i][0]);
	        	sb.append(" |");
	        	sb.append(' ');
	        	sb.append(matrix[i][1]);
	        	sb.append(" |");
	        	sb.append(' ');
	        	sb.append( matrix[i][2]);
	        	System.out.println(sb.toString());
	                if(i != 2) System.out.println(" - | - | - ");
	        }
	        System.out.println();
	}

	/* Ход игрока */
	public static void get_player_move()
	{
	        int i, j;

	        System.out.println("Введите координаты x, y: ");
	        //scanf("%d%*c%d", &j, &i);
	        i = s.nextInt();
	        j = s.nextInt();

	        i--; j--;

	        if(matrix[i][j] != ' '){
	        	System.out.println("Неверный ход. Попробуйте еще раз!\n");
	                get_player_move();
	        }
	        else matrix[i][j] = 'X';
	}

	/* Ход компьютера */
	public static void get_computer_move()
	{
	        int i  =0 , j = 0;

	        for(i = 0; i < 3; i++){
	          for(j = 0; j < 3; j++){
	            if(matrix[i][j] == ' ') break;
	          }
	          if(matrix[i][j] == ' ') break;
	        }

	        if(i*j == 9){
	        	System.out.println("Ничья!");
	         System.exit(0);
	        }
	        else matrix[i][j] = 'O';
	}

	/* Проверить, есть ли победители? */
	public static char check()
	{
	        int i;

	        for(i = 0; i < 3; i++)
	                if(matrix[i][0] == matrix[i][1] &&
	                   matrix[i][0] == matrix[i][2]) return matrix[i][0];
	        for(i = 0; i < 3; i++)
	                if(matrix[0][i] == matrix[1][i] &&
	                   matrix[0][i] == matrix[2][i]) return matrix[0][i];

	        if(matrix[0][0] == matrix[1][1] &&
	           matrix[1][1] == matrix[2][2])
	                return matrix[0][0];

	        if(matrix[0][2] == matrix[1][1] &&
	           matrix[1][1] == matrix[2][0])
	                return matrix[0][2];

	        return ' ';
	}
}
вам надо отладить вашу программу, в ней много ошибок
sashonk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм минимакс (minimaxing) для игры крестики-нолики 3х3 JustFree Помощь студентам 1 11.10.2011 16:35
Исходники игры крестики нолики на ассемблере Lacrim Фриланс 1 27.05.2010 21:11
минимакс для игры крестики нолики Ежик Помощь студентам 2 17.05.2010 13:21
Нужно написать 3 игры в консоли на С++: морской бой, пятнашки и крестики-нолики... lewa2424 Помощь студентам 5 14.04.2010 21:33
Игры на Delphi. Крестики-нолики. Amadel Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 07.12.2009 00:42