Ajuda para converter código em C para Phyton

1. Ajuda para converter código em C para Phyton

Sergio
SergioHTi

(usa Outra)

Enviado em 03/07/2021 - 17:03h

Olá pessoal, estou iniciando na linguagem phyton e gostaria de uma ajuda para fazer este código em phyton, estou com dificuldade na questão de como fazer o ponteiro e a struct

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

struct frame {
	char b1,b2;
	int ball1,ball2,score;
};

int ball(int pins)
{
	int jogada; 
	
	printf("Entre com a pontuação da jogada: ");
	scanf("%d", &jogada);
	
	return jogada;
}

void get_frame(struct frame *f)
{
	f->ball1 = ball(10);
	if(f->ball1==10)
	{
		f->ball2 = 0;
		f->b1 = ' ';
		f->b2 = 'X';
		f->score = 10;
		return;
	}

	f->ball2 = ball(10 - f->ball1);
	f->score = f->ball1 + f->ball2;
	f->b1 = f->ball1 ? '0' + f->ball1 : '-';
	f->b2 = f->ball2 ? '0' + f->ball2 : '-';
	if( f->score==10 )
		f->b2 = '/';
}
		
int main()
{
	struct frame game[12];
	int x,score;

	srand((unsigned)time(NULL));
	score = 0;

	/* Simulate 12 potential frames */
	for(x=0;x<12;x++)
		get_frame(&game[x]);
	
	/* properly calculate the scores */
	for(x=0;x<10;x++)
	{
		if( game[x].b2 == 'X' )
		{
			if( game[x+1].b2 == 'X' )
				score += 10 + game[x+1].ball1 + game[x+2].ball1;
			else
				score += 10 + game[x+1].score;
		}
		else if( game[x].b2 == '/' )
			score += 10 + game[x+1].ball1;
		else
			score += game[x].score;
		game[x].score = score;
	}

	/* Display first row, frame numbers */
	for(x=0;x<10;x++)
		printf(" %2d  ",x+1);
	putchar('\n');

	/* Second row, balls rolled */
	for(x=0;x<9;x++)
	{
		if( game[x].b2 == 'X')
			printf("|  |X");
		else
			printf("| %c|%c",game[x].b1,game[x].b2);
	}
	/* Special output for 10th frame */
	if( game[x].b2 == 'X')
	{
		if( game[x+1].b2 == 'X')
		{
			if( game[x+2].b2 == 'X')
				printf("| X|X|X|\n");
			else
				printf("| X|X|%c|\n",game[x+2].b1);
		}
		else
			printf("| X|%c|%c|\n",game[x+1].b1,game[x+1].b2);
	}
	else if( game[x].b2 == '/')
	{
		if( game[x+1].b2 == 'X')
			printf("| %c|/|X|\n",game[x].b1);
		else
			printf("| %c|/|%c|\n",game[x].b1,game[x+1].b1);
	}
	else
		printf("| %c|%c| |\n",game[x].b1,game[x].b2);

	/* Third row, scores */
	for(x=0;x<9;x++)
	{
		printf("| %3d",game[x].score);
	}
	printf("|  %3d |\n",game[x].score);

	return(0);
} 



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts