会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132904个问题
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 34981楼

import pygame
screen_width = 700
screen_height = 400
BG_color = pygame.Color(0, 0, 0)
Text_COLOR = pygame.Color(255, 0, 0)

class MainGame():
    window = None

    def __init__(self):
        pass

    def startGame(self):
        # 初始化显示模块
        pygame.display.init()
        # 初始化显示窗口
        MainGame.window = pygame.display.set_mode([screen_width, screen_height])
        pygame.display.set_caption("坦克大战1.0")
        while True:
            # 给窗口设置填充色
            self.getEvent()
            MainGame.window.blit(self.getTextSurface('剩余敌方坦克数量%d'%6), (10, 10))
            MainGame.window.fill(BG_color)
            pygame.display.update()

    def endGame(self):
        pass

    def getTextSurface(self, text):
# 初始化字体模块
        pygame.font.init()
        # 获取字体font对象
        pygame.font.get_fonts()

        s= pygame.font.SysFont("kaiti", 18)
        #绘制文本信息
        textSurface = s.render(text, True, Text_COLOR)
        return textSurface

    def getEvent(self):
        #获取所有事件
        eventList = pygame.event.get()
        #遍历事件
        for event in eventList:
# 判断按下的
            if event.type == pygame.QUIT:
                exit()



class Tank():
    def __init__(self):
        pass

    def move(self):
        pass

    def shot(self):
        pass

    def display(self):
        pass


# 我方坦克
class MyTank(Tank):
    def __init__(self):
        pass


class EnmeyTank(Tank):
    def __init__(self):
        pass


class Bullet():
    def __init__(self):
        pass

    def move(self):
        pass

    def displayBullet(self):
        pass


class Wall():
    def __init__(self):
        pass

    def displayWall(self):
        pass


class Explode():
    def __init__(self):
        pass

    def displayExplode(self):
        pass


class Music():
    def __init__(self):
        pass

    def playMusic(self):
        pass


if __name__ == "__main__":
    MainGame().startGame()

image.png老师我这段代码没有报错,但是左上角却没有文本信息的显示,新surface没出来啊,帮忙看看,谢谢

Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 34983楼
Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 34985楼
Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 34987楼


detail.zip

goodsapp.zip

网页报错

image.png


后台报错图

image.png

Python 全系列/下架-第十二阶段:Python_大型电商项目(5天后下架)/Django项目阶段-电商项目(旧) 34988楼

我写了个乞丐版的LinkedList,主要是实现add,remove,get方法,但是remove方法一直报异常,麻烦老师看一下问题出在了哪里,以下是源码

LinkedList类

package TestLinkedList;
public class LinkedList {
 private Node first=null;
 private Node last=null;
 private int size;
 //索引返回值
 Object node(int index) {
  Node x=first;
  for(int i=0;i<index;i++) {
      x=first;
   x=x.next;
  }return x.object;
 }
 //tostring方法 
 public String toString() {
    String result="";
    //如果链表中没有根节点,直接返回空
    if(first!=null){
        Node temp = first;
        result=temp.object.toString();
        //如果已经遍历到最后一个节点,结束
        while(temp.next!=null){
         result+=","+temp.next.object.toString();
         temp=temp.next;
        }
    }
    return "LinkedList [" +result + "]";
   }
 //add方法
 public void add(Object object) {
  Node l=last;
  Node newnode=new Node(l,object,null);
  last=newnode;
  if(l==null) {
   first=newnode;
  }else {
   l.next=newnode;
  }
  size++;
 };
 //remove方法
 public void remove(Object object) {
  Node l=last;
  Node f=first;
  
  for(int i=0;i<size;i++)
   {
   if(f.equals(object)) {
   break;}
   f=f.next;
   
  }
  if(f.prv==null&&f.next!=null) {
   f.next=first;
  }else if(f.prv!=null&&f.next==null) {
   f.prv=last;
   
  }else if(f.prv!=null&&f.next!=null) {
   f.prv.next=f.next;
   f.next.prv=f.prv;
  }
  f.object=null;
  size--;
 }
 //get方法
public Object get(int index) {
 Object d=node(index);
 return d;
  
 }
 
}

Node类

package TestLinkedList;
public class Node {
 Object object;
 Node prv;
 Node next;
public  Node(Node prv,Object object,Node next) {
 this.prv=prv;
 this.object=object;
 this.next=next;
 
}
public Node() {
 
}
}

Test测试

package TestLinkedList;
public class Test {
 public static void main(String[] args) {
 LinkedList link=new LinkedList();
 //测试add
 link.add("hi");
 link.add("word");
 //测试tostring
 System.out.println(link);
 //测试get
 System.out.println(link.get(1));
 //测试remove
 link.remove("word");
 System.out.println(link);
 }
}

运行效果

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 34991楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 34992楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 34994楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 34995楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637