字母游戏

【问题描写叙述】

peter喜欢玩字母游戏,于是他编写了一个有趣的游戏。游戏规则是在一个 (N-1) * N的表格里填写字母。规则:对于每一个输入的N,由 (N-1) * N的字母区域的左上角開始,从字母A開始逆时针填充一个字母区域,乘积若超过26继续由新一组的A、B、C??填充,不要求输出边框。

【输入】

多组測试数据(数据量在100组以内)。

每组測试数据仅仅有一行为一个整数N(1<=N<=30)。表示表格的宽度。

【输出】

对于每组输入数据。输出N-1行,为填完的表格(N-1行,每行N个整数。每一个数字之间用空格隔开)。

【例子输入】

5

【例子输出】

代表一个4*5的顺时针旋转的字母区域。其样式例如以下:

A B C D E

N O P Q F

M T S R G

L K J   I  H

代码:

#include<stdio.h>
#define MAX 100
char r[MAX][MAX];//r[]用于填数	

//递归调用。完毕填数目标
void solve(int x,int y,char ch,int m,int n)
/*參数说明:x,y表示開始的坐标,ch为当前须要填入的字母,m,n分别为须要填的行数和列数*/
{
	int i;
	//若m为0。说明在生一次递归时已经将矩形填好
	if(m==0){
		return;
	}
	//m为1时。说明未填的还剩下1行2列。直接循环解决
	if(m==1){
		for(i=1;i<=n;i++){
			r[x][y]=ch;
			y++;
			ch++;
			if(ch == 'Z'+1){
				ch = 'A';
			}
		}
		return ;
	}

	//填入行
	for(i=1;i<n;i++){
		r[x][y]=ch;
		y++;
		ch++;
		if(ch == 'Z'+1){
			ch = 'A';
		}
	}
	//填入列
	for(i=1;i<m;i++){
		r[x][y]=ch;
		x++;
		ch++;
		if(ch == 'Z'+1){
			ch = 'A';
		}
	}
	//填入行
	for(i=1;i<n;i++){
		r[x][y]=ch;
		y--;
		ch++;
		if(ch == 'Z'+1){
			ch = 'A';
		}
	}
	//填入列
	for(i=1;i<m;i++){
		r[x][y]=ch;
		x--;
		ch++;
		if(ch == 'Z'+1){
			ch = 'A';
		}
	}
	//递归调用,填入内圈
	solve(x+1,y+1,ch,m-2,n-2);
}
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{

	solve(0,0,'A',n-1,n);
	//打印
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n;j++){
			printf("%c ",r[i][j]);
		}
		printf("\n");
	}
		}
	return 0;
};
时间: 2024-11-05 16:11:51

字母游戏的相关文章

猜字母游戏

猜字母游戏 猜字母游戏——设计数据结构 猜字母游戏——设计程序结构 猜字母游戏——实现字母生成方法 猜字母游戏——实现字母检测方法 猜字母游戏——实现主方法 1 猜字母游戏——设计数据结构 1.1 问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出:如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提

JSP简单练习-猜字母游戏

<!-- guessCharExample.jsp --> <%@ page contentType="text/html; charset=gb2312" %> <html> <head> <title>猜字母游戏</title> </head> <body> 下面,我们一起来玩一个游戏:猜字母游戏<br> 游戏规则:电脑会随机自动生成一个字母,请你猜出这个字母是什么.字母忽略

字母游戏(搜索)

问题 S: [搜索]字母游戏 时间限制: 10 Sec  内存限制: 64 MB提交: 28  解决: 17[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 一种单人玩的游戏,规则为: 在一个R行C列的方格上,每个方格中有一个A-Z的字母.游戏从左上角(第一行,第一列)位置开始,一步一步地向相邻(上.下.左.右)方格移动.唯一的限制是路径上的方格中的字母,每种字母只能出现1次. 游戏的目标是走尽可能长的路径.请你写程序算出指定棋盘上,可能走的最长步数. 输入 第1行两个整数R和C(

从零开始学C语言,200行代码完成一个打字母游戏!

很多刚开始学习编程的同学都希望自己可以去开发一些游戏,当学习了c语言的时候却发现总是用c语言去解决一些数学问题,今天我就分享给大家一个我学习c语言时候学到的一些好玩的东西,希望可以帮助大家保持对编程的兴趣. 创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之以恒C++爱好群,如果你想要学好C++最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习

Java实现猜字母游戏

package day06; import java.util.Scanner; public class HomeWork { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = "GuessingGame"; System.out.println(string+"欢迎尝试猜字谜游戏!满分500分,最低分为0分!");

华为机试题【13】-wave数组找字母游戏

题目描述: Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f. 但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物. ,指定W为"SOLO",则在地图中红色标注了单词"SOLO". 注意区分英文字母大小写,你只能上下左右行走. 运行时间限制: 无限制 内存限制: 无限制 输

Java图形界面实战案例——实现打字母游戏

实现打字母的游戏 这次这个案例可以说是头几次所讲的内容的一个技术汇总,主要是 运用了几大块的知识.我们先来定义一下案例的背景:在一个300*400的窗体上,有10个随机产生的字母下落,在键盘上敲击字母,若是敲对了就消掉,初始化的成绩为1000分,每次敲对一个字母就加上10分,如果在字母落到了屏幕的下方还没有敲对的话则判定为失败,就扣除100分. 我们还是老样子,先来进行步骤的划分 1.做满天星 2.把星星改成随机的10个字母 3.让字母落下,如果字母落出了屏幕就生成新的字母,并从屏幕的上方重新出

C++第十一课:面向对象[敲字母游戏]

小编前面讲解的知识只是最基本的C语言部分,代码很乱也很臃肿,很难看,如果没有基础的朋友就有可能看不懂. 下面就正式融入C++面向对象的理念,让代码变得更加通俗易懂,逐步带入高逼格的操作. 总体来说,代码部分没怎么变化过,只是加入类的运用: 1.想要加入类的知识,我们首先得学会分析全程,这里需要什么对象? 2.其次,分析代码的构成,怎样才能让代码变得更清晰,一目明了. 3.每个人都有一套自己的代码思维,最后剥析面向对象的样式,不至于以后还是使用c语言的代码构成一个程序. 既然是游戏,就应该有一个地

练习.打字母游戏

1 package com.java7.mychar.main; 2 import java.awt.Color; 3 import java.awt.Frame; 4 import java.awt.Graphics; 5 import java.awt.Panel; 6 import java.awt.event.KeyEvent; 7 import java.awt.event.KeyListener; 8 import javax.swing.JFrame; 9 import javax