• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

magician

Jogo do Galo em D

1 mensagem neste tópico

Boas venho aqui dar um pequeno exemplo de um programa em D, feito por mim, não tem anda de especial, não tem IA nem verificação de Linhas é apenas para mostras algum código D.

Peca.d

public class Peca{

alias char [] String;

private String tipo;

public this( bool tipo ){

	if(tipo){
		this.tipo = "X";
	}
	else{
		this.tipo = "O";
	}
}

public String getNome(){
	if(tipo){
	}
	return this.tipo;
}

public void setNome(bool tipo){
	if(tipo){
		this.tipo = "X";
	}
	else{
		this.tipo = "O";
	}
}
}

Tabuleiro.d

import Peca;
import std.process;

public class Tabuleiro{

protected Peca [] tabela;

protected this(){
	this.tabela = new Peca [9];
}

protected void printTabuleiro(){
	writef("|");
	for(int i = 0; i < this.tabela.length; i++){
		if(i % 3 == 0 && i > 0){
			writef("\n|");
		}
		if(this.tabela[i] is null){
			writef(i,"|");
		}
		else{
			writef(this.tabela[i].getNome(), "|");
		}
	}
	writef("\n");
}

version (linux){
	protected void clear(){
		system("clear");
	}
}
version (Windows){
	protected void clear(){
		system("cls");
	}
}

}

alias char [] String;

import std.stdio;
import std.string;

void main(){
Tabuleiro t = new Tabuleiro();
long pos;
uint i = 0;
writef("Jogador 1 > ");
String p1 = readln(stdin);
p1 = removechars(p1,"\n");
writef("Jogador 2 > ");
String p2 = readln(stdin);
p2 = removechars(p2,"\n");
writefln("\n",p1," -> X");
writefln(p2," -> O\n");
t.printTabuleiro();

while (i < 9){

	writef("\n", p1, " insira um valor > ");
	pos = atoi(readln(stdin));
	t.tabela[cast(int)pos] = new Peca(true);
	t.clear();
	t.printTabuleiro();

	writef("\n", p2, " insira um valor > ");
	pos = atoi(readln(stdin));
	t.tabela[cast(int)pos] = new Peca(false);
	t.clear();
	t.printTabuleiro();
	i += 2;
}
}

É possível que a metodologia usada nem seja a melhor mas é que ainda estou a começar no D e tento programar o mais parecido com Java possível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora