标题:求助,编一个简单的小游戏怎么删除一个用户和删除所有用户
只看楼主
xueyang716
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-1
结帖率:100%
已结贴  问题点数:20 回复次数:7 
求助,编一个简单的小游戏怎么删除一个用户和删除所有用户
这个要求是这样的,运行程序时输入 removeplayer player1, 删除player1的信息,如果只输入removeplayer就删除所有用户信息。
我写了个函数关于删除一个玩家信息的,可是怎么在main函数里根据输入的命令执行删除一个或是删除所有用户信息呢??
是需要用到 StringTokenizer 或是splict()吗?如果需要用到怎么用它们在main函数里调用removeplayer呢?
拜托各位大神帮帮忙,还有两天就要交作业了,以前从来没学过编程语言,编的时候都是一边上网查一边写的

public void removeplayer(String username){
        for (int index = 0; index < numofplayer; index++) {
            if (playerlist[index][0] == username) {
                for (int n = 0; n < 3; n++){
                    playerlist[index][n] = playerlist[numofplayer-1][n];
                    playerlist[numofplayer-1][n] = null;
                    playerstats[index][n] = playerstats[numofplayer-1][n];
                    playerstats[numofplayer-1][n] = 0;
                }
                numofplayer--;
                System.out.println();
                System.out.printf(">");
                return;
            }
        }
        System.out.println("The player does not exist.");
        System.out.println();
        System.out.printf(">");
    }

playerlist这个数组存的是用户的用户名,姓,名
playerstats这个数组存的是用户的游戏数,赢的次数,胜率

另外还有一个问题,这个程序的其中一个功能是显示所有玩家信息,(用户名,姓,名,游戏数,赢的次数),要求显示时根据用户名字母顺序排列,这个应该怎么实现呢,我把玩家的名字和游戏数据存到两个数组里了,怎么能让游戏数据playerstats这个数组也根据玩家信息playerlist这个数组里的用户名排序后顺序一起显示呢?
谢谢啦,感激不尽!!!

[ 本帖最后由 xueyang716 于 2014-5-1 01:23 编辑 ]
搜索更多相关主题的帖子: 用户 public 编程语言 小游戏 运行程序 
2014-05-01 00:43
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
既然是新手,那就去查看一下Java api,
数组的操作对应的包在java.util.*里面,重点看看Arrays,ArrayList,Collection,List,Map

思考赐予新生,时间在于定义
2014-05-01 11:18
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:20 
程序代码:
import java.util.*;

public class RemovePlayerTest {

    public static void main(final String[] args) {
        Scanner scanner = new Scanner(System.in);
        String removeInstuct = scanner.nextLine();
        int removedPlayerNumbers = RemovePlayer.removePlayer(removeInstuct);
        System.out.println("Removed Player's Numbers : " + removedPlayerNumbers);
    }
}

class RemovePlayer {

    /**
     * @param removeInstruct
     * @return Removed Player's Numbers
     */
    public static int removePlayer(final String removeInstruct) {
        String inputParam = removeInstruct;
        int returnValue = 0;

        try {
            if (inputParam != null) {
                inputParam = inputParam.trim();
                if (inputParam.length() > 0) {
                    String[] removeInstructArray = inputParam.split(" ");
                    switch (removeInstructArray[0]) {
                        case REMOVE_INSTRUCT:
                            if (removeInstructArray.length == 1) {
                                System.out.println("删除所有用户信息");
                                // TODO:删除成功时,记得调用:returnValue++;
                            } else if (removeInstructArray.length > 1) {
                                for (String removeInstructElement : removeInstructArray) {
                                    if (!REMOVE_INSTRUCT.equals(removeInstructElement)) {
                                        System.out.println("删除" + removeInstructElement + "的信息");
                                        returnValue++;
                                    }
                                }
                            }
                            break; // REMOVE_INSTRUCT
                        default: // do nothing
                            break; // default
                    }
                }
            }
        } catch (Exception e) {
            System.out.println(e);
            throw e;
        } finally {
        }

        return returnValue;
    }

    private final static String REMOVE_INSTRUCT = "removeplayer";
}


输入输出:
removeplayer player1 player2
删除player1的信息
删除player2的信息
Removed Player's Numbers : 2

removeplayer
删除所有用户信息
Removed Player's Numbers : 0
红色字是因为代码中的一部分处理还没有完成造成的,请参考注释
2014-05-01 13:39
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:0 
另外还有一个问题,这个程序的其中一个功能是显示所有玩家信息,(用户名,姓,名,游戏数,赢的次数),要求显示时根据用户名字母顺序排列,这个应该怎么实现呢,
我把玩家的名字和游戏数据存到两个数组里了,怎么能让游戏数据playerstats这个数组也根据玩家信息playerlist这个数组里的用户名排序后顺序一起显示呢?

关于上面的问题:
1)用户名应该是唯一的吧,可以在游戏数据playerstats这个数组中增加一个维度,用来额外保存用户名,来联系起两个数组;这种方法比较类似于数据库中的表关联,必须得有唯一的键

2)排序处理比较简单,用Arrays.sort(数组名称);即可
2014-05-01 14:10
xueyang716
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-1
得分:0 
回复 4 楼 日知己所无
谢谢!!

还有一个问题。。。 playerstats这个数组类型是int,username是string,怎么把它加到这个数组里呀?
2014-05-01 17:59
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:0 
回复 5 楼 xueyang716
要不你修改一下程序的结构

考虑先做一个类,类里面有你需要的各种成员,比如用户名、姓、名、以及各种游戏数据

然后做一个对象数组,这样就解决你的大部分问题了

伪代码:

class 类名 {
    String 用户名;
    String 姓;
    String 名;
    int 游戏数据;
}

类名[] 对象数组 = new 类名[游戏者数量,可以是动态的];

访问上面那个对象数组……
2014-05-01 18:34
szgg520
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:79
专家分:307
注 册:2011-6-13
得分:0 
可以用继承呀

[url=http://www.]深圳复印机出租[/url]
2014-05-01 20:26
xueyang716
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-1
得分:0 
回复 6 楼 日知己所无
好的,按照你说的改好了,真是太感谢了!
2014-05-01 20:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-430879-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved